hgrep alternatives and similar packages
Based on the "Language" category.
Alternatively, view hgrep alternatives based on common mentions on social networks and blogs.
-
elm-compiler
Compiler for Elm, a functional language for reliable webapps. -
stylish-haskell
Haskell code prettifier [Moved to: https://github.com/haskell/stylish-haskell] -
haskell-src-exts
Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer -
nirum
Nirum: IDL compiler and RPC/distributed object framework for microservices -
tal
An implementation of Typed Assembly Language (Morrisett, Walker, Crary, Glew) -
language-ecmascript
Haskell library: ECMAScript parser, pretty-printer and additional tools -
aterm-utils
Utility functions for working with aterms as generated by Minitermite -
ministg
Ministg is an interpreter for a high-level, small-step, operational semantics for the STG machine. -
purescript-tsd-gen
TypeScript Declaration File (.d.ts) generator for PureScript
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of hgrep or a related project?
README
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.
Requirements
You can use cabal
or stack
to install, but you may need libpcre
. In case you don't have it:
Ubuntu
sudo apt update
sudo apt install libpcre3-dev
Fedora
sudo dnf update
sudo dnf install pcre-devel
NixOS / Nix Package Manager
nix-env -i pcre
Install
Stack
git clone https://github.com/thumphries/hgrep.git
cd !$
stack install
Cabal
git clone https://github.com/thumphries/hgrep.git
cd !$
cabal new-build
Mafia
git clone https://github.com/thumphries/hgrep.git
cd !$
mafia build
Nix
git clone https://github.com/thumphries/hgrep.git
cd !$
nix-build -E 'with import <nixpkgs> {}; haskellPackages.callCabal2nix "hgrep" ./. {}'
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
}