Skip to content

Commit

Permalink
Add new rg flags and improve descriptions (#2617)
Browse files Browse the repository at this point in the history
* Add new rg flags and improve descriptions

* Add new rg flags and improve descriptions

* rg: added missing shorthands

* rg: pre - support PATH executable

---------

Co-authored-by: rsteube <[email protected]>
  • Loading branch information
munzirtaha and rsteube authored Dec 3, 2024
1 parent 30596fe commit d182eba
Showing 1 changed file with 95 additions and 78 deletions.
173 changes: 95 additions & 78 deletions completers/rg_completer/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,103 +20,110 @@ func Execute() error {
func init() {
carapace.Gen(rootCmd).Standalone()
//TODO descriptions are a mess
rootCmd.Flags().StringP("after-context", "A", "", "Show NUM lines after each match.")
rootCmd.Flags().StringP("before-context", "B", "", "Show NUM lines before each match. ")
rootCmd.Flags().Bool("binary", false, "Enabling this flag will cause ripgrep to search binary files.")
rootCmd.Flags().StringP("after-context", "A", "", "Show NUM lines after each match")
rootCmd.Flags().StringP("before-context", "B", "", "Show NUM lines before each match")
rootCmd.Flags().Bool("binary", false, "Enabling this flag will cause ripgrep to search binary files")
rootCmd.Flags().Bool("block-buffered", false, "When enabled, ripgrep will use block buffering")
rootCmd.Flags().BoolP("byte-offset", "b", false, "Print the 0-based byte offset within the input file before each line of output.")
rootCmd.Flags().BoolP("case-sensitive", "s", false, "Search case sensitively.")
rootCmd.Flags().String("color", "", "This flag controls when to use colors.")
rootCmd.Flags().String("colors", "", "This flag specifies color settings for use in the output.")
rootCmd.Flags().Bool("column", false, "Show column numbers (1-based).")
rootCmd.Flags().StringP("context", "C", "", "Show NUM lines before and after each match.")
rootCmd.Flags().String("context-separator", "", "The string used to separate non-contiguous context lines in the output.")
rootCmd.Flags().BoolP("count", "c", false, "This flag suppresses normal output and shows the number of lines that match")
rootCmd.Flags().Bool("count-matches", false, "This flag suppresses normal output and shows the number of individual")
rootCmd.Flags().BoolP("byte-offset", "b", false, "Print the 0-based byte offset within the input file before each line of output")
rootCmd.Flags().BoolP("case-sensitive", "s", true, "Search case sensitively")
rootCmd.Flags().String("color", "auto", "When to use colors")
rootCmd.Flags().String("colors", "", "Color settings for use in the output")
rootCmd.Flags().Bool("column", false, "Show column numbers (1-based)")
rootCmd.Flags().StringP("context", "C", "", "Show NUM lines before and after each match")
rootCmd.Flags().String("context-separator", "", "The string used to separate non-contiguous context lines in the output")
rootCmd.Flags().BoolP("count", "c", false, "Suppress normal output and show the number of lines that match")
rootCmd.Flags().Bool("count-matches", false, "Suppress normal output and show the number of individual matches")
rootCmd.Flags().Bool("crlf", false, "When enabled, ripgrep will treat CRLF as a line terminator instead")
rootCmd.Flags().Bool("debug", false, "Show debug messages.")
rootCmd.Flags().String("dfa-size-limit", "", "The upper size limit of the regex DFA. The default limit is 10M.")
rootCmd.Flags().StringP("encoding", "E", "", "Specify the text encoding that ripgrep will use on all files searched.")
rootCmd.Flags().String("engine", "", "Specify which regular expression engine to use.")
rootCmd.Flags().StringP("file", "f", "", "Search for patterns from the given file, with one pattern per line.")
rootCmd.Flags().Bool("files", false, "Print each file that would be searched without actually performing the search.")
rootCmd.Flags().BoolP("files-with-matches", "l", false, "Only print the paths with at least one match.")
rootCmd.Flags().Bool("files-without-match", false, "Only print the paths that contain zero matches.")
rootCmd.Flags().BoolP("fixed-strings", "F", false, "Treat the pattern as a literal string instead of a regular expression.")
rootCmd.Flags().Bool("debug", false, "Show debug messages")
rootCmd.Flags().String("dfa-size-limit", "", "The upper size limit of the regex DFA. The default limit is 10M")
rootCmd.Flags().StringP("encoding", "E", "", "Specify the text encoding that ripgrep will use on all files searched")
rootCmd.Flags().String("engine", "", "Specify which regular expression engine to use")
rootCmd.Flags().String("field-context-separator", "", "Set the field context separator for contextual lines")
rootCmd.Flags().String("field-match-separator", "", "Set the field match separator for matching lines")
rootCmd.Flags().StringP("file", "f", "", "Search for patterns from the given file, with one pattern per line")
rootCmd.Flags().Bool("files", false, "Print each file that would be searched without actually performing the search")
rootCmd.Flags().BoolP("files-with-matches", "l", false, "Only print the paths with at least one match")
rootCmd.Flags().Bool("files-without-match", false, "Only print the paths that contain zero matches")
rootCmd.Flags().BoolP("fixed-strings", "F", false, "Treat the pattern as a literal string instead of a regular expression")
rootCmd.Flags().BoolP("follow", "L", false, "When this flag is enabled, ripgrep will follow symbolic links while traversing")
rootCmd.Flags().String("generate", "", "Generate special output of man pages and completion scripts")
rootCmd.Flags().StringP("glob", "g", "", "Include or exclude files and directories for searching that match the given")
rootCmd.Flags().Bool("glob-case-insensitive", false, "Process glob patterns given with the -g/--glob flag case insensitively.")
rootCmd.Flags().Bool("heading", false, "This flag prints the file path above clusters of matches from each file instead")
rootCmd.Flags().BoolP("help", "h", false, "Prints help information.")
rootCmd.Flags().Bool("hidden", false, "Search hidden files and directories.")
rootCmd.Flags().Bool("glob-case-insensitive", false, "Process glob patterns given with the -g/--glob flag case insensitively")
rootCmd.Flags().Bool("heading", false, "Print the file path above clusters of matches from each file instead")
rootCmd.Flags().BoolP("help", "h", false, "Prints help information")
rootCmd.Flags().BoolP("hidden", ".", false, "Search hidden files and directories")
rootCmd.Flags().String("hostname-bin", "", "Control how ripgrep determines this system's hostname")
rootCmd.Flags().String("hyperlink-format", "", "Set the format of hyperlinks to use when printing results")
rootCmd.Flags().String("iglob", "", "Include or exclude files and directories for searching that match the given")
rootCmd.Flags().BoolP("ignore-case", "i", false, "When this flag is provided, the given patterns will be searched case")
rootCmd.Flags().String("ignore-file", "", "Specifies a path to one or more .gitignore format rules files.")
rootCmd.Flags().Bool("ignore-file-case-insensitive", false, "Process ignore files (.gitignore, .ignore, etc.) case insensitively.")
rootCmd.Flags().String("ignore-file", "", "Specifies a path to one or more .gitignore format rules files")
rootCmd.Flags().Bool("ignore-file-case-insensitive", false, "Process ignore files (.gitignore, .ignore, etc.) case insensitively")
rootCmd.Flags().Bool("include-zero", false, "When used with --count or --count-matches, print the number of matches for")
rootCmd.Flags().BoolP("invert-match", "v", false, "Show lines that do not match the given patterns.")
rootCmd.Flags().Bool("json", false, "Enable printing results in a JSON Lines format.")
rootCmd.Flags().Bool("line-buffered", false, "When enabled, ripgrep will use line buffering.")
rootCmd.Flags().BoolP("line-number", "n", false, "Show line numbers (1-based).")
rootCmd.Flags().BoolP("line-regexp", "x", false, "Only show matches surrounded by line boundaries.")
rootCmd.Flags().StringP("max-columns", "M", "", "Don't print lines longer than this limit in bytes.")
rootCmd.Flags().BoolP("invert-match", "v", false, "Show lines that do not match the given patterns")
rootCmd.Flags().Bool("json", false, "Enable printing results in a JSON Lines format")
rootCmd.Flags().Bool("line-buffered", false, "When enabled, ripgrep will use line buffering")
rootCmd.Flags().BoolP("line-number", "n", false, "Show line numbers (1-based)")
rootCmd.Flags().BoolP("line-regexp", "x", false, "Only show matches surrounded by line boundaries")
rootCmd.Flags().StringP("max-columns", "M", "", "Don't print lines longer than this limit in bytes")
rootCmd.Flags().Bool("max-columns-preview", false, "When the '--max-columns' flag is used, ripgrep will by default completely")
rootCmd.Flags().StringP("max-count", "m", "", "Limit the number of matching lines per file searched to NUM.")
rootCmd.Flags().String("max-depth", "", "Limit the depth of directory traversal to NUM levels beyond the paths given.")
rootCmd.Flags().String("max-filesize", "", "Ignore files larger than NUM in size. This does not apply to directories.")
rootCmd.Flags().Bool("mmap", false, "Search using memory maps when possible.")
rootCmd.Flags().BoolP("multiline", "U", false, "Enable matching across multiple lines.")
rootCmd.Flags().Bool("multiline-dotall", false, "This flag enables \"dot all\" in your regex pattern, which causes '.' to match")
rootCmd.Flags().Bool("no-config", false, "Never read configuration files.")
rootCmd.Flags().BoolP("no-filename", "I", false, "Never print the file path with the matched lines.")
rootCmd.Flags().Bool("no-heading", false, "Don't group matches by each file.")
rootCmd.Flags().Bool("no-ignore", false, "Don't respect ignore files (.gitignore, .ignore, etc.).")
rootCmd.Flags().Bool("no-ignore-dot", false, "Don't respect .ignore files.")
rootCmd.Flags().StringP("max-count", "m", "", "Limit the number of matching lines per file searched to NUM")
rootCmd.Flags().StringP("max-depth", "d", "", "Limit the depth of directory traversal to NUM levels beyond the paths given")
rootCmd.Flags().String("max-filesize", "", "Ignore files larger than NUM in size. This does not apply to directories")
rootCmd.Flags().Bool("mmap", false, "Search using memory maps when possible")
rootCmd.Flags().BoolP("multiline", "U", false, "Enable matching across multiple lines")
rootCmd.Flags().Bool("multiline-dotall", false, "Enable \"dot all\" mode, which causes '.' to match line terminators")
rootCmd.Flags().Bool("no-config", false, "Never read configuration files")
rootCmd.Flags().BoolP("no-filename", "I", false, "Never print the file path with the matched lines")
rootCmd.Flags().Bool("no-heading", false, "Don't group matches by each file")
rootCmd.Flags().Bool("no-ignore", false, "Don't respect ignore files (.gitignore, .ignore, etc.)")
rootCmd.Flags().Bool("no-ignore-dot", false, "Don't respect .ignore files")
rootCmd.Flags().Bool("no-ignore-exclude", false, "Don't respect ignore files that are manually configured for the repository")
rootCmd.Flags().Bool("no-ignore-files", false, "When set, any --ignore-file flags, even ones that come after this flag, are")
rootCmd.Flags().Bool("no-ignore-global", false, "Don't respect ignore files that come from \"global\" sources such as git's")
rootCmd.Flags().Bool("no-ignore-messages", false, "Suppresses all error messages related to parsing ignore files such as .ignore")
rootCmd.Flags().Bool("no-ignore-parent", false, "Don't respect ignore files (.gitignore, .ignore, etc.) in parent directories.")
rootCmd.Flags().Bool("no-ignore-vcs", false, "Don't respect version control ignore files (.gitignore, etc.).")
rootCmd.Flags().Bool("no-ignore-parent", false, "Don't respect ignore files (.gitignore, .ignore, etc.) in parent directories")
rootCmd.Flags().Bool("no-ignore-vcs", false, "Don't respect version control ignore files (.gitignore, etc.)")
rootCmd.Flags().BoolP("no-line-number", "N", false, "Suppress line numbers. This is enabled by default when not searching in a")
rootCmd.Flags().Bool("no-messages", false, "Suppress all error messages related to opening and reading files.")
rootCmd.Flags().Bool("no-mmap", false, "Never use memory maps, even when they might be faster.")
rootCmd.Flags().Bool("no-pcre2-unicode", false, "DEPRECATED. Use --no-unicode instead.")
rootCmd.Flags().Bool("no-require-git", false, "By default, ripgrep will only respect global gitignore rules, .gitignore rules")
rootCmd.Flags().Bool("no-unicode", false, "By default, ripgrep will enable \"Unicode mode\" in all of its regexes.")
rootCmd.Flags().BoolP("null", "0", false, "Whenever a file path is printed, follow it with a NUL byte.")
rootCmd.Flags().Bool("no-messages", false, "Suppress all error messages related to opening and reading files")
rootCmd.Flags().Bool("no-mmap", false, "Never use memory maps, even when they might be faster")
rootCmd.Flags().Bool("no-pcre2-unicode", false, "DEPRECATED. Use --no-unicode instead")
rootCmd.Flags().Bool("no-require-git", false, "Respect source control ignore files even if no git repository is present")
rootCmd.Flags().Bool("no-unicode", false, "By default, ripgrep will enable \"Unicode mode\" in all of its regexes")
rootCmd.Flags().BoolP("null", "0", false, "Whenever a file path is printed, follow it with a NUL byte")
rootCmd.Flags().Bool("null-data", false, "Enabling this option causes ripgrep to use NUL as a line terminator instead of")
rootCmd.Flags().Bool("one-file-system", false, "When enabled, ripgrep will not cross file system boundaries relative to where")
rootCmd.Flags().Bool("one-file-system", false, "Do not cross file system boundaries relative to where the search started from")
rootCmd.Flags().BoolP("only-matching", "o", false, "Print only the matched (non-empty) parts of a matching line, with each such")
rootCmd.Flags().Bool("passthru", false, "Print both matching and non-matching lines.")
rootCmd.Flags().String("path-separator", "", "Set the path separator to use when printing file paths.")
rootCmd.Flags().Bool("passthru", false, "Print both matching and non-matching lines")
rootCmd.Flags().String("path-separator", "", "Set the path separator to use when printing file paths")
rootCmd.Flags().BoolP("pcre2", "P", false, "When this flag is present, ripgrep will use the PCRE2 regex engine instead of")
rootCmd.Flags().Bool("pcre2-version", false, "When this flag is present, ripgrep will print the version of PCRE2 in use,")
rootCmd.Flags().String("pre", "", "For each input FILE, search the standard output of COMMAND FILE rather than the")
rootCmd.Flags().String("pre-glob", "", "This flag works in conjunction with the --pre flag.")
rootCmd.Flags().BoolP("pretty", "p", false, "This is a convenience alias for '--color always --heading --line-number'.")
rootCmd.Flags().BoolP("quiet", "q", false, "Do not print anything to stdout.")
rootCmd.Flags().String("pre", "", "Search the standard output of COMMAND PATH instead of the contents of PATH")
rootCmd.Flags().String("pre-glob", "", "Works in conjunction with the --pre flag to limit which files a preprocessor is run with")
rootCmd.Flags().BoolP("pretty", "p", false, "This is a convenience alias for '--color always --heading --line-number'")
rootCmd.Flags().BoolP("quiet", "q", false, "Do not print anything to stdout")
rootCmd.Flags().String("regex-size-limit", "", "")
rootCmd.Flags().StringP("regexp", "e", "", "A pattern to search for.")
rootCmd.Flags().StringP("replace", "r", "", "Replace every match with the text given when printing results.")
rootCmd.Flags().BoolP("search-zip", "z", false, "Search in compressed files.")
rootCmd.Flags().BoolP("smart-case", "S", false, "Searches case insensitively if the pattern is all lowercase.")
rootCmd.Flags().String("sort", "", "This flag enables sorting of results in ascending order.")
rootCmd.Flags().String("sortr", "", "This flag enables sorting of results in descending order.")
rootCmd.Flags().Bool("stats", false, "Print aggregate statistics about this ripgrep search.")
rootCmd.Flags().BoolP("text", "a", false, "Search binary files as if they were text.")
rootCmd.Flags().StringP("threads", "j", "", "The approximate number of threads to use.")
rootCmd.Flags().StringP("regexp", "e", "", "A pattern to search for")
rootCmd.Flags().StringP("replace", "r", "", "Replace every match with the text given when printing results")
rootCmd.Flags().BoolP("search-zip", "z", false, "Search in compressed files")
rootCmd.Flags().BoolP("smart-case", "S", false, "Searches case insensitively if the pattern is all lowercase")
rootCmd.Flags().String("sort", "", "Sort results in ascending order")
rootCmd.Flags().String("sortr", "", "Sort results in descending order")
rootCmd.Flags().Bool("stats", false, "Print aggregate statistics about this ripgrep search")
rootCmd.Flags().Bool("stop-on-nonmatch", false, "Stop searching after a non-match")
rootCmd.Flags().BoolP("text", "a", false, "Search binary files as if they were text")
rootCmd.Flags().StringP("threads", "j", "", "The approximate number of threads to use")
rootCmd.Flags().Bool("trace", false, "Show trace messages with even more detail than --debug")
rootCmd.Flags().Bool("trim", false, "When set, all ASCII whitespace at the beginning of each line printed will be")
rootCmd.Flags().StringP("type", "t", "", "Only search files matching TYPE.")
rootCmd.Flags().String("type-add", "", "Add a new glob for a particular file type.")
rootCmd.Flags().String("type-clear", "", "Clear the file type globs previously defined for TYPE.")
rootCmd.Flags().Bool("type-list", false, "Show all supported file types and their corresponding globs.")
rootCmd.Flags().StringP("type-not", "T", "", "Do not search files matching TYPE.")
rootCmd.Flags().BoolP("unrestricted", "u", false, "Reduce the level of smart searching.")
rootCmd.Flags().StringP("type", "t", "", "Only search files matching TYPE")
rootCmd.Flags().String("type-add", "", "Add a new glob for a particular file type")
rootCmd.Flags().String("type-clear", "", "Clear the file type globs previously defined for TYPE")
rootCmd.Flags().Bool("type-list", false, "Show all supported file types and their corresponding globs")
rootCmd.Flags().StringP("type-not", "T", "", "Do not search files matching TYPE")
rootCmd.Flags().BoolP("unrestricted", "u", false, "Reduce the level of smart searching")
rootCmd.Flags().BoolP("version", "V", false, "Prints version information")
rootCmd.Flags().Bool("vimgrep", false, "Show results with every match on its own line, including line numbers and")
rootCmd.Flags().BoolP("with-filename", "H", false, "Display the file path for matches.")
rootCmd.Flags().BoolP("word-regexp", "w", false, "Only show matches surrounded by word boundaries.")
rootCmd.Flags().BoolP("with-filename", "H", false, "Display the file path for matches")
rootCmd.Flags().BoolP("word-regexp", "w", false, "Only show matches surrounded by word boundaries")

carapace.Gen(rootCmd).FlagCompletion(carapace.ActionMap{
"color": carapace.ActionValuesDescribed(
Expand All @@ -137,8 +144,18 @@ func init() {
"default", "use default engine",
"pcre2", "identical to --pcre2",
),
"file": carapace.ActionFiles(),
"ignore-file": carapace.ActionFiles(),
"file": carapace.ActionFiles(),
"generate": carapace.ActionValues("man", "complete-bash", "complete-zsh", "complete-fish", "complete-powershell"),
"hostname-bin": carapace.Batch(
carapace.ActionExecutables(),
carapace.ActionFiles(),
).ToA(),
"hyperlink-format": carapace.ActionValues("default", "none", "file", "grep+", "kitty", "macvim", "textmate", "vscode", "vscode-insiders", "vscodium"),
"ignore-file": carapace.ActionFiles(),
"pre": carapace.Batch(
carapace.ActionExecutables(),
carapace.ActionFiles(),
).ToA(),
"sort": carapace.ActionValuesDescribed(
"accessed", "sort by last accessed time",
"created", "sort by creation time",
Expand Down

0 comments on commit d182eba

Please sign in to comment.