mirror of
				https://github.com/sharkdp/bat.git
				synced 2025-10-31 15:12:12 +00:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 6a6041c72c | ||
|  | 0d93abde67 | ||
|  | 1cc39a790f | ||
|  | 2d93da1869 | 
							
								
								
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -236,6 +236,3 @@ | ||||
| [submodule "assets/syntaxes/02_Extra/Dart"] | ||||
| 	path = assets/syntaxes/02_Extra/Dart | ||||
| 	url = https://github.com/elMuso/Dartlight.git | ||||
| [submodule "assets/syntaxes/02_Extra/SublimeJQ"] | ||||
| 	path = assets/syntaxes/02_Extra/SublimeJQ | ||||
| 	url = https://github.com/zogwarg/SublimeJQ.git | ||||
|   | ||||
							
								
								
									
										11
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -1,13 +1,12 @@ | ||||
| # v0.20.0 | ||||
| # unreleased | ||||
|  | ||||
| ## Features | ||||
|  | ||||
| - New style component `header-filesize` to show size of the displayed file in the header. See #1988 (@mdibaiee) | ||||
| - Use underline for line highlighting on ANSI, see #1730 (@mdibaiee) | ||||
|  | ||||
| ## Bugfixes | ||||
|  | ||||
| - Fix bash completion on bash 3.x and bash-completion 1.x. See #2066 (@joshpencheon) | ||||
| ## Other | ||||
|  | ||||
| ## Syntaxes | ||||
|  | ||||
| @@ -15,14 +14,12 @@ | ||||
| - Associate `_vimrc` and `_gvimrc` files with the `VimL` syntax. See #2002 | ||||
| - Associate `poetry.lock` files with the `TOML` syntax. See #2049 | ||||
| - Associate `.mesh`, `.task`, `.rgen`, `.rint`, `.rahit`, `.rchit`, `.rmiss`, and `.rcall` with the `GLSL` syntax. See #2050 | ||||
| - Added support for `JQ` syntax, see #2072 | ||||
| - Properly associate global git config files rooted in `$XDG_CONFIG_HOME/git/` or `$HOME/.config/git/`. See #2067 (@cyqsimon) | ||||
|  | ||||
| ## Themes | ||||
|  | ||||
| ## `bat` as a library | ||||
|  | ||||
| - Exposed `get_syntax_set` and `get_theme` methods on `HighlightingAssets`. See #2030 (@dandavison) | ||||
| - Added `HeaderFilename` and `HeaderFilesize` to `StyleComponent` enum, and mark it `#[non_exhaustive]`. See #1988 (@mdibaiee) | ||||
|  | ||||
|  | ||||
| # v0.19.0 | ||||
|  | ||||
|   | ||||
| @@ -46,25 +46,3 @@ If you really think that a particular syntax or theme should be added for all | ||||
| users, please read the corresponding | ||||
| [documentation](https://github.com/sharkdp/bat/blob/master/doc/assets.md) | ||||
| first. | ||||
|  | ||||
|  | ||||
| ## Regression tests | ||||
|  | ||||
| You are strongly encouraged to add regression tests. Regression tests are great, | ||||
| not least because they: | ||||
|  | ||||
| * ensure that your contribution will never completely stop working, | ||||
|  | ||||
| * makes code review easier, because it becomes very clear what the code is | ||||
|   supposed to do. | ||||
|  | ||||
| For functional changes, you most likely want to add a test to | ||||
| [`tests/integration_tests.rs`](https://github.com/sharkdp/bat/blob/master/tests/integration_tests.rs). | ||||
| Look at existing tests to know how to write a new test. In short, you will | ||||
| invoke the `bat` binary with a certain set of arguments, and then assert on | ||||
| stdout/stderr. | ||||
|  | ||||
| To learn how to write regression tests for theme and syntax changes, read the | ||||
| [Syntax | ||||
| tests](https://github.com/sharkdp/bat/blob/master/doc/assets.md#syntax-tests) | ||||
| section in `assets.md`. | ||||
|   | ||||
							
								
								
									
										2
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @@ -74,7 +74,7 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" | ||||
|  | ||||
| [[package]] | ||||
| name = "bat" | ||||
| version = "0.20.0" | ||||
| version = "0.19.0" | ||||
| dependencies = [ | ||||
|  "ansi_colours", | ||||
|  "ansi_term", | ||||
|   | ||||
| @@ -6,7 +6,7 @@ homepage = "https://github.com/sharkdp/bat" | ||||
| license = "MIT/Apache-2.0" | ||||
| name = "bat" | ||||
| repository = "https://github.com/sharkdp/bat" | ||||
| version = "0.20.0" | ||||
| version = "0.19.0" | ||||
| exclude = ["assets/syntaxes/*", "assets/themes/*"] | ||||
| build = "build.rs" | ||||
| edition = '2018' | ||||
|   | ||||
| @@ -21,7 +21,7 @@ | ||||
|  | ||||
| ### Sponsors | ||||
|  | ||||
| A special *thank you* goes to our biggest <a href="doc/sponsors.md">sponsors</a>:<br> | ||||
| a special thank you goes to our biggest <a href="doc/sponsors.md">sponsors</a>:<br> | ||||
| <a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=bat&utm_source=github"> | ||||
|   <img src="doc/sponsors/workos-logo-white-bg.svg" width="200" alt="WorkOS"> | ||||
|   <br> | ||||
|   | ||||
							
								
								
									
										2
									
								
								assets/completions/_bat.ps1.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								assets/completions/_bat.ps1.in
									
									
									
									
										vendored
									
									
								
							| @@ -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 (*auto*, full, plain, changes, header, 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, ..).') | ||||
|   | ||||
							
								
								
									
										15
									
								
								assets/completions/bat.bash.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								assets/completions/bat.bash.in
									
									
									
									
										vendored
									
									
								
							| @@ -2,22 +2,9 @@ | ||||
|  | ||||
| # Requires https://github.com/scop/bash-completion | ||||
|  | ||||
| # Macs have bash3 for which the bash-completion package doesn't include | ||||
| # _init_completion. This is a minimal version of that function. | ||||
| __bat_init_completion() | ||||
| { | ||||
| 	COMPREPLY=() | ||||
| 	_get_comp_words_by_ref "$@" cur prev words cword | ||||
| } | ||||
|  | ||||
| _bat() { | ||||
| 	local cur prev words cword split=false | ||||
| 	if declare -F _init_completion >/dev/null 2>&1; then | ||||
| 	local cur prev words cword split | ||||
| 	_init_completion -s || return 0 | ||||
| 	else | ||||
| 		__bat_init_completion -n "=" || return 0 | ||||
| 		_split_longopt && split=true | ||||
| 	fi | ||||
|  | ||||
| 	if [[ ${words[1]-} == cache ]]; then | ||||
| 		case $prev in | ||||
|   | ||||
							
								
								
									
										2
									
								
								assets/completions/bat.fish.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								assets/completions/bat.fish.in
									
									
									
									
										vendored
									
									
								
							| @@ -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 "auto full plain changes header 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" | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								assets/completions/bat.zsh.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								assets/completions/bat.zsh.in
									
									
									
									
										vendored
									
									
								
							| @@ -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' auto full plain changes header grid rule numbers snip | ||||
|         ;; | ||||
|     esac | ||||
| } | ||||
|   | ||||
							
								
								
									
										3
									
								
								assets/manual/bat.1.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								assets/manual/bat.1.in
									
									
									
									
										vendored
									
									
								
							| @@ -146,8 +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, | ||||
| rule, numbers, snip. | ||||
| values: *full*, auto, plain, changes, header, grid, rule, numbers, snip. | ||||
| .HP | ||||
| \fB\-r\fR, \fB\-\-line\-range\fR <N:M>... | ||||
| .IP | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								assets/syntaxes.bin
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/syntaxes.bin
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										1
									
								
								assets/syntaxes/02_Extra/SublimeJQ
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								assets/syntaxes/02_Extra/SublimeJQ
									
									
									
									
										vendored
									
									
								
							 Submodule assets/syntaxes/02_Extra/SublimeJQ deleted from 687058289c
									
								
							| @@ -181,7 +181,7 @@ man 2 select | ||||
|  | ||||
| ## インストール | ||||
|  | ||||
| [](https://repology.org/project/bat-cat/versions) | ||||
| [](https://repology.org/project/bat/versions) | ||||
|  | ||||
| ###  On Ubuntu (`apt` を使用) | ||||
| *... や他のDebianベースのLinuxディストリビューション* | ||||
|   | ||||
| @@ -160,7 +160,7 @@ man 2 select | ||||
|  | ||||
| ## Установка | ||||
|  | ||||
| [](https://repology.org/project/bat-cat/versions) | ||||
| [](https://repology.org/project/bat/versions) | ||||
|  | ||||
| ### Ubuntu (с помощью `apt`) | ||||
| *... и другие дистрибутивы основанные на Debian.* | ||||
|   | ||||
| @@ -1,5 +1,16 @@ | ||||
| # Release checklist | ||||
|  | ||||
| ## Dependencies | ||||
|  | ||||
| See this page for a good overview: https://deps.rs/repo/github/sharkdp/bat | ||||
|  | ||||
| - [ ] Optional: update dependencies with `cargo update`. This is also done by | ||||
|       dependabot, so it is not strictly necessary. | ||||
| - [ ] Install [cargo-outdated](https://crates.io/crates/cargo-outdated). Check | ||||
|       for outdated dependencies with `cargo outdated --root-deps-only` and | ||||
|       decide for each of them whether we want to (manually) upgrade. This will | ||||
|       require changes to `Cargo.toml`. | ||||
|  | ||||
| ## Version bump | ||||
|  | ||||
| - [ ] Update version in `Cargo.toml`. Run `cargo build` to update `Cargo.lock`. | ||||
| @@ -13,7 +24,7 @@ | ||||
|  | ||||
| ## Update syntaxes and themes (build assets) | ||||
|  | ||||
| - [ ] Install the latest master version (`cargo clean && cargo install -f --path .`) and make | ||||
| - [ ] Install the latest master version (`cargo install -f --path .`) and make | ||||
|       sure that it is available on the `PATH` (`bat --version` should show the | ||||
|       new version). | ||||
| - [ ] Run `assets/create.sh` and check in the binary asset files. | ||||
| @@ -21,7 +32,7 @@ | ||||
| ## Documentation | ||||
|  | ||||
| - [ ] Review the `-h` and `--help` texts | ||||
| - [ ] Review the `man` page (`man $(fd -HIp target/release/build.*out/assets/manual/bat.1) | tee`) | ||||
| - [ ] Review the `man` page | ||||
|  | ||||
| ## Pre-release checks | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,5 @@ | ||||
| ## Sponsors | ||||
|  | ||||
| `bat` development is sponsored by many individuals and companies. Thank you very much! | ||||
|  | ||||
| Please note, that being sponsored does not affect the individuality of the `bat` | ||||
| project or affect the maintainers' actions in any way. | ||||
| We remain impartial and continue to assess pull requests solely on merit - the | ||||
|   | ||||
| @@ -1 +0,0 @@ | ||||
| # Defaults are used | ||||
| @@ -463,10 +463,6 @@ impl<'a> Printer for InteractivePrinter<'a> { | ||||
|         let highlight_this_line = | ||||
|             self.config.highlighted_lines.0.check(line_number) == RangeCheckResult::InRange; | ||||
|  | ||||
|         if highlight_this_line && self.config.theme == "ansi" { | ||||
|             self.ansi_style.update("^[4m"); | ||||
|         } | ||||
|  | ||||
|         let background_color = self | ||||
|             .background_color_highlight | ||||
|             .filter(|_| highlight_this_line); | ||||
| @@ -653,11 +649,6 @@ impl<'a> Printer for InteractivePrinter<'a> { | ||||
|             writeln!(handle)?; | ||||
|         } | ||||
|  | ||||
|         if highlight_this_line && self.config.theme == "ansi" { | ||||
|             self.ansi_style.update("^[24m"); | ||||
|             write!(handle, "\x1B[24m")?; | ||||
|         } | ||||
|  | ||||
|         Ok(()) | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -122,22 +122,8 @@ impl<'a> SyntaxMapping<'a> { | ||||
|             .insert("*.hook", MappingTarget::MapTo("INI")) | ||||
|             .unwrap(); | ||||
|  | ||||
|         // Global git config files rooted in `$XDG_CONFIG_HOME/git/` or `$HOME/.config/git/` | ||||
|         // See e.g. https://git-scm.com/docs/git-config#FILES | ||||
|         if let Some(xdg_config_home) = | ||||
|             std::env::var_os("XDG_CONFIG_HOME").filter(|val| !val.is_empty()) | ||||
|         { | ||||
|             insert_git_config_global(&mut mapping, &xdg_config_home); | ||||
|         } | ||||
|         if let Some(default_config_home) = std::env::var_os("HOME") | ||||
|             .filter(|val| !val.is_empty()) | ||||
|             .map(|home| Path::new(&home).join(".config")) | ||||
|         { | ||||
|             insert_git_config_global(&mut mapping, &default_config_home); | ||||
|         } | ||||
|  | ||||
|         fn insert_git_config_global(mapping: &mut SyntaxMapping, config_home: impl AsRef<Path>) { | ||||
|             let git_config_path = config_home.as_ref().join("git"); | ||||
|         if let Some(xdg_config_home) = std::env::var_os("XDG_CONFIG_HOME") { | ||||
|             let git_config_path = Path::new(&xdg_config_home).join("git"); | ||||
|  | ||||
|             mapping | ||||
|                 .insert( | ||||
|   | ||||
							
								
								
									
										3
									
								
								tests/examples/git/.config/git/config
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								tests/examples/git/.config/git/config
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| [user] | ||||
|     email = foo@bar.net | ||||
|     name = foobar | ||||
							
								
								
									
										3
									
								
								tests/examples/git/.gitconfig
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								tests/examples/git/.gitconfig
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| [user] | ||||
|     email = foo@bar.net | ||||
|     name = foobar | ||||
| @@ -1117,9 +1117,7 @@ Single Line | ||||
| ──────────────────────────────────────────────────────────────────────────────── | ||||
| ", | ||||
|         ) | ||||
|         .stderr( | ||||
|             "\x1b[33m[bat warning]\x1b[0m: Style 'rule' is a subset of style 'grid', 'rule' will not be visible.\n", | ||||
|         ); | ||||
|         .stderr("\x1b[33m[bat warning]\x1b[0m: Style 'rule' is a subset of style 'grid', 'rule' will not be visible.\n"); | ||||
| } | ||||
|  | ||||
| #[cfg(target_os = "linux")] | ||||
| @@ -1292,25 +1290,6 @@ fn grid_for_file_without_newline() { | ||||
|         .stderr(""); | ||||
| } | ||||
|  | ||||
| // For ANSI theme, use underscore as a highlighter | ||||
| #[test] | ||||
| fn ansi_highlight_underline() { | ||||
|     bat() | ||||
|         .arg("--paging=never") | ||||
|         .arg("--color=never") | ||||
|         .arg("--terminal-width=80") | ||||
|         .arg("--wrap=never") | ||||
|         .arg("--decorations=always") | ||||
|         .arg("--theme=ansi") | ||||
|         .arg("--style=plain") | ||||
|         .arg("--highlight-line=1") | ||||
|         .write_stdin("Ansi Underscore Test\nAnother Line") | ||||
|         .assert() | ||||
|         .success() | ||||
|         .stdout("\x1B[4mAnsi Underscore Test\n\x1B[24mAnother Line") | ||||
|         .stderr(""); | ||||
| } | ||||
|  | ||||
| // Ensure that ANSI passthrough is emitted properly for both wrapping and non-wrapping printer. | ||||
| #[test] | ||||
| fn ansi_passthrough_emit() { | ||||
| @@ -1361,45 +1340,6 @@ fn ignored_suffix_arg() { | ||||
|         .stderr(""); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn all_global_git_config_locations_syntax_mapping_work() { | ||||
|     let fake_home = Path::new(EXAMPLES_DIR).join("git").canonicalize().unwrap(); | ||||
|     let expected = "\u{1b}[38;5;231m[\u{1b}[0m\u{1b}[38;5;149muser\u{1b}[0m\u{1b}[38;5;231m]\u{1b}[0m | ||||
| \u{1b}[38;5;231m    \u{1b}[0m\u{1b}[38;5;231memail\u{1b}[0m\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;203m=\u{1b}[0m\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;186mfoo@bar.net\u{1b}[0m | ||||
| \u{1b}[38;5;231m    \u{1b}[0m\u{1b}[38;5;231mname\u{1b}[0m\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;203m=\u{1b}[0m\u{1b}[38;5;231m \u{1b}[0m\u{1b}[38;5;186mfoobar\u{1b}[0m | ||||
| "; | ||||
|  | ||||
|     bat() | ||||
|         .env("XDG_CONFIG_HOME", fake_home.join(".config").as_os_str()) | ||||
|         .arg("-f") | ||||
|         .arg("-p") | ||||
|         .arg("git/.config/git/config") | ||||
|         .assert() | ||||
|         .success() | ||||
|         .stdout(expected) | ||||
|         .stderr(""); | ||||
|  | ||||
|     bat() | ||||
|         .env("HOME", fake_home.as_os_str()) | ||||
|         .arg("-f") | ||||
|         .arg("-p") | ||||
|         .arg("git/.config/git/config") | ||||
|         .assert() | ||||
|         .success() | ||||
|         .stdout(expected) | ||||
|         .stderr(""); | ||||
|  | ||||
|     bat() | ||||
|         .env("HOME", fake_home.as_os_str()) | ||||
|         .arg("-f") | ||||
|         .arg("-p") | ||||
|         .arg("git/.gitconfig") | ||||
|         .assert() | ||||
|         .success() | ||||
|         .stdout(expected) | ||||
|         .stderr(""); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn acknowledgements() { | ||||
|     bat() | ||||
|   | ||||
							
								
								
									
										60
									
								
								tests/syntax-tests/highlighted/JQ/sample.jq
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										60
									
								
								tests/syntax-tests/highlighted/JQ/sample.jq
									
									
									
									
										vendored
									
									
								
							| @@ -1,60 +0,0 @@ | ||||
| [38;2;249;38;114mimport[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116m../imported-file[0m[38;2;230;219;116m"[0m[38;2;248;248;242m [0m[38;2;248;248;242m;[0m | ||||
|  | ||||
| [38;2;117;113;94m#[0m[38;2;117;113;94m With Comments ![0m | ||||
| [38;2;249;38;114mdef[0m[38;2;248;248;242m [0m[38;2;166;226;46mweird[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m$a[0m[38;2;248;248;242m; [0m[3;38;2;253;151;31m$b[0m[38;2;248;248;242m; [0m[3;38;2;253;151;31m$c[0m[38;2;248;248;242m)[0m[38;2;248;248;242m:[0m | ||||
| [38;2;248;248;242m	[0m[38;2;248;248;242m[ [0m[38;2;255;255;255m$a[0m[38;2;248;248;242m, [0m[38;2;255;255;255m$b[0m[38;2;248;248;242m, [0m[38;2;255;255;255m$c[0m[38;2;248;248;242m ][0m[38;2;248;248;242m | [0m[38;2;102;217;239mtranspose[0m[38;2;248;248;242m | [0m[38;2;249;38;114mreduce[0m[38;2;248;248;242m .[0m[38;2;248;248;242m[][0m[38;2;248;248;242m[][0m[38;2;248;248;242m [0m[38;2;249;38;114mas[0m[38;2;248;248;242m [0m[38;2;255;255;255m$item[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m | ||||
| [38;2;248;248;242m		[0m[38;2;248;248;242m[][0m[38;2;248;248;242m;[0m | ||||
| [38;2;248;248;242m		. + [0m[38;2;255;255;255m$item[0m[38;2;248;248;242m.property[0m | ||||
| [38;2;248;248;242m	)[0m | ||||
| [38;2;248;248;242m;[0m | ||||
|  | ||||
| [38;2;248;248;242m. | weird [0m[38;2;248;248;242m(.a; .b; .c)[0m[38;2;248;248;242m |[0m | ||||
|  | ||||
| [38;2;248;248;242m([0m | ||||
|  | ||||
| [38;2;249;38;114mif[0m[38;2;248;248;242m [0m[38;2;248;248;242m(. | [0m[38;2;102;217;239mcontains[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116mnever[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m )[0m[38;2;248;248;242m [0m[38;2;249;38;114mthen[0m | ||||
| [38;2;248;248;242m	[0m[38;2;230;219;116m"[0m[38;2;230;219;116mWhy yes[0m[38;2;230;219;116m"[0m | ||||
| [38;2;249;38;114melse[0m | ||||
| [38;2;248;248;242m	[0m[38;2;190;132;255m12.23[0m | ||||
| [38;2;249;38;114mend[0m | ||||
|  | ||||
| [38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114mas[0m[38;2;248;248;242m [0m[38;2;255;255;255m$never[0m[38;2;248;248;242m |[0m | ||||
|  | ||||
| [38;2;248;248;242m{[0m | ||||
| [38;2;248;248;242m	[0m[38;2;166;226;46mhello[0m[38;2;248;248;242m,[0m | ||||
| [38;2;248;248;242m	[0m[38;2;166;226;46mwhy[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mbecause[0m[38;2;230;219;116m"[0m[38;2;248;248;242m,[0m | ||||
| [38;2;248;248;242m	[0m[38;2;166;226;46mhello[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242m( weird | [0m[38;2;102;217;239mascii_upcase[0m[38;2;248;248;242m )[0m[38;2;248;248;242m,[0m | ||||
| [38;2;248;248;242m	[0m[38;2;166;226;46mformat_eg[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242m( . | [0m[38;2;190;132;255m@json[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mMy json string [0m[38;2;190;132;255m\([0m[38;2;248;248;242m . | this | part | just | white | ascii_upcase | transpose[0m[38;2;190;132;255m)[0m[38;2;230;219;116m"[0m[38;2;248;248;242m )[0m[38;2;248;248;242m,[0m | ||||
| [38;2;248;248;242m	[0m[38;2;166;226;46mnever[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;255;255;255m$never[0m[38;2;248;248;242m,[0m | ||||
| [38;2;248;248;242m	[0m[38;2;230;219;116m"[0m[38;2;230;219;116mliteral_key[0m[38;2;230;219;116m"[0m[38;2;248;248;242m:[0m[38;2;248;248;242m literal_value[0m[38;2;248;248;242m,[0m | ||||
| [38;2;248;248;242m	[0m[38;2;230;219;116m"[0m[38;2;230;219;116mthis[0m[38;2;230;219;116m"[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;190;132;255m12.1e12[0m[38;2;248;248;242m,[0m | ||||
| [38;2;248;248;242m	[0m[38;2;230;219;116m"[0m[38;2;230;219;116mpart[0m[38;2;230;219;116m"[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116malmost[0m[38;2;230;219;116m"[0m | ||||
| [38;2;248;248;242m	[0m[38;2;230;219;116m"[0m[38;2;230;219;116mlike[0m[38;2;230;219;116m"[0m[38;2;248;248;242m: [0m[38;2;248;248;242m[[0m | ||||
| [38;2;248;248;242m		[0m[38;2;190;132;255m12[0m[38;2;248;248;242m,[0m | ||||
| [38;2;248;248;242m		[0m[38;2;190;132;255m2[0m | ||||
| [38;2;248;248;242m		[0m[38;2;230;219;116m"[0m[38;2;230;219;116mjson[0m[38;2;230;219;116m"[0m | ||||
| [38;2;248;248;242m		[0m[38;2;248;248;242m{[0m | ||||
| [38;2;248;248;242m			[0m[38;2;230;219;116m"[0m[38;2;230;219;116mquite[0m[38;2;230;219;116m"[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m | ||||
| [38;2;248;248;242m				[0m[38;2;166;226;46msimilar[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mbut not quite[0m[38;2;230;219;116m"[0m | ||||
| [38;2;248;248;242m			[0m[38;2;248;248;242m}[0m | ||||
| [38;2;248;248;242m		[0m[38;2;248;248;242m}[0m | ||||
| [38;2;248;248;242m	][0m[38;2;248;248;242m,[0m | ||||
| [38;2;248;248;242m}[0m[38;2;248;248;242m | [0m[38;2;248;248;242m([0m | ||||
| [38;2;248;248;242m	[0m | ||||
| [38;2;248;248;242m	[0m[38;2;117;113;94m#[0m[38;2;117;113;94m And with very basic brace matching[0m | ||||
| [38;2;248;248;242m	[0m | ||||
| [38;2;248;248;242m	[0m[38;2;117;113;94m#[0m[38;2;117;113;94m Invalid End[0m | ||||
| [38;2;248;248;242m	[0m[38;2;248;248;240m][0m[38;2;248;248;242m	[0m | ||||
| [38;2;248;248;242m	[0m | ||||
| [38;2;248;248;242m	[0m[38;2;117;113;94m#[0m[38;2;117;113;94m Other invalid ends[0m | ||||
| [38;2;248;248;242m	[0m[38;2;248;248;242m( [0m[38;2;248;248;242m[ [0m[38;2;248;248;240m}[0m[38;2;248;248;242m [0m[38;2;248;248;240m][0m[38;2;248;248;242m )[0m | ||||
|  | ||||
| [38;2;248;248;242m	[0m[38;2;117;113;94m#[0m[38;2;117;113;94m A "valid" sequence[0m | ||||
| [38;2;248;248;242m	[0m[38;2;248;248;242m( [0m[38;2;248;248;242m[  [0m[38;2;248;248;242m{ [0m[38;2;166;226;46mkey[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242m()[0m[38;2;248;248;242m [0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mother_key[0m[38;2;248;248;242m:[0m[38;2;248;248;242m( [0m[38;2;248;248;242m[ [0m[38;2;248;248;242m[][0m[38;2;248;248;242m  [0m[38;2;248;248;242m[[0m[38;2;248;248;242m[][0m[38;2;248;248;242m][0m[38;2;248;248;242m ][0m[38;2;248;248;242m  )[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mgaga[0m[38;2;248;248;242m }[0m[38;2;248;248;242m  ][0m[38;2;248;248;242m )[0m | ||||
|  | ||||
| [38;2;248;248;242m	[0m[38;2;117;113;94m#[0m[38;2;117;113;94m A "invalid" sequence[0m | ||||
| [38;2;248;248;242m	[0m[38;2;248;248;242m( [0m[38;2;248;248;242m[  [0m[38;2;248;248;242m{ [0m[38;2;166;226;46mkey[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242m()[0m[38;2;248;248;242m [0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mother_key[0m[38;2;248;248;242m:[0m[38;2;248;248;242m( [0m[38;2;248;248;242m[ [0m[38;2;248;248;242m[][0m[38;2;248;248;242m  [0m[38;2;248;248;242m[[0m[38;2;248;248;242m[][0m[38;2;248;248;242m ][0m[38;2;248;248;242m  [0m[38;2;248;248;240m)[0m[38;2;248;248;242m, gaga [0m[38;2;248;248;240m}[0m[38;2;248;248;242m  ] )[0m | ||||
|  | ||||
| [38;2;248;248;242m	[0m[38;2;230;219;116m"[0m[38;2;230;219;116mA string[0m[38;2;190;132;255m\[0m[38;2;190;132;255mn[0m[38;2;230;219;116m whith escaped characters [0m[38;2;190;132;255m\[0m[38;2;190;132;255m"[0m[38;2;230;219;116m because we can[0m[38;2;230;219;116m"[0m | ||||
| [38;2;248;248;242m)[0m | ||||
|  | ||||
							
								
								
									
										25
									
								
								tests/syntax-tests/source/JQ/LICENSE.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								tests/syntax-tests/source/JQ/LICENSE.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,25 +0,0 @@ | ||||
| The `sample.jq` file was taken from [SublimeJQ] under the following license: | ||||
|  | ||||
| [SublimeJQ]: https://github.com/zogwarg/SublimeJQ | ||||
|  | ||||
| MIT License | ||||
|  | ||||
| Copyright (c) 2017 Thomas Buick | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										60
									
								
								tests/syntax-tests/source/JQ/sample.jq
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										60
									
								
								tests/syntax-tests/source/JQ/sample.jq
									
									
									
									
										vendored
									
									
								
							| @@ -1,60 +0,0 @@ | ||||
| import "../imported-file" ; | ||||
|  | ||||
| # With Comments ! | ||||
| def weird($a; $b; $c): | ||||
| 	[ $a, $b, $c ] | transpose | reduce .[][] as $item ( | ||||
| 		[]; | ||||
| 		. + $item.property | ||||
| 	) | ||||
| ; | ||||
|  | ||||
| . | weird (.a; .b; .c) | | ||||
|  | ||||
| ( | ||||
|  | ||||
| if (. | contains("never") ) then | ||||
| 	"Why yes" | ||||
| else | ||||
| 	12.23 | ||||
| end | ||||
|  | ||||
| ) as $never | | ||||
|  | ||||
| { | ||||
| 	hello, | ||||
| 	why: "because", | ||||
| 	hello: ( weird | ascii_upcase ), | ||||
| 	format_eg: ( . | @json "My json string \( . | this | part | just | white | ascii_upcase | transpose)" ), | ||||
| 	never: $never, | ||||
| 	"literal_key": literal_value, | ||||
| 	"this": 12.1e12, | ||||
| 	"part": "almost" | ||||
| 	"like": [ | ||||
| 		12, | ||||
| 		2 | ||||
| 		"json" | ||||
| 		{ | ||||
| 			"quite": { | ||||
| 				similar: "but not quite" | ||||
| 			} | ||||
| 		} | ||||
| 	], | ||||
| } | ( | ||||
| 	 | ||||
| 	# And with very basic brace matching | ||||
| 	 | ||||
| 	# Invalid End | ||||
| 	]	 | ||||
| 	 | ||||
| 	# Other invalid ends | ||||
| 	( [ } ] ) | ||||
|  | ||||
| 	# A "valid" sequence | ||||
| 	( [  { key: () , other_key:( [ []  [[]] ]  ), gaga }  ] ) | ||||
|  | ||||
| 	# A "invalid" sequence | ||||
| 	( [  { key: () , other_key:( [ []  [[] ]  ), gaga }  ] ) | ||||
|  | ||||
| 	"A string\n whith escaped characters \" because we can" | ||||
| ) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user