Skip to content

Commit

Permalink
argv: support hidden flags
Browse files Browse the repository at this point in the history
This commit adds support for hidden flags. The purpose of hidden flags
is for things that end users likely won't need unless they have a
configuration file that disables ripgrep's defaults. These flags will
provide a way to re-enable ripgrep's defaults.
  • Loading branch information
BurntSushi committed Feb 6, 2018
1 parent 706323a commit 874f0b9
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
3 changes: 3 additions & 0 deletions build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ fn formatted_options() -> io::Result<String> {

let mut formatted = vec![];
for arg in args {
if arg.hidden {
continue;
}
// ripgrep only has two positional arguments, and probably will only
// ever have two positional arguments, so we just hardcode them into
// the template.
Expand Down
22 changes: 22 additions & 0 deletions src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,18 @@ pub struct RGArg {
///
/// This is shown in the `--help` output.
pub doc_long: &'static str,
/// Whether this flag is hidden or not.
///
/// This is typically used for uncommon flags that only serve to override
/// other flags. For example, --no-ignore is a prominent flag that disables
/// ripgrep's gitignore functionality, but --ignore re-enables it. Since
/// gitignore support is enabled by default, use of the --ignore flag is
/// somewhat niche and relegated to special cases when users make use of
/// configuration files to set defaults.
///
/// Generally, these flags should be documented in the documentation for
/// the flag they override.
pub hidden: bool,
/// The type of this argument.
pub kind: RGArgKind,
}
Expand Down Expand Up @@ -238,6 +250,7 @@ impl RGArg {
name: name,
doc_short: "",
doc_long: "",
hidden: false,
kind: RGArgKind::Positional {
value_name: value_name,
multiple: false,
Expand All @@ -261,6 +274,7 @@ impl RGArg {
name: long_name,
doc_short: "",
doc_long: "",
hidden: false,
kind: RGArgKind::Switch {
long: long_name,
short: None,
Expand Down Expand Up @@ -290,6 +304,7 @@ impl RGArg {
name: long_name,
doc_short: "",
doc_long: "",
hidden: false,
kind: RGArgKind::Flag {
long: long_name,
short: None,
Expand Down Expand Up @@ -367,6 +382,13 @@ impl RGArg {
self
}

/// Hide this flag from all documentation.
fn hidden(mut self) -> RGArg {
self.hidden = true;
self.claparg = self.claparg.hidden(true);
self
}

/// Set the possible values for this argument. If this argument is not
/// a flag, then this panics.
///
Expand Down

0 comments on commit 874f0b9

Please sign in to comment.