summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Peter <sharkdp@users.noreply.github.com>2021-05-12 11:34:35 +0200
committerGitHub <noreply@github.com>2021-05-12 11:34:35 +0200
commit5db3c930576a8aa4705843dd512303059fc98771 (patch)
tree9057d2c5ea11263e4bedaa2b0053fe5ab95c69b6
parentb3ab8439547b6204167cb05ac7360160b54a1568 (diff)
parentb16cacc758fb60777072ff8f9b9ae8ba97e4f5ae (diff)
Merge branch 'master' into syslog
-rw-r--r--.github/dependabot.yml18
-rw-r--r--.github/workflows/CICD.yml7
-rw-r--r--.gitmodules3
-rw-r--r--CHANGELOG.md2
-rw-r--r--Cargo.lock4
-rw-r--r--Cargo.toml2
-rw-r--r--assets/patches/Monokai-Extended.tmTheme.patch2
m---------assets/syntaxes/02_Extra/CSV0
-rw-r--r--assets/syntaxes/02_Extra/CSV.sublime-syntax110
m---------assets/syntaxes/02_Extra/Julia0
m---------assets/syntaxes/02_Extra/SCSS_Sass0
-rw-r--r--assets/syntaxes/02_Extra/syntax_test_csv.csv60
-rw-r--r--assets/syntaxes/02_Extra/syntax_test_tsv.tsv60
-rw-r--r--src/bin/bat/main.rs1
-rw-r--r--tests/syntax-tests/highlighted/CSV/comma_in_quotes.csv14
15 files changed, 230 insertions, 53 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 00000000..b4987cae
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,18 @@
+version: 2
+updates:
+- package-ecosystem: cargo
+ directory: "/"
+ schedule:
+ interval: monthly
+ time: "04:00"
+ timezone: Europe/Berlin
+ ignore:
+ - dependency-name: git2
+ versions:
+ - 0.13.17
+- package-ecosystem: gitsubmodule
+ directory: "/"
+ schedule:
+ interval: monthly
+ time: "04:00"
+ timezone: Europe/Berlin
diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml
index 2116fd85..11119192 100644
--- a/.github/workflows/CICD.yml
+++ b/.github/workflows/CICD.yml
@@ -79,6 +79,13 @@ jobs:
run: bat --list-languages
- name: List of themes
run: bat --list-themes
+ - name: Check documentation
+ env:
+ RUSTDOCFLAGS: -D warnings
+ uses: actions-rs/cargo@v1
+ with:
+ command: doc
+ args: --no-deps --document-private-items --all-features
build:
name: ${{ matrix.job.os }} (${{ matrix.job.target }})
diff --git a/.gitmodules b/.gitmodules
index 5cafb38e..e6113939 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -61,9 +61,6 @@
[submodule "assets/syntaxes/Puppet"]
path = assets/syntaxes/02_Extra/Puppet
url = https://github.com/russCloak/SublimePuppet
-[submodule "assets/syntaxes/CSV"]
- path = assets/syntaxes/02_Extra/CSV
- url = https://github.com/wadetb/Sublime-Text-Advanced-CSV
[submodule "assets/themes/onehalf"]
path = assets/themes/onehalf
url = https://github.com/sonph/onehalf
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 75e73ed8..617f19b6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,11 +8,13 @@
## Other
- `Input::ordinary_file` and `Input::with_name` now accept `Path` rather than `OsStr` see #1571 (@matklad)
+- The `LESS` environment variable is now included in `bat --diagnostic`, see #1589 (@Enselic)
- Increased min. required Rust version to 1.45
## Syntaxes
- Improved the Syslog syntax highlighting, see #1606 (@keith-hall)
+- Replaced "Advanced CSV" with a custom CSV syntax definition written especially for `bat`; see #1574 (@keith-hall)
## New themes
diff --git a/Cargo.lock b/Cargo.lock
index a4949d67..893f68a6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -226,9 +226,9 @@ dependencies = [
[[package]]
name = "console"
-version = "0.14.0"
+version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cc80946b3480f421c2f17ed1cb841753a371c7c5104f51d507e13f532c856aa"
+checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45"
dependencies = [
"encode_unicode",
"lazy_static",
diff --git a/Cargo.toml b/Cargo.toml
index f0eb26c0..f5c3b358 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -36,7 +36,7 @@ regex-fancy = ["syntect/regex-fancy"] # Use the rust-only "fancy-regex" engine
atty = { version = "0.2.14", optional = true }
ansi_term = "^0.12.1"
ansi_colours = "^1.0"
-console = "0.14.0"
+console = "0.14.1"
lazy_static = { version = "1.4", optional = true }
wild = { version = "2.0", optional = true }
content_inspector = "0.2.4"
diff --git a/assets/patches/Monokai-Extended.tmTheme.patch b/assets/patches/Monokai-Extended.tmTheme.patch
index c237f53d..106b584d 100644
--- a/assets/patches/Monokai-Extended.tmTheme.patch
+++ b/assets/patches/Monokai-Extended.tmTheme.patch
@@ -7,7 +7,7 @@ index 9c2aa3e..180cbbf 100644
<string>JSON String</string>
<key>scope</key>
- <string>meta.structure.dictionary.json string.quoted.double.json</string>
-+ <string>meta.mapping.key.json string.quoted.double.json</string>
++ <string>meta.mapping.key.json string.quoted.double.json, punctuation.separator.sequence.csv</string>
<key>settings</key>
<dict>
<key>foreground</key>
diff --git a/assets/syntaxes/02_Extra/CSV b/assets/syntaxes/02_Extra/CSV
deleted file mode 160000
-Subproject 4786d037a761bc45e516f6b0624a839919ec6d0
diff --git a/assets/syntaxes/02_Extra/CSV.sublime-syntax b/assets/syntaxes/02_Extra/CSV.sublime-syntax
index 1bbc5b97..cca7cd2c 100644
--- a/assets/syntaxes/02_Extra/CSV.sublime-syntax
+++ b/assets/syntaxes/02_Extra/CSV.sublime-syntax
@@ -1,46 +1,78 @@
%YAML 1.2
---
-# http://www.sublimetext.com/docs/3/syntax.html
-name: Advanced CSV
+# See http://www.sublimetext.com/docs/3/syntax.html
+name: Comma Separated Values
file_extensions:
- csv
- tsv
-scope: text.advanced_csv
+scope: text.csv
+variables:
+ field_separator: (?:[,;\t])
+ record_separator: (?:$\n?)
contexts:
- main:
- - match: (\")
- captures:
- 1: string.quoted.double.advanced_csv
- push:
- - meta_scope: meta.quoted.advanced_csv
- - match: (\")
- captures:
- 1: string.quoted.double.advanced_csv
- pop: true
- - include: main
- - match: '(\[([+-]?\d*)(\:)?([+-]?\d*)(\,)?([+-]?\d*)(\:)?([+-]?\d*)\])?\s*([<>v^])?\s*(=)'
- captures:
- 1: keyword.operator.advanced_csv
- 2: constant.numeric.formula.advanced_csv
- 4: constant.numeric.formula.advanced_csv
- 6: constant.numeric.formula.advanced_csv
- 8: constant.numeric.formula.advanced_csv
- 9: keyword.operator.advanced_csv
- 10: keyword.operator.advanced_csv
+ prototype:
+ - match: (?={{record_separator}})
+ pop: true
+ fields:
+ - match: ''
push:
- - meta_scope: meta.range.advanced_csv
- - match: (?=(\")|$)
- pop: true
- - include: scope:source.python
- - match: '(?<=^|,|\s|\")([0-9.eE+-]+)(?=$|,|\s|\")'
- scope: meta.number.advanced_csv
- captures:
- 1: constant.numeric.advanced_csv
- - match: '(?<=^|,|\s|\")([^, \t\"]+)(?=$|,|\s|\")'
- scope: meta.nonnumber.advanced_csv
- captures:
- 1: storage.type.advanced_csv
- - match: (\,)
- scope: meta.delimiter.advanced_csv
- captures:
- 1: keyword.operator.advanced_csv
+ - field_or_record_separator
+ - field4
+ - field_or_record_separator
+ - field3
+ - field_or_record_separator
+ - field2
+ - field_or_record_separator
+ - field1
+ main:
+ - meta_include_prototype: false
+ - match: '^'
+ set: fields
+
+ field_or_record_separator:
+ - meta_include_prototype: false
+ - match: '{{record_separator}}'
+ scope: punctuation.terminator.record.csv
+ pop: true
+ - match: '{{field_separator}}'
+ scope: punctuation.separator.sequence.csv
+ pop: true
+
+ field_contents:
+ - match: '"'
+ scope: punctuation.definition.string.begin.csv
+ push: double_quoted_string
+
+ - match: (?={{field_separator}}|{{record_separator}})
+ pop: true
+
+ double_quoted_string:
+ - meta_include_prototype: false
+ - meta_scope: string.quoted.double.csv
+ - match: '""'
+ scope: constant.character.escape.csv
+ - match: '"'
+ scope: punctuation.definition.string.end.csv
+ pop: true
+
+ field1:
+ - match: ''
+ set:
+ - meta_content_scope: meta.field-1.csv support.type
+ - include: field_contents
+ field2:
+ - match: ''
+ set:
+ - meta_content_scope: meta.field-2.csv support.function
+ - include: field_contents
+ field3:
+ - match: ''
+ set:
+ - meta_content_scope: meta.field-3.csv constant.numeric
+ - include: field_contents
+ field4:
+ - match: ''
+ set:
+ - meta_content_scope: meta.field-4.csv keyword.operator
+ - include: field_contents
+
diff --git a/assets/syntaxes/02_Extra/Julia b/assets/syntaxes/02_Extra/Julia
-Subproject 45a1b6fe6cc37a2b614ae199d85c702b8711e22
+Subproject cc13e7d4ef74a6556af09d8858d2cc6a47ef545
diff --git a/assets/syntaxes/02_Extra/SCSS_Sass b/assets/syntaxes/02_Extra/SCSS_Sass
-Subproject 4868322030c3644d6b8cfff68c85849789d9bdb
+Subproject 63819a1ab6b2075360933b2cfe41b416de0e3c2
diff --git a/assets/syntaxes/02_Extra/syntax_test_csv.csv b/assets/syntaxes/02_Extra/syntax_test_csv.csv
new file mode 100644
index 00000000..c997b2bd
--- /dev/null
+++ b/assets/syntaxes/02_Extra/syntax_test_csv.csv
@@ -0,0 +1,60 @@
+# SYNTAX TEST "CSV.sublime-syntax"
+Forename,Surname,House No.,Street,City,Postcode
+#^^^^^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^^ meta.field-2
+# ^ punctuation.separator.sequence
+# ^^^^^^^^^ meta.field-3
+# ^ punctuation.separator.sequence
+# ^^^^^^ meta.field-4
+# ^ punctuation.separator.sequence
+# ^^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^^^ meta.field-2
+John,Doe,87,Logon Road,Citiville,TU43 6GH
+#^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^ meta.field-2
+# ^ punctuation.separator.sequence
+# ^^ meta.field-3
+# ^ punctuation.separator.sequence
+# ^^^^^^^^^^ meta.field-4
+# ^ punctuation.separator.sequence
+# ^^^^^^^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^^^ meta.field-2
+Jane,Doe,22,"""Fun"" Street","The City, County",FA90 1XA
+#^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^ meta.field-2
+# ^ punctuation.separator.sequence
+# ^^ meta.field-3
+# ^ punctuation.separator.sequence
+# ^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
+# ^^ constant.character.escape
+# ^^ constant.character.escape
+# ^ punctuation.separator.sequence
+# ^ meta.field-1 string.quoted.double punctuation.definition.string.begin
+# ^^^^^^^^^^^^^^^^^ meta.field-1 string.quoted.double
+# ^ meta.field-1 string.quoted.double punctuation.definition.string.end
+# ^ punctuation.separator.sequence
+# ^^^^^^^^ meta.field-2
+Fred,Bloggs,"19","Street
+#^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^ meta.field-2
+# ^ punctuation.separator.sequence
+# ^^^ meta.field-3 string.quoted.double
+# ^ punctuation.separator.sequence
+# ^ meta.field-4 punctuation.definition.string.begin
+# ^^^^^^^^ meta.field-4 string.quoted.double
+Spanning Multiple ""
+#^^^^^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
+# ^^ constant.character.escape
+Lines",Citee,P0stc0d3
+#^^^^^ meta.field-4 string.quoted.double
+# ^ meta.field-4 punctuation.definition.string.end
+# ^ punctuation.separator.sequence
+# ^^^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^^^ meta.field-2
diff --git a/assets/syntaxes/02_Extra/syntax_test_tsv.tsv b/assets/syntaxes/02_Extra/syntax_test_tsv.tsv
new file mode 100644
index 00000000..8c2645b8
--- /dev/null
+++ b/assets/syntaxes/02_Extra/syntax_test_tsv.tsv
@@ -0,0 +1,60 @@
+# SYNTAX TEST "CSV.sublime-syntax"
+Forename Surname House No. Street City Postcode
+#^^^^^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^^ meta.field-2
+# ^ punctuation.separator.sequence
+# ^^^^^^^^^ meta.field-3
+# ^ punctuation.separator.sequence
+# ^^^^^^ meta.field-4
+# ^ punctuation.separator.sequence
+# ^^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^^^ meta.field-2
+John Doe 87 Logon Road Citiville TU43 6GH
+#^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^ meta.field-2
+# ^ punctuation.separator.sequence
+# ^^ meta.field-3
+# ^ punctuation.separator.sequence
+# ^^^^^^^^^^ meta.field-4
+# ^ punctuation.separator.sequence
+# ^^^^^^^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^^^ meta.field-2
+Jane Doe 22 """Fun"" Street" "The City County" FA90 1XA
+#^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^ meta.field-2
+# ^ punctuation.separator.sequence
+# ^^ meta.field-3
+# ^ punctuation.separator.sequence
+# ^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
+# ^^ constant.character.escape
+# ^^ constant.character.escape
+# ^ punctuation.separator.sequence
+# ^ meta.field-1 string.quoted.double punctuation.definition.string.begin
+# ^^^^^^^^^^^^^^^^^ meta.field-1 string.quoted.double
+# ^ meta.field-1 string.quoted.double punctuation.definition.string.end
+# ^ punctuation.separator.sequence
+# ^^^^^^^^ meta.field-2
+Fred Bloggs "19" "Street
+#^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^ meta.field-2
+# ^ punctuation.separator.sequence
+# ^^^ meta.field-3 string.quoted.double
+# ^ punctuation.separator.sequence
+# ^ meta.field-4 punctuation.definition.string.begin
+# ^^^^^^^^ meta.field-4 string.quoted.double
+Spanning Multiple ""
+#^^^^^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
+# ^^ constant.character.escape
+Lines" Citee P0stc0d3
+#^^^^^ meta.field-4 string.quoted.double
+# ^ meta.field-4 punctuation.definition.string.end
+# ^ punctuation.separator.sequence
+# ^^^^^ meta.field-1
+# ^ punctuation.separator.sequence
+# ^^^^^^^^ meta.field-2
diff --git a/src/bin/bat/main.rs b/src/bin/bat/main.rs
index eb047809..dadcc673 100644
--- a/src/bin/bat/main.rs
+++ b/src/bin/bat/main.rs
@@ -238,6 +238,7 @@ fn run() -> Result<bool> {
.info(EnvironmentVariables::list(&[
"SHELL",
"PAGER",
+ "LESS",
"BAT_PAGER",
"BAT_CACHE_PATH",
"BAT_CONFIG_PATH",
diff --git a/tests/syntax-tests/highlighted/CSV/comma_in_quotes.csv b/tests/syntax-tests/highlighted/CSV/comma_in_quotes.csv
index 2ad5b914..9bd0da1a 100644
--- a/tests/syntax-tests/highlighted/CSV/comma_in_quotes.csv
+++ b/tests/syntax-tests/highlighted/CSV/comma_in_quotes.csv
@@ -1,7 +1,7 @@
-first,last,address,city,zip
-John,Doe,120 any st.,"Anytown, WW",08123
-a,b
-1,"ha 
-""ha"" 
-ha",120 any st.,"Anytown, WW",08123
-3,4,120 any st.,"Anytown, WW",08123
+first,last,address,city,zip
+John,Doe,120 any st.,"Anytown, WW",08123
+a,b
+1,"ha 
+""ha"" 
+ha",120 any st.,"Anytown, WW",08123
+3,4,120 any st.,"Anytown, WW",08123