mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2025-03-17 20:28:03 +02:00
We look for similar flag names via Jaccard index on ngrams. In my experience this tends to work better than Levenshtein or other edit distance based metrics. Principally because it allows for out-of-order suggestions. For example, --case-smart will result in a suggestion for --smart-case, even though the edit distance between them is pretty big. This is something Clap did for us. I initially thought it wasn't necessary to add this back in, but I realized it wouldn't be much work and might actually be helpful to folks.
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
andgrep-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.