mirror of
				https://github.com/sharkdp/bat.git
				synced 2025-10-31 07:04:04 +00:00 
			
		
		
		
	Merge branch 'master' into bash-zsh
This commit is contained in:
		| @@ -10,6 +10,7 @@ | ||||
| - Prevent `--list-themes` from outputting default theme info to stdout when it is piped, see #3189 (@einfachIrgendwer0815) | ||||
| - Rename some submodules to fix Dependabot submodule updates, see issue #3198 and PR #3201 (@victor-gp) | ||||
| - Make highlight tests fail when new syntaxes don't have fixtures PR #3255 (@dan-hipschman) | ||||
| - Fix crash for multibyte characters in file path, see issue #3230 and PR #3245 (@HSM95) | ||||
| - Add missing mappings for various bash/zsh files, see PR #3262 (@AdamGaskins) | ||||
|  | ||||
| ## Other | ||||
|   | ||||
							
								
								
									
										7
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										7
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @@ -153,6 +153,7 @@ dependencies = [ | ||||
|  "terminal-colorsaurus", | ||||
|  "thiserror 2.0.11", | ||||
|  "toml", | ||||
|  "unicode-segmentation", | ||||
|  "unicode-width 0.1.14", | ||||
|  "wait-timeout", | ||||
|  "walkdir", | ||||
| @@ -1678,6 +1679,12 @@ version = "1.0.14" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" | ||||
|  | ||||
| [[package]] | ||||
| name = "unicode-segmentation" | ||||
| version = "1.12.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" | ||||
|  | ||||
| [[package]] | ||||
| name = "unicode-width" | ||||
| version = "0.1.14" | ||||
|   | ||||
| @@ -10,6 +10,7 @@ version = "0.25.0" | ||||
| exclude = ["assets/syntaxes/*", "assets/themes/*"] | ||||
| build = "build/main.rs" | ||||
| edition = '2021' | ||||
| # You are free to bump MSRV as soon as a reason for bumping emerges. | ||||
| rust-version = "1.74" | ||||
|  | ||||
| [features] | ||||
| @@ -68,6 +69,7 @@ bytesize = { version = "1.3.0" } | ||||
| encoding_rs = "0.8.35" | ||||
| execute = { version = "0.2.13", optional = true } | ||||
| terminal-colorsaurus = "0.4" | ||||
| unicode-segmentation = "1.12.0" | ||||
|  | ||||
| [dependencies.git2] | ||||
| version = "0.20" | ||||
|   | ||||
| @@ -15,6 +15,7 @@ use content_inspector::ContentType; | ||||
|  | ||||
| use encoding_rs::{UTF_16BE, UTF_16LE}; | ||||
|  | ||||
| use unicode_segmentation::UnicodeSegmentation; | ||||
| use unicode_width::UnicodeWidthChar; | ||||
|  | ||||
| use crate::assets::{HighlightingAssets, SyntaxReferenceInSet}; | ||||
| @@ -388,14 +389,18 @@ impl<'a> InteractivePrinter<'a> { | ||||
|         handle: &mut OutputHandle, | ||||
|         content: &str, | ||||
|     ) -> Result<()> { | ||||
|         let mut content = content; | ||||
|         let content_width = self.config.term_width - self.get_header_component_indent_length(); | ||||
|         while content.len() > content_width { | ||||
|             let (content_line, remaining) = content.split_at(content_width); | ||||
|             self.print_header_component_with_indent(handle, content_line)?; | ||||
|             content = remaining; | ||||
|         if content.chars().count() <= content_width { | ||||
|             return self.print_header_component_with_indent(handle, content); | ||||
|         } | ||||
|         self.print_header_component_with_indent(handle, content) | ||||
|  | ||||
|         let mut content_graphemes: Vec<&str> = content.graphemes(true).collect(); | ||||
|         while content_graphemes.len() > content_width { | ||||
|             let (content_line, remaining) = content_graphemes.split_at(content_width); | ||||
|             self.print_header_component_with_indent(handle, content_line.join("").as_str())?; | ||||
|             content_graphemes = remaining.iter().cloned().collect(); | ||||
|         } | ||||
|         self.print_header_component_with_indent(handle, content_graphemes.join("").as_str()) | ||||
|     } | ||||
|  | ||||
|     fn highlight_regions_for_line<'b>( | ||||
|   | ||||
							
								
								
									
										0
									
								
								tests/examples/test.A—B가
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								tests/examples/test.A—B가
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -1600,6 +1600,17 @@ oken | ||||
|         .stderr(""); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn header_narrow_terminal_with_multibyte_chars() { | ||||
|     bat() | ||||
|         .arg("--terminal-width=30") | ||||
|         .arg("--decorations=always") | ||||
|         .arg("test.A—B가") | ||||
|         .assert() | ||||
|         .success() | ||||
|         .stderr(""); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| #[cfg(feature = "git")] // Expected output assumes git is enabled | ||||
| fn header_default() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user