mirror of
https://github.com/sharkdp/bat.git
synced 2025-02-22 12:58:26 +00:00
114 lines
3.0 KiB
Plaintext
114 lines
3.0 KiB
Plaintext
|
%YAML 1.2
|
||
|
---
|
||
|
# See http://www.sublimetext.com/docs/3/syntax.html
|
||
|
name: Separated Values
|
||
|
file_extensions:
|
||
|
- csv
|
||
|
scope: text.csv
|
||
|
variables:
|
||
|
field_separator_chars: ',;\t|'
|
||
|
field_separator: (?:[{{field_separator_chars}}])
|
||
|
record_separator: (?:$\n?)
|
||
|
contexts:
|
||
|
main:
|
||
|
- meta_include_prototype: false
|
||
|
- include: three_field_separators
|
||
|
- include: single_separator_type_on_line
|
||
|
- match: '^'
|
||
|
push: unknown-separated-main
|
||
|
|
||
|
three_field_separators:
|
||
|
- match: ^(?=(?:[^,]*,){3})
|
||
|
set: scope:text.csv.comma
|
||
|
- match: ^(?=(?:[^;]*;){3})
|
||
|
set: scope:text.csv.semi-colon
|
||
|
- match: ^(?=(?:[^\t]*\t){3})
|
||
|
set: scope:text.csv.tab
|
||
|
- match: ^(?=(?:[^|]*\|){3})
|
||
|
set: scope:text.csv.pipe
|
||
|
|
||
|
single_separator_type_on_line:
|
||
|
- match: ^(?=[^{{field_separator_chars}}]*,[^;\t|]*$)
|
||
|
set: scope:text.csv.comma
|
||
|
- match: ^(?=[^{{field_separator_chars}}]*;[^,\t|]*$)
|
||
|
set: scope:text.csv.semi-colon
|
||
|
- match: ^(?=[^{{field_separator_chars}}]*\t[^,;|]*$)
|
||
|
set: scope:text.csv.tab
|
||
|
- match: ^(?=[^{{field_separator_chars}}]*\|[^,;\t]*$)
|
||
|
set: scope:text.csv.pipe
|
||
|
|
||
|
unknown-separated-main:
|
||
|
- include: record_separator
|
||
|
- match: ''
|
||
|
push:
|
||
|
- field_or_record_separator
|
||
|
- field5
|
||
|
- field_or_record_separator
|
||
|
- field4
|
||
|
- field_or_record_separator
|
||
|
- field3
|
||
|
- field_or_record_separator
|
||
|
- field2
|
||
|
- field_or_record_separator
|
||
|
- field1
|
||
|
|
||
|
record_separator_pop:
|
||
|
- match: (?={{record_separator}})
|
||
|
pop: true
|
||
|
|
||
|
record_separator:
|
||
|
- meta_include_prototype: false
|
||
|
- match: '{{record_separator}}'
|
||
|
scope: punctuation.terminator.record.csv
|
||
|
|
||
|
field_or_record_separator:
|
||
|
- meta_include_prototype: false
|
||
|
- include: record_separator_pop
|
||
|
- match: '{{field_separator}}'
|
||
|
scope: punctuation.separator.sequence.csv
|
||
|
pop: true
|
||
|
|
||
|
field_contents:
|
||
|
- match: '"'
|
||
|
scope: punctuation.definition.string.begin.csv
|
||
|
push: double_quoted_string
|
||
|
|
||
|
- include: record_separator_pop
|
||
|
- match: (?={{field_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 variable.parameter
|
||
|
- 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
|
||
|
field5:
|
||
|
- match: ''
|
||
|
set:
|
||
|
- meta_content_scope: meta.field-5.csv string.unquoted
|
||
|
- include: field_contents
|