diff --git a/CHANGELOG.md b/CHANGELOG.md index 071371a9..e74c844d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,8 @@ Bug fixes: Clarify that CLI invocation must always be valid, regardless of config file. * [BUG #1741](https://github.com/BurntSushi/ripgrep/issues/1741): Fix stdin detection when using PowerShell in UNIX environments. +* [BUG #1816](https://github.com/BurntSushi/ripgrep/issues/1816): + Add documentation for glob alternate syntax, e.g., `{a,b,..}`. * [BUG #1847](https://github.com/BurntSushi/ripgrep/issues/1847): Clarify how the `--hidden` flag works. * [BUG #1866](https://github.com/BurntSushi/ripgrep/issues/1866#issuecomment-841635553): diff --git a/crates/core/app.rs b/crates/core/app.rs index 41128c5f..0e799d08 100644 --- a/crates/core/app.rs +++ b/crates/core/app.rs @@ -1358,6 +1358,13 @@ used. Globbing rules match .gitignore globs. Precede a glob with a ! to exclude it. If multiple globs match a file or directory, the glob given later in the command line takes precedence. +As an extension, globs support specifying alternatives: *-g ab{c,d}* is +equivalet to *-g abc -g abd*. Empty alternatives like *-g ab{,c}* are not +currently supported. Note that this syntax extension is also currently enabled +in gitignore files, even though this syntax isn't supported by git itself. +ripgrep may disable this syntax extension in gitignore files, but it will +always remain available via the -g/--glob flag. + When this flag is set, every file and directory is applied to it to test for a match. So for example, if you only want to search in a particular directory 'foo', then *-g foo* is incorrect because 'foo/bar' does not match the glob