Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a --style=default option #2119

Merged
merged 9 commits into from
May 4, 2022
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## Features

- Correctly render tab stops in --show-all, see #2038 (@Synthetica9)
- Add a --style=default option, less verbose than =full, see #2061 (@IsaacHorvath)
IsaacHorvath marked this conversation as resolved.
Show resolved Hide resolved

## Bugfixes

Expand Down
2 changes: 1 addition & 1 deletion assets/completions/_bat.ps1.in
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Register-ArgumentCompleter -Native -CommandName '{{PROJECT_EXECUTABLE}}' -Script
[CompletionResult]::new('-m', 'm', [CompletionResultType]::ParameterName, 'Use the specified syntax for files matching the glob pattern (''*.cpp:C++'').')
[CompletionResult]::new('--map-syntax', 'map-syntax', [CompletionResultType]::ParameterName, 'Use the specified syntax for files matching the glob pattern (''*.cpp:C++'').')
[CompletionResult]::new('--theme', 'theme', [CompletionResultType]::ParameterName, 'Set the color theme for syntax highlighting.')
[CompletionResult]::new('--style', 'style', [CompletionResultType]::ParameterName, 'Comma-separated list of style elements to display (*auto*, full, plain, changes, header, header-filename, header-filesize, grid, rule, numbers, snip).')
[CompletionResult]::new('--style', 'style', [CompletionResultType]::ParameterName, 'Comma-separated list of style elements to display (*default*, auto, full, plain, changes, header, header-filename, header-filesize, grid, rule, numbers, snip).')
[CompletionResult]::new('-r', 'r', [CompletionResultType]::ParameterName, 'Only print the lines from N to M.')
[CompletionResult]::new('--line-range', 'line-range', [CompletionResultType]::ParameterName, 'Only print the lines from N to M.')
[CompletionResult]::new('-A', 'A', [CompletionResultType]::ParameterName, 'Show non-printable characters (space, tab, newline, ..).')
Expand Down
2 changes: 1 addition & 1 deletion assets/completions/bat.fish.in
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ complete -c {{PROJECT_EXECUTABLE}} -s P -d "Disable paging. Alias for '--paging=

complete -c {{PROJECT_EXECUTABLE}} -s A -l show-all -d "Show non-printable characters like space/tab/newline" -n "not __fish_seen_subcommand_from cache"

complete -c {{PROJECT_EXECUTABLE}} -l style -xka "auto full plain changes header header-filename header-filesize grid rule numbers snip" -d "Comma-separated list of style elements or presets to display with file contents" -n "not __fish_seen_subcommand_from cache"
complete -c {{PROJECT_EXECUTABLE}} -l style -xka "default auto full plain changes header header-filename header-filesize grid rule numbers snip" -d "Comma-separated list of style elements or presets to display with file contents" -n "not __fish_seen_subcommand_from cache"

complete -c {{PROJECT_EXECUTABLE}} -l tabs -x -d "<T> Set the tab width to T spaces (width of 0 passes tabs through directly)" -n "not __fish_seen_subcommand_from cache"

Expand Down
2 changes: 1 addition & 1 deletion assets/completions/bat.zsh.in
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ _{{PROJECT_EXECUTABLE}}_main() {
;;

style)
_values -s , 'style' auto full plain changes header header-filename header-filesize grid rule numbers snip
_values -s , 'style' default auto full plain changes header header-filename header-filesize grid rule numbers snip
;;
esac
}
Expand Down
2 changes: 1 addition & 1 deletion assets/manual/bat.1.in
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ Configure which elements (line numbers, file headers, grid borders, Git modifica
of components to display (e.g. 'numbers,changes,grid') or a pre\-defined style ('full').
To set a default style, add the '\-\-style=".."' option to the configuration file or
export the BAT_STYLE environment variable (e.g.: export BAT_STYLE=".."). Possible
values: *full*, auto, plain, changes, header, header-filename, header-filesize, grid,
values: *default*, full, auto, plain, changes, header, header-filename, header-filesize, grid,
rule, numbers, snip.
.HP
\fB\-r\fR, \fB\-\-line\-range\fR <N:M>...
Expand Down
1 change: 1 addition & 0 deletions src/bin/bat/clap_app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,7 @@ pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> {
!&[
"auto",
"full",
"default",
Enselic marked this conversation as resolved.
Show resolved Hide resolved
"plain",
"header",
"header-filename",
Expand Down
12 changes: 11 additions & 1 deletion src/style.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ pub enum StyleComponent {
LineNumbers,
Snip,
Full,
Default,
Plain,
}

Expand All @@ -25,7 +26,7 @@ impl StyleComponent {
match self {
StyleComponent::Auto => {
if interactive_terminal {
StyleComponent::Full.components(interactive_terminal)
StyleComponent::Default.components(interactive_terminal)
} else {
StyleComponent::Plain.components(interactive_terminal)
}
Expand All @@ -48,6 +49,14 @@ impl StyleComponent {
StyleComponent::LineNumbers,
StyleComponent::Snip,
],
StyleComponent::Default => &[
#[cfg(feature = "git")]
StyleComponent::Changes,
StyleComponent::Grid,
StyleComponent::HeaderFilename,
StyleComponent::LineNumbers,
StyleComponent::Snip,
],
StyleComponent::Plain => &[],
}
}
Expand All @@ -69,6 +78,7 @@ impl FromStr for StyleComponent {
"numbers" => Ok(StyleComponent::LineNumbers),
"snip" => Ok(StyleComponent::Snip),
"full" => Ok(StyleComponent::Full),
"default" => Ok(StyleComponent::Default),
"plain" => Ok(StyleComponent::Plain),
_ => Err(format!("Unknown style '{}'", s).into()),
}
Expand Down
24 changes: 24 additions & 0 deletions tests/integration_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -974,6 +974,30 @@ fn header_full_binary() {
.stderr("");
}

#[test]
fn header_default() {
bat()
.arg("--paging=never")
.arg("--color=never")
.arg("--terminal-width=80")
.arg("--wrap=never")
.arg("--decorations=always")
.arg("--style=default")
Enselic marked this conversation as resolved.
Show resolved Hide resolved
.arg("single-line.txt")
.assert()
.success()
.stdout(
"\
───────┬────────────────────────────────────────────────────────────────────────
│ File: single-line.txt
───────┼────────────────────────────────────────────────────────────────────────
1 │ Single Line
───────┴────────────────────────────────────────────────────────────────────────
",
)
.stderr("");
}

#[test]
fn filename_stdin() {
bat()
Expand Down