diff --git a/Handler/Hoogle.hs b/Handler/Hoogle.hs index 62d3785..5507538 100644 --- a/Handler/Hoogle.hs +++ b/Handler/Hoogle.hs @@ -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 diff --git a/Handler/Package.hs b/Handler/Package.hs index ca8b6b7..39b3b04 100644 --- a/Handler/Package.hs +++ b/Handler/Package.hs @@ -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 diff --git a/Handler/StackageHome.hs b/Handler/StackageHome.hs index d0f5f12..90deb0c 100644 --- a/Handler/StackageHome.hs +++ b/Handler/StackageHome.hs @@ -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 diff --git a/templates/hoogle-form.hamlet b/templates/hoogle-form.hamlet index a352abe..172aefa 100644 --- a/templates/hoogle-form.hamlet +++ b/templates/hoogle-form.hamlet @@ -1,6 +1,8 @@
+ $maybe packageName <- mPackageName +