packages feed

haskell-docs 4.2.0 → 4.2.1

raw patch · 3 files changed

+52/−38 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Haskell.Docs: searchAndPrintModules :: MonadIO m => Identifier -> m ()

Files

haskell-docs.cabal view
@@ -1,5 +1,5 @@ name:                haskell-docs-version:             4.2.0+version:             4.2.1 synopsis:            A program to find and display the docs and type of a name description:         Given a module name and a name, or just a name, it will find and display                      the documentation of that name.
src/Haskell/Docs.hs view
@@ -7,26 +7,25 @@ module Haskell.Docs   (module Haskell.Docs   ,Identifier(..)-  ,PackageName(..))+  ,PackageName(..)+  ,searchAndPrintModules+  ,searchAndPrintDoc)   where  import           Haskell.Docs.Formatting import           Haskell.Docs.Haddock-import           Haskell.Docs.Ghc import           Haskell.Docs.Index import           Haskell.Docs.Types -import           Control.Arrow import           Control.Exception import           Control.Monad import qualified Data.HashMap.Strict as M import           Data.List import           Data.Ord-import qualified Data.Text.IO as T import           Data.Text (pack,unpack)+import qualified Data.Text.IO as T import           GHC hiding (verbosity)-import           GhcMonad (liftIO)-import           Module+import           MonadUtils import           Packages  -- -- | Print the documentation of a name in the given module.@@ -75,3 +74,13 @@             then forM_ (concat (map snd (M.toList packages)))                        (\modu -> liftIO (T.putStrLn modu))             else searchAndPrintDoc' packagemap ms ss pname mname ident++searchAndPrintModules :: MonadIO m => Identifier -> m ()+searchAndPrintModules ident =+  do result <- liftIO (lookupIdent (pack (unIdentifier ident)))+     case result of+       Nothing ->+         throw NoFindModule+       Just packages ->+         forM_ (nub (concat (map snd (M.toList packages))))+               (\modu -> liftIO (T.putStrLn modu))
src/main/Main.hs view
@@ -29,37 +29,42 @@ -- | Do the printing. app :: [String] -> IO () app (extract -> x@(gs,ms,as,ss)) =-  withInitializedPackages-    gs-    (\packages ->-       catchErrors-         (case as of-            [name] ->-              searchAndPrintDoc packages-                                ms-                                ss-                                Nothing-                                Nothing-                                (Identifier name)-            [mname,name,pname] ->-              searchAndPrintDoc packages-                                ms-                                ss-                                (Just (PackageName pname))-                                (Just (makeModuleName mname))-                                (Identifier name)-            [mname,name] ->-              searchAndPrintDoc packages-                                ms-                                ss-                                Nothing-                                (Just (makeModuleName mname))-                                (Identifier name)-            _ -> bail "<module-name> <ident> [<package-name>] | <ident>\n\-                      \\n\-                      \Options: --g <ghc option> Specify GHC options.\n\-                      \         --sexp           Output s-expressions.\n\-                      \         --modules        Only output modules."))+  do if ms+        then case as of+               [name]     -> searchAndPrintModules (Identifier name)+               [_,name,_] -> searchAndPrintModules (Identifier name)+               [_,name]   -> searchAndPrintModules (Identifier name)+        else withInitializedPackages+               gs+               (\packages ->+                  catchErrors+                    (case as of+                       [name] ->+                         searchAndPrintDoc packages+                                           ms+                                           ss+                                           Nothing+                                           Nothing+                                           (Identifier name)+                       [mname,name,pname] ->+                         searchAndPrintDoc packages+                                           ms+                                           ss+                                           (Just (PackageName pname))+                                           (Just (makeModuleName mname))+                                           (Identifier name)+                       [mname,name] ->+                         searchAndPrintDoc packages+                                           ms+                                           ss+                                           Nothing+                                           (Just (makeModuleName mname))+                                           (Identifier name)+                       _ -> bail "<module-name> <ident> [<package-name>] | <ident>\n\+                                 \\n\+                                 \Options: --g <ghc option> Specify GHC options.\n\+                                 \         --sexp           Output s-expressions.\n\+                                 \         --modules        Only output modules." ))  -- | Extract arguments. extract :: [String] -> ([String],Bool,[String],Bool)