mirror of
https://github.com/sharkdp/bat
synced 2026-07-30 18:11:44 +00:00
Print non-printable characters using caret notation (#2443)
When the new flag is set, non-printable characters are printed using caret notation.
This commit is contained in:
committed by
GitHub
parent
c5602f9766
commit
8f99a78cf1
+10
-1
@@ -21,7 +21,7 @@ use bat::{
|
||||
input::Input,
|
||||
line_range::{HighlightedLineRanges, LineRange, LineRanges},
|
||||
style::{StyleComponent, StyleComponents},
|
||||
MappingTarget, PagingMode, SyntaxMapping, WrappingMode,
|
||||
MappingTarget, NonprintableNotation, PagingMode, SyntaxMapping, WrappingMode,
|
||||
};
|
||||
|
||||
fn is_truecolor_terminal() -> bool {
|
||||
@@ -173,6 +173,15 @@ impl App {
|
||||
}
|
||||
}),
|
||||
show_nonprintable: self.matches.get_flag("show-all"),
|
||||
nonprintable_notation: match self
|
||||
.matches
|
||||
.get_one::<String>("nonprintable-notation")
|
||||
.map(|s| s.as_str())
|
||||
{
|
||||
Some("unicode") => NonprintableNotation::Unicode,
|
||||
Some("caret") => NonprintableNotation::Caret,
|
||||
_ => unreachable!("other values for --nonprintable-notation are not allowed"),
|
||||
},
|
||||
wrapping_mode: if self.interactive_output || maybe_term_width.is_some() {
|
||||
if !self.matches.get_flag("chop-long-lines") {
|
||||
match self.matches.get_one::<String>("wrap").map(|s| s.as_str()) {
|
||||
|
||||
@@ -59,6 +59,22 @@ pub fn build_app(interactive_output: bool) -> Command {
|
||||
Use '--tabs' to control the width of the tab-placeholders.",
|
||||
),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("nonprintable-notation")
|
||||
.long("nonprintable-notation")
|
||||
.action(ArgAction::Set)
|
||||
.default_value("unicode")
|
||||
.value_parser(["unicode", "caret"])
|
||||
.value_name("notation")
|
||||
.hide_default_value(true)
|
||||
.help("Set notation for non-printable characters.")
|
||||
.long_help(
|
||||
"Set notation for non-printable characters.\n\n\
|
||||
Possible values:\n \
|
||||
* unicode (␇, ␊, ␀, ..)\n \
|
||||
* caret (^G, ^J, ^@, ..)",
|
||||
),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("plain")
|
||||
.overrides_with("plain")
|
||||
|
||||
Reference in New Issue
Block a user