mirror of
				https://github.com/sharkdp/bat.git
				synced 2025-10-30 22:54:07 +00:00 
			
		
		
		
	Make bat::PrettyPrinter::syntaxes() iterate over new bat::Syntax struct (#2222)
				
					
				
			We can't keep `syntect::parsing::SyntaxReference` as part of the public API, because that might prevent us from bumping to syntect 6.0.0 without also bumping bat to v2.0.0, once we reach v1.0.0. So introduce a new stripped down struct `Syntax` and return that instead. Let it be fully owned to make the API simple. It is not going to be in a hot code path anyway. I have looked at all code of our 27 dependents but I can't find a single instance of this method being used, so this change should be safe for v1.0.0.
This commit is contained in:
		
							
								
								
									
										16
									
								
								tests/test_pretty_printer.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								tests/test_pretty_printer.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| use bat::PrettyPrinter; | ||||
|  | ||||
| #[test] | ||||
| fn syntaxes() { | ||||
|     let printer = PrettyPrinter::new(); | ||||
|     let syntaxes: Vec<String> = printer.syntaxes().map(|s| s.name).collect(); | ||||
|  | ||||
|     // Just do some sanity checking | ||||
|     assert!(syntaxes.contains(&"Rust".to_string())); | ||||
|     assert!(syntaxes.contains(&"Java".to_string())); | ||||
|     assert!(!syntaxes.contains(&"this-language-does-not-exist".to_string())); | ||||
|  | ||||
|     // This language exists but is hidden, so we should not see it; it shall | ||||
|     // have been filtered out before getting to us | ||||
|     assert!(!syntaxes.contains(&"Git Common".to_string())); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user