mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-01-11 19:58:28 +01:00
Add Hoogle search to package page
This commit is contained in:
parent
aa0fe190ac
commit
ce3fffcb6e
@ -20,6 +20,7 @@ getHoogleR :: SnapName -> Handler Html
|
||||
getHoogleR name = track "Handler.Hoogle.getHoogleR" $ do
|
||||
Entity _ snapshot <- lookupSnapshot name >>= maybe notFound return
|
||||
mquery <- lookupGetParam "q"
|
||||
mPackageName <- lookupGetParam "package"
|
||||
mpage <- lookupGetParam "page"
|
||||
exact <- isJust <$> lookupGetParam "exact"
|
||||
mresults' <- lookupGetParam "results"
|
||||
@ -43,7 +44,10 @@ getHoogleR name = track "Handler.Hoogle.getHoogleR" $ do
|
||||
case mquery of
|
||||
Just query -> do
|
||||
let input = HoogleQueryInput
|
||||
{ hqiQueryInput = query
|
||||
{ hqiQueryInput =
|
||||
case mPackageName of
|
||||
Nothing -> query
|
||||
Just pn -> concat ["+", pn, " ", query]
|
||||
, hqiLimitTo = count'
|
||||
, hqiOffsetBy = offset
|
||||
, hqiExact = exact
|
||||
|
||||
@ -106,6 +106,11 @@ packagePage mversion pname = track "Handler.Package.packagePage" $ do
|
||||
])
|
||||
let pn = pname
|
||||
toPkgVer x y = concat [x, "-", y]
|
||||
hoogleForm name =
|
||||
let exact = False
|
||||
mPackageName = Just pname
|
||||
queryText = "" :: Text
|
||||
in $(widgetFile "hoogle-form")
|
||||
$(widgetFile "package")
|
||||
where enumerate = zip [0::Int ..]
|
||||
renderModules sname version = renderForest [] . moduleForest . map moduleName
|
||||
|
||||
@ -20,6 +20,7 @@ getStackageHomeR name = track "Handler.StackageHome.getStackageHomeR" $ do
|
||||
let hoogleForm =
|
||||
let queryText = "" :: Text
|
||||
exact = False
|
||||
mPackageName = Nothing :: Maybe Text
|
||||
in $(widgetFile "hoogle-form")
|
||||
packageCount <- getPackageCount sid
|
||||
packages <- getPackages sid
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
<form .hoogle action=@{SnapshotR name HoogleR}>
|
||||
<input type=search autofocus name=q value=#{queryText} placeholder="Hoogle Search Phrase" .search>
|
||||
<input .btn type="submit" value="Search">
|
||||
$maybe packageName <- mPackageName
|
||||
<input type=hidden name=package value=#{packageName}>
|
||||
<label .checkbox .exact-lookup for=exact title="Only find identifiers matching your search term precisely">
|
||||
<input type=checkbox name=exact :exact:checked #exact>
|
||||
Exact lookup
|
||||
|
||||
@ -101,6 +101,7 @@ $newline never
|
||||
$if null modules
|
||||
<p>There are no documented modules for this package.
|
||||
$else
|
||||
^{hoogleForm sname}
|
||||
^{renderModules sname (toPkgVer pname' version) modules}
|
||||
|
||||
$if not (LT.null (LT.renderHtml (packageDescription package)))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user