1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2024-12-12 19:18:24 +02:00
ripgrep/crates/core
Andrew Gallant 88524a2b52 core: dedup patterns
ripgrep does not, and likely never will, report which pattern matched.
Because of that, we can dedup the patterns via just their concrete
syntax without any fuss.

This is somewhat of a pathological case because you don't expect the end
user to pass duplicate patterns in general. But if the end user
generated a list of, say, names and did not dedup them, then ripgrep
could end up spending a lot of extra time on those duplicates if there
are many of them. By deduping them explicitly in the application, we
essentially remove their extra cost completely.
2023-10-09 20:29:52 -04:00
..
app.rs printer: remove 'subl' alias 2023-10-09 20:29:52 -04:00
args.rs core: dedup patterns 2023-10-09 20:29:52 -04:00
config.rs core: polish the core of ripgrep 2023-10-09 20:29:52 -04:00
logger.rs core: lock stdout before printing an error message to stderr 2023-07-08 18:52:42 -04:00
main.rs core: polish the core of ripgrep 2023-10-09 20:29:52 -04:00
messages.rs core: lock stdout before printing an error message to stderr 2023-07-08 18:52:42 -04:00
README.md repo: make ripgrep build with the new organization 2020-02-17 19:24:53 -05:00
search.rs core: polish the core of ripgrep 2023-10-09 20:29:52 -04:00
subject.rs core: polish the core of ripgrep 2023-10-09 20:29:52 -04:00

ripgrep core

This is the core ripgrep crate. In particular, main.rs is where the main function lives.

Most of ripgrep core consists of two things:

  • The definition of the CLI interface, including docs for every flag.
  • Glue code that brings the grep-matcher, grep-regex, grep-searcher and grep-printer crates together to actually execute the search.

Currently, there are no plans to make ripgrep core available as an independent library. However, much of the heavy lifting of ripgrep is done via its constituent crates, which can be reused independent of ripgrep. Unfortunately, there is no guide or tutorial to teach folks how to do this yet.