Age | Commit message (Collapse) | Author |
|
This commit does the work to delete the old `grep` crate and effectively
rewrite most of ripgrep core to use the new libripgrep crates. The new
`grep` crate is now a facade that collects the various crates that make
up libripgrep.
The most complex part of ripgrep core is now arguably the translation
between command line parameters and the library options, which is
ultimately where we want to be.
|
|
|
|
This PR introduces a new sub-crate, `ignore`, which primarily provides a
fast recursive directory iterator that respects ignore files like
gitignore and other configurable filtering rules based on globs or even
file types.
This results in a substantial source of complexity moved out of ripgrep's
core and into a reusable component that others can now (hopefully)
benefit from.
While much of the ignore code carried over from ripgrep's core, a
substantial portion of it was rewritten with the following goals in
mind:
1. Reuse matchers built from gitignore files across directory iteration.
2. Design the matcher data structure to be amenable for parallelizing
directory iteration. (Indeed, writing the parallel iterator is the
next step.)
Fixes #9, #44, #45
|
|
|
|
Fixes #90
|
|
Why isn't CI running on each push? It seems to only be running on tagged
commits.
|
|
This includes moving basename-only globs into separate regexes. The hope
is that if the regex processes less input, it will be faster.
|
|
|
|
We try to reduce the pressure on regexes and offload some of it to
Aho-Corasick or exact lookups.
|