The hgrep package

[ Tags: bsd3, language, library, program ] [ Propose Tags ]

Search Haskell source code from the command line.

Powered by ghc-exactprint.


[Skip to Readme]

Properties

Versions 0.0, 0.1
Change log CHANGELOG.md
Dependencies ansi-terminal (>=0.6.3 && <0.8), base (>=4.9 && <4.11), bytestring (>=0.10.4 && <0.12), ghc (>=7.10.2 && <8.3), ghc-exactprint (>=0.5.4.0 && <0.6), hgrep, hscolour (==1.24.*), lens (==4.15.*), optparse-applicative (>=0.13 && <0.15), pcre-heavy (==1.0.*), template-haskell (>=2.11 && <2.13) [details]
License BSD3
Author Tim Humphries
Maintainer tim@utf8.me
Category Language
Home page https://github.com/thumphries/hgrep
Bug tracker https://github.com/thumphries/hgrep
Source repository head: git clone git://github.com/thumphries/hgrep.git
Uploaded Wed Oct 4 10:40:20 UTC 2017 by TimHumphries
Distributions
Executables hgrep
Downloads 76 total (76 in the last 30 days)
Rating 2.0 (1 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-10-04 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for hgrep-0.1

[back to package description]

hgrep

Search Haskell source code from the command line.

Powered by ghc-exactprint.

Usage

$> hgrep
Usage: hgrep [-e|--regex] EXPRESSION [FILE]

hgrep requires an expression and a set of files to search across.

An expression can be one of

  • The name of a type, e.g. FooBar
  • The name of an expression, e.g. foo
  • A regular expression (via the -e flag), e.g. -e Foo$

Each file will be parsed and searched. Results will be printed to the console, with syntax highlighting where possible.

Searching for top-level expressions

$> hgrep main main/hgrep.hs
main/hgrep.hs:16:1-13

-- | Run the program.
main :: IO ()
main/hgrep.hs:(17,1)-(18:27)

main = do
  putStrLn "Hello, world!"

Searching for type declarations

$> hgrep PrintOpts src/**/*.hs
src/Language/Haskell/HGrep/Internal/Data.hs:(40,1)-(42,28)

data PrintOpts = PrintOpts {
    poColourOpts :: ColourOpts
  } deriving (Eq, Ord, Show)

Searching with a regular expression

$> hgrep -e 'Opts$' src/**/*.hs
src/Language/Haskell/HGrep/Internal/Data.hs:(57,1)-(59,28)

data PrintOpts = PrintOpts {
    poColourOpts :: ColourOpts
  } deriving (Eq, Ord, Show)
src/Language/Haskell/HGrep/Internal/Data.hs:(61,1)-(64,26)

defaultPrintOpts :: PrintOpts
src/Language/Haskell/HGrep/Internal/Data.hs:(67,1)-(70,5)

defaultPrintOpts =
  PrintOpts {
      poColourOpts = DefaultColours
    }