mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 01:16:18 +04:00
Merge d15fab75ea
into b8313da5a8
This commit is contained in:
commit
d6a75bd14c
@ -2481,15 +2481,17 @@ fn next(&mut self) -> Option<Self::Item> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Once a highlighting pattern is found for the current node, skip over
|
// Use the last capture found for the current node, skipping over any
|
||||||
// any later highlighting patterns that also match this node. Captures
|
// highlight patterns that also match this node. Captures
|
||||||
// for a given node are ordered by pattern index, so these subsequent
|
// for a given node are ordered by pattern index, so these subsequent
|
||||||
// captures are guaranteed to be for highlighting, not injections or
|
// captures are guaranteed to be for highlighting, not injections or
|
||||||
// local variables.
|
// local variables.
|
||||||
while let Some((next_match, next_capture_index)) = captures.peek() {
|
while let Some((next_match, next_capture_index)) = captures.peek() {
|
||||||
let next_capture = next_match.captures[*next_capture_index];
|
let next_capture = next_match.captures[*next_capture_index];
|
||||||
if next_capture.node == capture.node {
|
if next_capture.node == capture.node {
|
||||||
captures.next();
|
match_.remove();
|
||||||
|
capture = next_capture;
|
||||||
|
match_ = captures.next().unwrap().0;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1172,7 +1172,7 @@ indent = { tab-width = 4, unit = " " }
|
|||||||
|
|
||||||
[[grammar]]
|
[[grammar]]
|
||||||
name = "julia"
|
name = "julia"
|
||||||
source = { git = "https://github.com/tree-sitter/tree-sitter-julia", rev = "8fb38abff74652c4faddbf04d2d5bbbc6b4bae25" }
|
source = { git = "https://github.com/tree-sitter/tree-sitter-julia", rev = "e84f10db8eeb8b9807786bfc658808edaa1b4fa2" }
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "java"
|
name = "java"
|
||||||
@ -1688,7 +1688,7 @@ language-servers = [ "docker-langserver" ]
|
|||||||
|
|
||||||
[[grammar]]
|
[[grammar]]
|
||||||
name = "dockerfile"
|
name = "dockerfile"
|
||||||
source = { git = "https://github.com/camdencheek/tree-sitter-dockerfile", rev = "8ee3a0f7587b2bd8c45c8cb7d28bd414604aec62" }
|
source = { git = "https://github.com/camdencheek/tree-sitter-dockerfile", rev = "868e44ce378deb68aac902a9db68ff82d2299dd0" }
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "docker-compose"
|
name = "docker-compose"
|
||||||
@ -1948,7 +1948,7 @@ indent = { tab-width = 4, unit = " " }
|
|||||||
|
|
||||||
[[grammar]]
|
[[grammar]]
|
||||||
name = "ron"
|
name = "ron"
|
||||||
source = { git = "https://github.com/zee-editor/tree-sitter-ron", rev = "7762d709a0f7c1f9e269d0125a2e8a7a69006146" }
|
source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-ron", rev = "78938553b93075e638035f624973083451b29055" }
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "robot"
|
name = "robot"
|
||||||
@ -2439,7 +2439,7 @@ formatter = { command = "cue", args = ["fmt", "-"] }
|
|||||||
|
|
||||||
[[grammar]]
|
[[grammar]]
|
||||||
name = "cue"
|
name = "cue"
|
||||||
source = { git = "https://github.com/eonpatapon/tree-sitter-cue", rev = "61843e3beebf19417e4fede4e8be4df1084317ad" }
|
source = { git = "https://github.com/eonpatapon/tree-sitter-cue", rev = "8a5f273bfa281c66354da562f2307c2d394b6c81" }
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "slint"
|
name = "slint"
|
||||||
|
@ -109,14 +109,15 @@
|
|||||||
(number) @constant.numeric
|
(number) @constant.numeric
|
||||||
(string) @string
|
(string) @string
|
||||||
|
|
||||||
(func_call name: (identifier) @function)
|
|
||||||
(func_def name: (identifier) @function)
|
|
||||||
|
|
||||||
(field_ref (_) @variable)
|
|
||||||
[
|
[
|
||||||
(identifier)
|
(identifier)
|
||||||
(field_ref)
|
(field_ref)
|
||||||
] @variable
|
] @variable
|
||||||
|
|
||||||
|
(func_call name: (identifier) @function)
|
||||||
|
(func_def name: (identifier) @function)
|
||||||
|
|
||||||
|
(field_ref (_) @variable)
|
||||||
|
|
||||||
(ns_qualified_name "::" @operator)
|
(ns_qualified_name "::" @operator)
|
||||||
(ns_qualified_name (namespace) @namespace)
|
(ns_qualified_name (namespace) @namespace)
|
||||||
|
@ -12,7 +12,10 @@
|
|||||||
|
|
||||||
(command_name) @function
|
(command_name) @function
|
||||||
|
|
||||||
(variable_name) @variable.other.member
|
(variable_name) @variable
|
||||||
|
|
||||||
|
((variable_name) @constant
|
||||||
|
(#match? @constant "^[A-Z][A-Z_0-9]*$"))
|
||||||
|
|
||||||
[
|
[
|
||||||
"if"
|
"if"
|
||||||
@ -48,6 +51,9 @@
|
|||||||
|
|
||||||
(comment) @comment
|
(comment) @comment
|
||||||
|
|
||||||
|
((word) @constant.builtin.boolean
|
||||||
|
(#any-of? @constant.builtin.boolean "true" "false"))
|
||||||
|
|
||||||
(function_definition name: (word) @function)
|
(function_definition name: (word) @function)
|
||||||
|
|
||||||
(file_descriptor) @constant.numeric.integer
|
(file_descriptor) @constant.numeric.integer
|
||||||
@ -56,7 +62,7 @@
|
|||||||
(command_substitution)
|
(command_substitution)
|
||||||
(process_substitution)
|
(process_substitution)
|
||||||
(expansion)
|
(expansion)
|
||||||
]@embedded
|
] @embedded
|
||||||
|
|
||||||
[
|
[
|
||||||
"$"
|
"$"
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
|
||||||
|
(identifier) @variable
|
||||||
|
|
||||||
|
((identifier) @constant
|
||||||
|
(#match? @constant "^[A-Z][A-Z\\d_]*$"))
|
||||||
|
|
||||||
"sizeof" @keyword
|
"sizeof" @keyword
|
||||||
|
|
||||||
[
|
[
|
||||||
@ -109,6 +115,12 @@
|
|||||||
(char_literal) @constant.character
|
(char_literal) @constant.character
|
||||||
(escape_sequence) @constant.character.escape
|
(escape_sequence) @constant.character.escape
|
||||||
|
|
||||||
|
(field_identifier) @variable.other.member
|
||||||
|
(statement_identifier) @label
|
||||||
|
(type_identifier) @type
|
||||||
|
(primitive_type) @type.builtin
|
||||||
|
(sized_type_specifier) @type.builtin
|
||||||
|
|
||||||
(call_expression
|
(call_expression
|
||||||
function: (identifier) @function)
|
function: (identifier) @function)
|
||||||
(call_expression
|
(call_expression
|
||||||
@ -128,15 +140,4 @@
|
|||||||
(attribute
|
(attribute
|
||||||
name: (identifier) @attribute)
|
name: (identifier) @attribute)
|
||||||
|
|
||||||
(field_identifier) @variable.other.member
|
|
||||||
(statement_identifier) @label
|
|
||||||
(type_identifier) @type
|
|
||||||
(primitive_type) @type.builtin
|
|
||||||
(sized_type_specifier) @type.builtin
|
|
||||||
|
|
||||||
((identifier) @constant
|
|
||||||
(#match? @constant "^[A-Z][A-Z\\d_]*$"))
|
|
||||||
|
|
||||||
(identifier) @variable
|
|
||||||
|
|
||||||
(comment) @comment
|
(comment) @comment
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
; Preproc
|
; Preproc
|
||||||
|
|
||||||
(unique_id) @keyword.directive
|
[
|
||||||
(top_level_annotation_body) @keyword.directive
|
(unique_id)
|
||||||
|
(top_level_annotation_body)
|
||||||
|
] @keyword.directive
|
||||||
|
|
||||||
; Includes
|
; Includes
|
||||||
|
|
||||||
@ -9,6 +11,7 @@
|
|||||||
"import"
|
"import"
|
||||||
"$import"
|
"$import"
|
||||||
"embed"
|
"embed"
|
||||||
|
"using"
|
||||||
] @keyword.control.import
|
] @keyword.control.import
|
||||||
|
|
||||||
(import_path) @string
|
(import_path) @string
|
||||||
@ -84,10 +87,10 @@
|
|||||||
"union"
|
"union"
|
||||||
] @keyword.storage.type
|
] @keyword.storage.type
|
||||||
|
|
||||||
|
"extends" @keyword
|
||||||
|
|
||||||
[
|
[
|
||||||
"extends"
|
|
||||||
"namespace"
|
"namespace"
|
||||||
"using"
|
|
||||||
(annotation_target)
|
(annotation_target)
|
||||||
] @special
|
] @special
|
||||||
|
|
||||||
|
@ -22,16 +22,10 @@
|
|||||||
"in"
|
"in"
|
||||||
] @keyword
|
] @keyword
|
||||||
|
|
||||||
; Function calls
|
|
||||||
|
|
||||||
(call_expression
|
|
||||||
function: (identifier) @function)
|
|
||||||
|
|
||||||
(member_call_expression
|
|
||||||
function: (identifier) @function)
|
|
||||||
|
|
||||||
; Identifiers
|
; Identifiers
|
||||||
|
|
||||||
|
(identifier) @variable.other.member
|
||||||
|
|
||||||
(select_expression
|
(select_expression
|
||||||
operand: (identifier) @type)
|
operand: (identifier) @type)
|
||||||
|
|
||||||
@ -39,7 +33,13 @@
|
|||||||
operand: (select_expression
|
operand: (select_expression
|
||||||
member: (identifier) @type))
|
member: (identifier) @type))
|
||||||
|
|
||||||
(identifier) @variable.other.member
|
; Function calls
|
||||||
|
|
||||||
|
(call_expression
|
||||||
|
function: (identifier) @function)
|
||||||
|
|
||||||
|
(member_call_expression
|
||||||
|
function: (identifier) @function)
|
||||||
|
|
||||||
; Literals
|
; Literals
|
||||||
|
|
||||||
|
@ -10,6 +10,14 @@
|
|||||||
|
|
||||||
(comment) @comment
|
(comment) @comment
|
||||||
|
|
||||||
|
;; other symbols
|
||||||
|
(sym_lit) @variable
|
||||||
|
|
||||||
|
;; other calls
|
||||||
|
(list_lit
|
||||||
|
.
|
||||||
|
(sym_lit) @function)
|
||||||
|
|
||||||
;; metadata experiment
|
;; metadata experiment
|
||||||
(meta_lit
|
(meta_lit
|
||||||
marker: "^" @punctuation)
|
marker: "^" @punctuation)
|
||||||
@ -61,20 +69,12 @@
|
|||||||
((sym_lit) @operator
|
((sym_lit) @operator
|
||||||
(#match? @operator "^%"))
|
(#match? @operator "^%"))
|
||||||
|
|
||||||
;; other calls
|
|
||||||
(list_lit
|
|
||||||
.
|
|
||||||
(sym_lit) @function)
|
|
||||||
|
|
||||||
;; interop-ish
|
;; interop-ish
|
||||||
(list_lit
|
(list_lit
|
||||||
.
|
.
|
||||||
(sym_lit) @function.method
|
(sym_lit) @function.method
|
||||||
(#match? @function.method "^\\."))
|
(#match? @function.method "^\\."))
|
||||||
|
|
||||||
;; other symbols
|
|
||||||
(sym_lit) @variable
|
|
||||||
|
|
||||||
;; quote
|
;; quote
|
||||||
(quoting_lit) @constant.character.escape
|
(quoting_lit) @constant.character.escape
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
; inherits: c
|
||||||
|
|
||||||
; Functions
|
; Functions
|
||||||
|
|
||||||
; These casts are parsed as function calls, but are not.
|
; These casts are parsed as function calls, but are not.
|
||||||
@ -132,5 +134,3 @@
|
|||||||
; Strings
|
; Strings
|
||||||
|
|
||||||
(raw_string_literal) @string
|
(raw_string_literal) @string
|
||||||
|
|
||||||
; inherits: c
|
|
||||||
|
@ -1,12 +1,46 @@
|
|||||||
(package_clause "package" @keyword.control.import)
|
; Includes
|
||||||
|
[
|
||||||
|
"package"
|
||||||
|
"import"
|
||||||
|
] @keyword.control.import
|
||||||
|
|
||||||
(package_identifier) @variable
|
; Namespaces
|
||||||
|
(package_identifier) @namespace
|
||||||
|
|
||||||
(import_declaration "import" @keyword.control.import)
|
(import_spec
|
||||||
|
[
|
||||||
|
"."
|
||||||
|
"_"
|
||||||
|
] @punctuation.special)
|
||||||
|
|
||||||
[
|
[
|
||||||
"!"
|
(attr_path)
|
||||||
|
(package_path)
|
||||||
|
] @string.special.url ; In attributes
|
||||||
|
|
||||||
|
; Attributes
|
||||||
|
(attribute) @attribute
|
||||||
|
|
||||||
|
; Conditionals
|
||||||
|
"if" @keyword.control.conditional
|
||||||
|
|
||||||
|
; Repeats
|
||||||
|
"for" @keyword.control.repeat
|
||||||
|
|
||||||
|
(for_clause
|
||||||
|
"_" @punctuation.special)
|
||||||
|
|
||||||
|
; Keywords
|
||||||
|
"let" @keyword
|
||||||
|
|
||||||
|
"in" @keyword.operator
|
||||||
|
|
||||||
|
; Operators
|
||||||
|
[
|
||||||
|
"+"
|
||||||
|
"-"
|
||||||
"*"
|
"*"
|
||||||
|
"/"
|
||||||
"|"
|
"|"
|
||||||
"&"
|
"&"
|
||||||
"||"
|
"||"
|
||||||
@ -19,92 +53,103 @@
|
|||||||
">="
|
">="
|
||||||
"=~"
|
"=~"
|
||||||
"!~"
|
"!~"
|
||||||
"+"
|
"!"
|
||||||
"-"
|
"="
|
||||||
"*"
|
|
||||||
"/"
|
|
||||||
] @operator
|
] @operator
|
||||||
|
|
||||||
(unary_expression "*" @operator.default)
|
; Fields & Properties
|
||||||
|
(field
|
||||||
|
(label
|
||||||
|
(identifier) @variable.other.member))
|
||||||
|
|
||||||
(unary_expression "=~" @operator.regexp)
|
(selector_expression
|
||||||
|
(_)
|
||||||
|
(identifier) @variable.other.member)
|
||||||
|
|
||||||
(unary_expression "!~" @operator.regexp)
|
; Functions
|
||||||
|
(call_expression
|
||||||
|
function: (identifier) @function)
|
||||||
|
|
||||||
(binary_expression _ "&" @operator.unify _)
|
(call_expression
|
||||||
|
function: (selector_expression
|
||||||
|
(_)
|
||||||
|
(identifier) @function))
|
||||||
|
|
||||||
(binary_expression _ "|" @operator.disjunct _)
|
(call_expression
|
||||||
|
function: (builtin_function) @function)
|
||||||
|
|
||||||
(builtin) @function.builtin
|
(builtin_function) @function.builtin
|
||||||
|
|
||||||
(qualified_identifier) @function.builtin
|
; Variables
|
||||||
|
(identifier) @variable
|
||||||
|
|
||||||
(let_clause "let" @keyword.storage.type)
|
; Types
|
||||||
|
(primitive_type) @type.builtin
|
||||||
|
|
||||||
(for_clause "for" @keyword.control.repeat)
|
((identifier) @type
|
||||||
(for_clause "in" @keyword.control.repeat)
|
(#match? @type "^_?#"))
|
||||||
|
|
||||||
(guard_clause "if" @keyword.control.conditional)
|
|
||||||
|
|
||||||
(comment) @comment
|
|
||||||
|
|
||||||
[
|
[
|
||||||
(string_type)
|
(slice_type)
|
||||||
(simple_string_lit)
|
(pointer_type)
|
||||||
(multiline_string_lit)
|
] @type ; In attributes
|
||||||
(bytes_type)
|
|
||||||
(simple_bytes_lit)
|
|
||||||
(multiline_bytes_lit)
|
|
||||||
] @string
|
|
||||||
|
|
||||||
[
|
|
||||||
(number_type)
|
|
||||||
(int_lit)
|
|
||||||
(int_type)
|
|
||||||
(uint_type)
|
|
||||||
] @constant.numeric.integer
|
|
||||||
|
|
||||||
[
|
|
||||||
(float_lit)
|
|
||||||
(float_type)
|
|
||||||
] @constant.numeric.float
|
|
||||||
|
|
||||||
[
|
|
||||||
(bool_type)
|
|
||||||
(true)
|
|
||||||
(false)
|
|
||||||
] @constant.builtin.boolean
|
|
||||||
|
|
||||||
(null) @constant.builtin
|
|
||||||
|
|
||||||
(ellipsis) @punctuation.bracket
|
|
||||||
|
|
||||||
|
; Punctuation
|
||||||
[
|
[
|
||||||
","
|
","
|
||||||
":"
|
":"
|
||||||
] @punctuation.delimiter
|
] @punctuation.delimiter
|
||||||
|
|
||||||
[
|
[
|
||||||
"("
|
|
||||||
")"
|
|
||||||
"["
|
|
||||||
"]"
|
|
||||||
"{"
|
"{"
|
||||||
"}"
|
"}"
|
||||||
|
"["
|
||||||
|
"]"
|
||||||
|
"("
|
||||||
|
")"
|
||||||
|
"<"
|
||||||
|
">"
|
||||||
] @punctuation.bracket
|
] @punctuation.bracket
|
||||||
|
|
||||||
(interpolation "\\(" @punctuation.bracket (_) ")" @punctuation.bracket) @variable.other.member
|
[
|
||||||
|
(ellipsis)
|
||||||
|
"?"
|
||||||
|
] @punctuation.special
|
||||||
|
|
||||||
(field (label (identifier) @variable.other.member))
|
; Literals
|
||||||
|
(string) @string
|
||||||
|
|
||||||
(
|
[
|
||||||
(identifier) @keyword.storage.type
|
(escape_char)
|
||||||
(#match? @keyword.storage.type "^#")
|
(escape_unicode)
|
||||||
)
|
] @constant.character.escape
|
||||||
|
|
||||||
(field (label alias: (identifier) @label))
|
(number) @constant.numeric
|
||||||
|
|
||||||
(let_clause left: (identifier) @label)
|
(float) @constant.numeric.float
|
||||||
|
|
||||||
|
(si_unit
|
||||||
|
(float)
|
||||||
|
(_) @string.special.symbol)
|
||||||
|
|
||||||
(attribute (identifier) @tag)
|
(boolean) @constant.builtin.boolean
|
||||||
|
|
||||||
|
[
|
||||||
|
(null)
|
||||||
|
(top)
|
||||||
|
(bottom)
|
||||||
|
] @constant.builtin
|
||||||
|
|
||||||
|
; Interpolations
|
||||||
|
(interpolation
|
||||||
|
"\\(" @punctuation.special
|
||||||
|
(_)
|
||||||
|
")" @punctuation.special)
|
||||||
|
|
||||||
|
(interpolation
|
||||||
|
"\\("
|
||||||
|
(identifier) @variable
|
||||||
|
")")
|
||||||
|
|
||||||
|
; Comments
|
||||||
|
(comment) @comment
|
||||||
|
@ -51,14 +51,14 @@
|
|||||||
|
|
||||||
(integer_literal) @constant.numeric.integer
|
(integer_literal) @constant.numeric.integer
|
||||||
|
|
||||||
|
(identifier) @variable
|
||||||
|
|
||||||
(call_expression
|
(call_expression
|
||||||
function: (identifier) @function)
|
function: (identifier) @function)
|
||||||
|
|
||||||
(labeled_item
|
(labeled_item
|
||||||
label: (identifier) @label)
|
label: (identifier) @label)
|
||||||
|
|
||||||
(identifier) @variable
|
|
||||||
|
|
||||||
(unit_address) @tag
|
(unit_address) @tag
|
||||||
|
|
||||||
(reference) @constant
|
(reference) @constant
|
||||||
|
@ -37,6 +37,15 @@
|
|||||||
|
|
||||||
(double_quoted_string) @string
|
(double_quoted_string) @string
|
||||||
|
|
||||||
|
[
|
||||||
|
(heredoc_marker)
|
||||||
|
(heredoc_end)
|
||||||
|
] @label
|
||||||
|
|
||||||
|
((heredoc_block
|
||||||
|
(heredoc_line) @string)
|
||||||
|
(#set! "priority" 90))
|
||||||
|
|
||||||
(expansion
|
(expansion
|
||||||
[
|
[
|
||||||
"$"
|
"$"
|
||||||
@ -52,3 +61,6 @@
|
|||||||
(param)
|
(param)
|
||||||
(mount_param)
|
(mount_param)
|
||||||
] @constant
|
] @constant
|
||||||
|
|
||||||
|
(expose_instruction
|
||||||
|
(expose_port) @constant.numeric.integer)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
(identifier) @variable
|
||||||
|
|
||||||
(keyword) @keyword
|
(keyword) @keyword
|
||||||
(string_literal) @string
|
(string_literal) @string
|
||||||
(number_literal) @constant.numeric
|
(number_literal) @constant.numeric
|
||||||
@ -33,11 +35,9 @@
|
|||||||
(identifier) @constant)
|
(identifier) @constant)
|
||||||
)
|
)
|
||||||
|
|
||||||
[
|
(comment) @comment
|
||||||
(comment)
|
|
||||||
(preproc)
|
(preproc) @keyword.directive
|
||||||
] @comment
|
|
||||||
|
|
||||||
(ERROR) @error
|
(ERROR) @error
|
||||||
|
|
||||||
(identifier) @variable
|
|
||||||
|
@ -1,3 +1,45 @@
|
|||||||
|
; Comments
|
||||||
|
(tripledot) @comment.discard
|
||||||
|
|
||||||
|
[(comment) (line_comment) (shebang)] @comment
|
||||||
|
|
||||||
|
; Basic types
|
||||||
|
(variable) @variable
|
||||||
|
((atom) @constant.builtin.boolean
|
||||||
|
(#match? @constant.builtin.boolean "^(true|false)$"))
|
||||||
|
(atom) @string.special.symbol
|
||||||
|
[(string) (sigil)] @string
|
||||||
|
(character) @constant.character
|
||||||
|
(escape_sequence) @constant.character.escape
|
||||||
|
|
||||||
|
(integer) @constant.numeric.integer
|
||||||
|
(float) @constant.numeric.float
|
||||||
|
|
||||||
|
; Punctuation
|
||||||
|
["," "." "-" ";"] @punctuation.delimiter
|
||||||
|
["(" ")" "#" "{" "}" "[" "]" "<<" ">>"] @punctuation.bracket
|
||||||
|
|
||||||
|
; Operators
|
||||||
|
(binary_operator
|
||||||
|
left: (atom) @function
|
||||||
|
operator: "/"
|
||||||
|
right: (integer) @constant.numeric.integer)
|
||||||
|
|
||||||
|
((binary_operator operator: _ @keyword.operator)
|
||||||
|
(#match? @keyword.operator "^\\w+$"))
|
||||||
|
((unary_operator operator: _ @keyword.operator)
|
||||||
|
(#match? @keyword.operator "^\\w+$"))
|
||||||
|
|
||||||
|
(binary_operator operator: _ @operator)
|
||||||
|
(unary_operator operator: _ @operator)
|
||||||
|
["/" ":" "->"] @operator
|
||||||
|
|
||||||
|
|
||||||
|
; Keywords
|
||||||
|
(attribute name: (atom) @keyword)
|
||||||
|
|
||||||
|
["case" "fun" "if" "of" "when" "end" "receive" "try" "catch" "after" "begin" "maybe"] @keyword
|
||||||
|
|
||||||
; Attributes
|
; Attributes
|
||||||
; module declaration
|
; module declaration
|
||||||
(attribute
|
(attribute
|
||||||
@ -122,46 +164,3 @@
|
|||||||
|
|
||||||
(record field: (atom) @variable.other.member)
|
(record field: (atom) @variable.other.member)
|
||||||
(record name: (atom) @type)
|
(record name: (atom) @type)
|
||||||
|
|
||||||
; Keywords
|
|
||||||
(attribute name: (atom) @keyword)
|
|
||||||
|
|
||||||
["case" "fun" "if" "of" "when" "end" "receive" "try" "catch" "after" "begin" "maybe"] @keyword
|
|
||||||
|
|
||||||
; Operators
|
|
||||||
(binary_operator
|
|
||||||
left: (atom) @function
|
|
||||||
operator: "/"
|
|
||||||
right: (integer) @constant.numeric.integer)
|
|
||||||
|
|
||||||
((binary_operator operator: _ @keyword.operator)
|
|
||||||
(#match? @keyword.operator "^\\w+$"))
|
|
||||||
((unary_operator operator: _ @keyword.operator)
|
|
||||||
(#match? @keyword.operator "^\\w+$"))
|
|
||||||
|
|
||||||
(binary_operator operator: _ @operator)
|
|
||||||
(unary_operator operator: _ @operator)
|
|
||||||
["/" ":" "->"] @operator
|
|
||||||
|
|
||||||
; Comments
|
|
||||||
(tripledot) @comment.discard
|
|
||||||
|
|
||||||
[(comment) (line_comment) (shebang)] @comment
|
|
||||||
|
|
||||||
; Basic types
|
|
||||||
(variable) @variable
|
|
||||||
((atom) @constant.builtin.boolean
|
|
||||||
(#match? @constant.builtin.boolean "^(true|false)$"))
|
|
||||||
(atom) @string.special.symbol
|
|
||||||
[(string) (sigil)] @string
|
|
||||||
(character) @constant.character
|
|
||||||
(escape_sequence) @constant.character.escape
|
|
||||||
|
|
||||||
(integer) @constant.numeric.integer
|
|
||||||
(float) @constant.numeric.float
|
|
||||||
|
|
||||||
; Punctuation
|
|
||||||
["," "." "-" ";"] @punctuation.delimiter
|
|
||||||
["(" ")" "#" "{" "}" "[" "]" "<<" ">>"] @punctuation.bracket
|
|
||||||
|
|
||||||
; (ERROR) @error
|
|
||||||
|
@ -1,8 +1,34 @@
|
|||||||
; Function calls
|
|
||||||
|
|
||||||
(call_expression
|
; Identifiers
|
||||||
function: (identifier) @function.builtin
|
|
||||||
(#match? @function.builtin "^(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)$"))
|
(field_identifier) @variable.other.member
|
||||||
|
|
||||||
|
(identifier) @variable
|
||||||
|
|
||||||
|
(package_identifier) @namespace
|
||||||
|
|
||||||
|
(parameter_declaration (identifier) @variable.parameter)
|
||||||
|
(variadic_parameter_declaration (identifier) @variable.parameter)
|
||||||
|
|
||||||
|
(const_spec
|
||||||
|
name: (identifier) @constant)
|
||||||
|
|
||||||
|
(type_spec
|
||||||
|
name: (type_identifier) @constructor)
|
||||||
|
|
||||||
|
(keyed_element (literal_element (identifier) @variable.other.member))
|
||||||
|
(field_declaration
|
||||||
|
name: (field_identifier) @variable.other.member)
|
||||||
|
|
||||||
|
(parameter_declaration (identifier) @variable.parameter)
|
||||||
|
(variadic_parameter_declaration (identifier) @variable.parameter)
|
||||||
|
|
||||||
|
(label_name) @label
|
||||||
|
|
||||||
|
(const_spec
|
||||||
|
name: (identifier) @constant)
|
||||||
|
|
||||||
|
; Function calls
|
||||||
|
|
||||||
(call_expression
|
(call_expression
|
||||||
function: (identifier) @function)
|
function: (identifier) @function)
|
||||||
@ -11,9 +37,14 @@
|
|||||||
function: (selector_expression
|
function: (selector_expression
|
||||||
field: (field_identifier) @function.method))
|
field: (field_identifier) @function.method))
|
||||||
|
|
||||||
|
(call_expression
|
||||||
|
function: (identifier) @function.builtin
|
||||||
|
(#match? @function.builtin "^(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)$"))
|
||||||
|
|
||||||
; Types
|
; Types
|
||||||
|
|
||||||
|
(type_identifier) @type
|
||||||
|
|
||||||
(type_parameter_list
|
(type_parameter_list
|
||||||
(parameter_declaration
|
(parameter_declaration
|
||||||
name: (identifier) @type.parameter))
|
name: (identifier) @type.parameter))
|
||||||
@ -21,8 +52,6 @@
|
|||||||
((type_identifier) @type.builtin
|
((type_identifier) @type.builtin
|
||||||
(#match? @type.builtin "^(any|bool|byte|comparable|complex128|complex64|error|float32|float64|int|int16|int32|int64|int8|rune|string|uint|uint16|uint32|uint64|uint8|uintptr)$"))
|
(#match? @type.builtin "^(any|bool|byte|comparable|complex128|complex64|error|float32|float64|int|int16|int32|int64|int8|rune|string|uint|uint16|uint32|uint64|uint8|uintptr)$"))
|
||||||
|
|
||||||
(type_identifier) @type
|
|
||||||
|
|
||||||
; Function definitions
|
; Function definitions
|
||||||
|
|
||||||
(function_declaration
|
(function_declaration
|
||||||
@ -34,28 +63,6 @@
|
|||||||
(method_spec
|
(method_spec
|
||||||
name: (field_identifier) @function.method)
|
name: (field_identifier) @function.method)
|
||||||
|
|
||||||
; Identifiers
|
|
||||||
|
|
||||||
(const_spec
|
|
||||||
name: (identifier) @constant)
|
|
||||||
|
|
||||||
(parameter_declaration (identifier) @variable.parameter)
|
|
||||||
(variadic_parameter_declaration (identifier) @variable.parameter)
|
|
||||||
|
|
||||||
(type_spec
|
|
||||||
name: (type_identifier) @constructor)
|
|
||||||
(field_identifier) @variable.other.member
|
|
||||||
(keyed_element (literal_element (identifier) @variable.other.member))
|
|
||||||
(identifier) @variable
|
|
||||||
(package_identifier) @namespace
|
|
||||||
|
|
||||||
(parameter_declaration (identifier) @variable.parameter)
|
|
||||||
(variadic_parameter_declaration (identifier) @variable.parameter)
|
|
||||||
|
|
||||||
(label_name) @label
|
|
||||||
|
|
||||||
(const_spec
|
|
||||||
name: (identifier) @constant)
|
|
||||||
|
|
||||||
; Operators
|
; Operators
|
||||||
|
|
||||||
|
@ -1,17 +1,3 @@
|
|||||||
;; ----------------------------------------------------------------------------
|
|
||||||
;; Literals and comments
|
|
||||||
|
|
||||||
(integer) @constant.numeric.integer
|
|
||||||
(exp_negation) @constant.numeric.integer
|
|
||||||
(exp_literal (float)) @constant.numeric.float
|
|
||||||
(char) @constant.character
|
|
||||||
(string) @string
|
|
||||||
|
|
||||||
(con_unit) @constant.builtin ; unit, as in ()
|
|
||||||
|
|
||||||
(comment) @comment
|
|
||||||
|
|
||||||
|
|
||||||
;; ----------------------------------------------------------------------------
|
;; ----------------------------------------------------------------------------
|
||||||
;; Punctuation
|
;; Punctuation
|
||||||
|
|
||||||
@ -30,6 +16,20 @@
|
|||||||
] @punctuation.delimiter
|
] @punctuation.delimiter
|
||||||
|
|
||||||
|
|
||||||
|
;; ----------------------------------------------------------------------------
|
||||||
|
;; Literals and comments
|
||||||
|
|
||||||
|
(integer) @constant.numeric.integer
|
||||||
|
(exp_negation) @constant.numeric.integer
|
||||||
|
(exp_literal (float)) @constant.numeric.float
|
||||||
|
(char) @constant.character
|
||||||
|
(string) @string
|
||||||
|
|
||||||
|
(comment) @comment
|
||||||
|
|
||||||
|
(con_unit [ "(" ")" ] @constant.builtin) ; unit, as in ()
|
||||||
|
|
||||||
|
|
||||||
;; ----------------------------------------------------------------------------
|
;; ----------------------------------------------------------------------------
|
||||||
;; Keywords, operators, includes
|
;; Keywords, operators, includes
|
||||||
|
|
||||||
@ -103,6 +103,8 @@
|
|||||||
;; ----------------------------------------------------------------------------
|
;; ----------------------------------------------------------------------------
|
||||||
;; Functions and variables
|
;; Functions and variables
|
||||||
|
|
||||||
|
(variable) @variable
|
||||||
|
|
||||||
(signature name: (variable) @type)
|
(signature name: (variable) @type)
|
||||||
(function
|
(function
|
||||||
name: (variable) @function
|
name: (variable) @function
|
||||||
@ -117,7 +119,6 @@
|
|||||||
(exp_apply . (exp_name (variable) @function))
|
(exp_apply . (exp_name (variable) @function))
|
||||||
(exp_apply . (exp_name (qualified_variable (variable) @function)))
|
(exp_apply . (exp_name (qualified_variable (variable) @function)))
|
||||||
|
|
||||||
(variable) @variable
|
|
||||||
(pat_wildcard) @variable
|
(pat_wildcard) @variable
|
||||||
|
|
||||||
;; ----------------------------------------------------------------------------
|
;; ----------------------------------------------------------------------------
|
||||||
|
@ -10,12 +10,15 @@
|
|||||||
|
|
||||||
(num_lit) @constant.numeric
|
(num_lit) @constant.numeric
|
||||||
|
|
||||||
[(bool_lit) (nil_lit)] @constant.builtin
|
(bool_lit) @constant.builtin.boolean
|
||||||
|
(nil_lit) @constant.builtin
|
||||||
|
|
||||||
(comment) @comment
|
(comment) @comment
|
||||||
|
|
||||||
((sym_lit) @variable
|
(sym_lit) @variable
|
||||||
(#match? @variable "^\\*.+\\*$"))
|
|
||||||
|
((sym_lit) @variable.builtin
|
||||||
|
(#match? @variable.builtin "^\\*.+\\*$"))
|
||||||
|
|
||||||
(short_fn_lit
|
(short_fn_lit
|
||||||
.
|
.
|
||||||
@ -57,8 +60,6 @@
|
|||||||
.
|
.
|
||||||
(sym_lit) @function)
|
(sym_lit) @function)
|
||||||
|
|
||||||
(sym_lit) @variable
|
|
||||||
|
|
||||||
["{" "@{" "}"
|
["{" "@{" "}"
|
||||||
"[" "@[" "]"
|
"[" "@[" "]"
|
||||||
"(" "@(" ")"] @punctuation.bracket
|
"(" "@(" ")"] @punctuation.bracket
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
(identifier) @variable
|
||||||
|
|
||||||
; Methods
|
; Methods
|
||||||
|
|
||||||
(method_declaration
|
(method_declaration
|
||||||
@ -54,8 +56,6 @@
|
|||||||
((identifier) @constant
|
((identifier) @constant
|
||||||
(#match? @constant "^_*[A-Z][A-Z\\d_]+$"))
|
(#match? @constant "^_*[A-Z][A-Z\\d_]+$"))
|
||||||
|
|
||||||
(identifier) @variable
|
|
||||||
|
|
||||||
(this) @variable.builtin
|
(this) @variable.builtin
|
||||||
|
|
||||||
; Literals
|
; Literals
|
||||||
|
@ -3,9 +3,12 @@
|
|||||||
(struct_definition)
|
(struct_definition)
|
||||||
(macro_definition)
|
(macro_definition)
|
||||||
(function_definition)
|
(function_definition)
|
||||||
(compound_expression) ; begin blocks
|
|
||||||
(let_statement)
|
|
||||||
(if_statement)
|
(if_statement)
|
||||||
|
(try_statement)
|
||||||
(for_statement)
|
(for_statement)
|
||||||
(while_statement)
|
(while_statement)
|
||||||
|
(let_statement)
|
||||||
|
(quote_statement)
|
||||||
|
(do_clause)
|
||||||
|
(compound_statement) ; begin block
|
||||||
] @fold
|
] @fold
|
||||||
|
@ -1,38 +1,47 @@
|
|||||||
; ----------
|
; ------------
|
||||||
; Primitives
|
; Variables identifiers
|
||||||
; ----------
|
; ------------
|
||||||
|
|
||||||
[
|
(identifier) @variable
|
||||||
(line_comment)
|
|
||||||
(block_comment)
|
|
||||||
] @comment
|
|
||||||
|
|
||||||
|
; Remaining identifiers that start with capital letters should be types (PascalCase)
|
||||||
(
|
(
|
||||||
((identifier) @constant.builtin)
|
(identifier) @type
|
||||||
(#match? @constant.builtin "^(nothing|missing|undef)$"))
|
(#match? @type "^[A-Z]"))
|
||||||
|
|
||||||
[
|
|
||||||
(true)
|
|
||||||
(false)
|
|
||||||
] @constant.builtin.boolean
|
|
||||||
|
|
||||||
(integer_literal) @constant.numeric.integer
|
|
||||||
(float_literal) @constant.numeric.float
|
|
||||||
|
|
||||||
|
; SCREAMING_SNAKE_CASE
|
||||||
(
|
(
|
||||||
((identifier) @constant.numeric.float)
|
(identifier) @constant
|
||||||
(#match? @constant.numeric.float "^((Inf|NaN)(16|32|64)?)$"))
|
(#match? @constant "^[A-Z][A-Z0-9_]*$"))
|
||||||
|
|
||||||
(character_literal) @constant.character
|
(const_statement
|
||||||
(escape_sequence) @constant.character.escape
|
(assignment
|
||||||
|
. (identifier) @constant))
|
||||||
|
|
||||||
(string_literal) @string
|
; Field expressions are either module content or struct fields.
|
||||||
|
; Module types and constants should already be captured, so this
|
||||||
(prefixed_string_literal
|
; assumes the remaining identifiers to be struct fields.
|
||||||
prefix: (identifier) @function.macro) @string
|
(field_expression
|
||||||
|
(_)
|
||||||
|
(identifier) @variable.other.member)
|
||||||
|
|
||||||
(quote_expression
|
(quote_expression
|
||||||
(identifier) @string.special.symbol)
|
":" @string.special.symbol
|
||||||
|
[
|
||||||
|
(identifier)
|
||||||
|
(operator)
|
||||||
|
] @string.special.symbol)
|
||||||
|
|
||||||
|
; ------
|
||||||
|
; Macros
|
||||||
|
; ------
|
||||||
|
|
||||||
|
(macro_definition
|
||||||
|
name: (identifier) @function.macro)
|
||||||
|
|
||||||
|
(macro_identifier
|
||||||
|
"@" @function.macro
|
||||||
|
(identifier) @function.macro)
|
||||||
|
|
||||||
; -------------------
|
; -------------------
|
||||||
; Modules and Imports
|
; Modules and Imports
|
||||||
@ -50,49 +59,6 @@
|
|||||||
(scoped_identifier
|
(scoped_identifier
|
||||||
(identifier) @namespace)
|
(identifier) @namespace)
|
||||||
|
|
||||||
; -----
|
|
||||||
; Types
|
|
||||||
; -----
|
|
||||||
|
|
||||||
(abstract_definition
|
|
||||||
name: (identifier) @type)
|
|
||||||
|
|
||||||
(primitive_definition
|
|
||||||
name: (identifier) @type)
|
|
||||||
|
|
||||||
(struct_definition
|
|
||||||
name: (identifier) @type)
|
|
||||||
|
|
||||||
(struct_definition
|
|
||||||
. (_)
|
|
||||||
(identifier) @variable.other.member)
|
|
||||||
|
|
||||||
(struct_definition
|
|
||||||
. (_)
|
|
||||||
(typed_expression
|
|
||||||
. (identifier) @variable.other.member))
|
|
||||||
|
|
||||||
(type_parameter_list
|
|
||||||
(identifier) @type)
|
|
||||||
|
|
||||||
(constrained_type_parameter
|
|
||||||
(identifier) @type)
|
|
||||||
|
|
||||||
(subtype_clause
|
|
||||||
(identifier) @type)
|
|
||||||
|
|
||||||
(typed_expression
|
|
||||||
(identifier) @type . )
|
|
||||||
|
|
||||||
(parameterized_identifier
|
|
||||||
(identifier) @type)
|
|
||||||
|
|
||||||
(type_argument_list
|
|
||||||
(identifier) @type)
|
|
||||||
|
|
||||||
(where_clause
|
|
||||||
(identifier) @type)
|
|
||||||
|
|
||||||
; -------------------
|
; -------------------
|
||||||
; Function definition
|
; Function definition
|
||||||
; -------------------
|
; -------------------
|
||||||
@ -119,22 +85,6 @@
|
|||||||
; prevent constructors (PascalCase) to be highlighted as functions
|
; prevent constructors (PascalCase) to be highlighted as functions
|
||||||
(#match? @function "^[^A-Z]"))
|
(#match? @function "^[^A-Z]"))
|
||||||
|
|
||||||
(parameter_list
|
|
||||||
(identifier) @variable.parameter)
|
|
||||||
|
|
||||||
(typed_parameter
|
|
||||||
(identifier) @variable.parameter
|
|
||||||
(identifier)? @type)
|
|
||||||
|
|
||||||
(optional_parameter
|
|
||||||
. (identifier) @variable.parameter)
|
|
||||||
|
|
||||||
(slurp_parameter
|
|
||||||
(identifier) @variable.parameter)
|
|
||||||
|
|
||||||
(function_expression
|
|
||||||
. (identifier) @variable.parameter)
|
|
||||||
|
|
||||||
; ---------------
|
; ---------------
|
||||||
; Functions calls
|
; Functions calls
|
||||||
; ---------------
|
; ---------------
|
||||||
@ -145,93 +95,294 @@
|
|||||||
; prevent constructors (PascalCase) to be highlighted as functions
|
; prevent constructors (PascalCase) to be highlighted as functions
|
||||||
(#match? @function "^[^A-Z]"))
|
(#match? @function "^[^A-Z]"))
|
||||||
|
|
||||||
(
|
|
||||||
(broadcast_call_expression
|
|
||||||
(identifier) @function)
|
|
||||||
(#match? @function "^[^A-Z]"))
|
|
||||||
|
|
||||||
(
|
(
|
||||||
(call_expression
|
(call_expression
|
||||||
(field_expression (identifier) @function .))
|
(field_expression (identifier) @function .))
|
||||||
(#match? @function "^[^A-Z]"))
|
(#match? @function "^[^A-Z]"))
|
||||||
|
|
||||||
|
(
|
||||||
|
(broadcast_call_expression
|
||||||
|
(identifier) @function)
|
||||||
|
(#match? @function "^[^A-Z]"))
|
||||||
|
|
||||||
(
|
(
|
||||||
(broadcast_call_expression
|
(broadcast_call_expression
|
||||||
(field_expression (identifier) @function .))
|
(field_expression (identifier) @function .))
|
||||||
(#match? @function "^[^A-Z]"))
|
(#match? @function "^[^A-Z]"))
|
||||||
|
|
||||||
; ------
|
|
||||||
; Macros
|
|
||||||
; ------
|
|
||||||
|
|
||||||
(macro_definition
|
; -------------------
|
||||||
name: (identifier) @function.macro)
|
; Functions builtins
|
||||||
|
; -------------------
|
||||||
|
|
||||||
|
((identifier) @function.builtin
|
||||||
|
(#any-of? @function.builtin
|
||||||
|
"_abstracttype" "_apply_iterate" "_apply_pure" "_call_in_world" "_call_in_world_total"
|
||||||
|
"_call_latest" "_equiv_typedef" "_expr" "_primitivetype" "_setsuper!" "_structtype" "_typebody!"
|
||||||
|
"_typevar" "applicable" "apply_type" "arrayref" "arrayset" "arraysize" "const_arrayref"
|
||||||
|
"donotdelete" "fieldtype" "get_binding_type" "getfield" "ifelse" "invoke" "isa" "isdefined"
|
||||||
|
"modifyfield!" "nfields" "replacefield!" "set_binding_type!" "setfield!" "sizeof" "svec"
|
||||||
|
"swapfield!" "throw" "tuple" "typeassert" "typeof"))
|
||||||
|
|
||||||
|
; -----------
|
||||||
|
; Parameters
|
||||||
|
; -----------
|
||||||
|
|
||||||
|
(parameter_list
|
||||||
|
(identifier) @variable.parameter)
|
||||||
|
|
||||||
|
(optional_parameter
|
||||||
|
. (identifier) @variable.parameter)
|
||||||
|
|
||||||
|
(slurp_parameter
|
||||||
|
(identifier) @variable.parameter)
|
||||||
|
|
||||||
|
(typed_parameter
|
||||||
|
parameter: (identifier)? @variable.parameter
|
||||||
|
type: (_) @type)
|
||||||
|
|
||||||
|
(function_expression
|
||||||
|
. (identifier) @variable.parameter) ; Single parameter arrow functions
|
||||||
|
|
||||||
|
; -----
|
||||||
|
; Types
|
||||||
|
; -----
|
||||||
|
|
||||||
|
; Definitions
|
||||||
|
(abstract_definition
|
||||||
|
name: (identifier) @type.definition) @keyword
|
||||||
|
|
||||||
|
(primitive_definition
|
||||||
|
name: (identifier) @type.definition) @keyword
|
||||||
|
|
||||||
|
(struct_definition
|
||||||
|
name: (identifier) @type)
|
||||||
|
|
||||||
|
(struct_definition
|
||||||
|
. (_)
|
||||||
|
(identifier) @variable.other.member)
|
||||||
|
|
||||||
|
(struct_definition
|
||||||
|
. (_)
|
||||||
|
(typed_expression
|
||||||
|
. (identifier) @variable.other.member))
|
||||||
|
|
||||||
|
(type_clause
|
||||||
|
[
|
||||||
|
(identifier) @type
|
||||||
|
(field_expression
|
||||||
|
(identifier) @type .)
|
||||||
|
])
|
||||||
|
|
||||||
|
; Annotations
|
||||||
|
(parametrized_type_expression
|
||||||
|
(_) @type
|
||||||
|
(curly_expression
|
||||||
|
(_) @type))
|
||||||
|
|
||||||
|
(type_parameter_list
|
||||||
|
(identifier) @type)
|
||||||
|
|
||||||
|
(typed_expression
|
||||||
|
(identifier) @type . )
|
||||||
|
|
||||||
|
(function_definition
|
||||||
|
return_type: (identifier) @type)
|
||||||
|
|
||||||
|
(short_function_definition
|
||||||
|
return_type: (identifier) @type)
|
||||||
|
|
||||||
|
(where_clause
|
||||||
|
(identifier) @type)
|
||||||
|
|
||||||
|
(where_clause
|
||||||
|
(curly_expression
|
||||||
|
(_) @type))
|
||||||
|
|
||||||
|
; ---------
|
||||||
|
; Builtins
|
||||||
|
; ---------
|
||||||
|
|
||||||
|
; This list was generated with:
|
||||||
|
;
|
||||||
|
; istype(x) = typeof(x) === DataType || typeof(x) === UnionAll
|
||||||
|
; get_types(m) = filter(x -> istype(Base.eval(m, x)), names(m))
|
||||||
|
; type_names = sort(union(get_types(Core), get_types(Base)))
|
||||||
|
;
|
||||||
|
((identifier) @type.builtin
|
||||||
|
(#any-of? @type.builtin
|
||||||
|
"AbstractArray" "AbstractChannel" "AbstractChar" "AbstractDict" "AbstractDisplay"
|
||||||
|
"AbstractFloat" "AbstractIrrational" "AbstractLock" "AbstractMatch" "AbstractMatrix"
|
||||||
|
"AbstractPattern" "AbstractRange" "AbstractSet" "AbstractSlices" "AbstractString"
|
||||||
|
"AbstractUnitRange" "AbstractVecOrMat" "AbstractVector" "Any" "ArgumentError" "Array"
|
||||||
|
"AssertionError" "Atomic" "BigFloat" "BigInt" "BitArray" "BitMatrix" "BitSet" "BitVector" "Bool"
|
||||||
|
"BoundsError" "By" "CanonicalIndexError" "CapturedException" "CartesianIndex" "CartesianIndices"
|
||||||
|
"Cchar" "Cdouble" "Cfloat" "Channel" "Char" "Cint" "Cintmax_t" "Clong" "Clonglong" "Cmd" "Colon"
|
||||||
|
"ColumnSlices" "Complex" "ComplexF16" "ComplexF32" "ComplexF64" "ComposedFunction"
|
||||||
|
"CompositeException" "ConcurrencyViolationError" "Condition" "Cptrdiff_t" "Cshort" "Csize_t"
|
||||||
|
"Cssize_t" "Cstring" "Cuchar" "Cuint" "Cuintmax_t" "Culong" "Culonglong" "Cushort" "Cvoid"
|
||||||
|
"Cwchar_t" "Cwstring" "DataType" "DenseArray" "DenseMatrix" "DenseVecOrMat" "DenseVector" "Dict"
|
||||||
|
"DimensionMismatch" "Dims" "DivideError" "DomainError" "EOFError" "Enum" "ErrorException"
|
||||||
|
"Exception" "ExponentialBackOff" "Expr" "Float16" "Float32" "Float64" "Function" "GlobalRef"
|
||||||
|
"HTML" "IO" "IOBuffer" "IOContext" "IOStream" "IdDict" "IndexCartesian" "IndexLinear"
|
||||||
|
"IndexStyle" "InexactError" "InitError" "Int" "Int128" "Int16" "Int32" "Int64" "Int8" "Integer"
|
||||||
|
"InterruptException" "InvalidStateException" "Irrational" "KeyError" "LazyString" "LinRange"
|
||||||
|
"LineNumberNode" "LinearIndices" "LoadError" "Lt" "MIME" "Matrix" "Method" "MethodError"
|
||||||
|
"Missing" "MissingException" "Module" "NTuple" "NamedTuple" "Nothing" "Number" "Ordering"
|
||||||
|
"OrdinalRange" "OutOfMemoryError" "OverflowError" "Pair" "ParseError" "PartialQuickSort" "Perm"
|
||||||
|
"PermutedDimsArray" "Pipe" "ProcessFailedException" "Ptr" "QuoteNode" "Rational" "RawFD"
|
||||||
|
"ReadOnlyMemoryError" "Real" "ReentrantLock" "Ref" "Regex" "RegexMatch" "Returns"
|
||||||
|
"ReverseOrdering" "RoundingMode" "RowSlices" "SegmentationFault" "Set" "Signed" "Slices" "Some"
|
||||||
|
"SpinLock" "StackFrame" "StackOverflowError" "StackTrace" "Stateful" "StepRange" "StepRangeLen"
|
||||||
|
"StridedArray" "StridedMatrix" "StridedVecOrMat" "StridedVector" "String" "StringIndexError"
|
||||||
|
"SubArray" "SubString" "SubstitutionString" "Symbol" "SystemError" "Task" "TaskFailedException"
|
||||||
|
"Text" "TextDisplay" "Timer" "Tmstruct" "Tuple" "Type" "TypeError" "TypeVar" "UInt" "UInt128"
|
||||||
|
"UInt16" "UInt32" "UInt64" "UInt8" "UndefInitializer" "UndefKeywordError" "UndefRefError"
|
||||||
|
"UndefVarError" "Union" "UnionAll" "UnitRange" "Unsigned" "Val" "VecElement" "VecOrMat" "Vector"
|
||||||
|
"VersionNumber" "WeakKeyDict" "WeakRef"))
|
||||||
|
|
||||||
|
((identifier) @variable.builtin
|
||||||
|
(#any-of? @variable.builtin "begin" "end")
|
||||||
|
(#has-ancestor? @variable.builtin index_expression))
|
||||||
|
|
||||||
|
((identifier) @variable.builtin
|
||||||
|
(#any-of? @variable.builtin "begin" "end")
|
||||||
|
(#has-ancestor? @variable.builtin range_expression))
|
||||||
|
|
||||||
(macro_identifier
|
|
||||||
"@" @function.macro
|
|
||||||
(identifier) @function.macro)
|
|
||||||
|
|
||||||
; --------
|
; --------
|
||||||
; Keywords
|
; Keywords
|
||||||
; --------
|
; --------
|
||||||
|
|
||||||
(function_definition
|
[
|
||||||
["function" "end"] @keyword.function)
|
"global"
|
||||||
|
"local"
|
||||||
|
] @keyword
|
||||||
|
|
||||||
|
(compound_statement
|
||||||
|
[
|
||||||
|
"begin"
|
||||||
|
"end"
|
||||||
|
] @keyword)
|
||||||
|
|
||||||
|
(quote_statement
|
||||||
|
[
|
||||||
|
"quote"
|
||||||
|
"end"
|
||||||
|
] @keyword)
|
||||||
|
|
||||||
|
(let_statement
|
||||||
|
[
|
||||||
|
"let"
|
||||||
|
"end"
|
||||||
|
] @keyword)
|
||||||
|
|
||||||
(if_statement
|
(if_statement
|
||||||
["if" "end"] @keyword.control.conditional)
|
[
|
||||||
(elseif_clause
|
"if"
|
||||||
["elseif"] @keyword.control.conditional)
|
"end"
|
||||||
(else_clause
|
] @keyword.control.conditional)
|
||||||
["else"] @keyword.control.conditional)
|
|
||||||
(ternary_expression
|
|
||||||
["?" ":"] @keyword.control.conditional)
|
|
||||||
|
|
||||||
(for_statement
|
(elseif_clause
|
||||||
["for" "end"] @keyword.control.repeat)
|
"elseif" @keyword.control.conditional)
|
||||||
(while_statement
|
|
||||||
["while" "end"] @keyword.control.repeat)
|
(else_clause
|
||||||
(break_statement) @keyword.control.repeat
|
"else" @keyword.control.conditional)
|
||||||
(continue_statement) @keyword.control.repeat
|
|
||||||
(for_binding
|
(if_clause
|
||||||
"in" @keyword.control.repeat)
|
"if" @keyword.control.conditional) ; `if` clause in comprehensions
|
||||||
(for_clause
|
|
||||||
"for" @keyword.control.repeat)
|
(ternary_expression
|
||||||
|
[
|
||||||
|
"?"
|
||||||
|
":"
|
||||||
|
] @keyword.control.conditional)
|
||||||
|
|
||||||
(try_statement
|
(try_statement
|
||||||
["try" "end" ] @keyword.control.exception)
|
[
|
||||||
|
"try"
|
||||||
|
"end"
|
||||||
|
] @keyword.control.exception)
|
||||||
|
|
||||||
(finally_clause
|
(finally_clause
|
||||||
"finally" @keyword.control.exception)
|
"finally" @keyword.control.exception)
|
||||||
|
|
||||||
(catch_clause
|
(catch_clause
|
||||||
"catch" @keyword.control.exception)
|
"catch" @keyword.control.exception)
|
||||||
|
|
||||||
|
(for_statement
|
||||||
|
[
|
||||||
|
"for"
|
||||||
|
"end"
|
||||||
|
] @keyword.control.repeat)
|
||||||
|
|
||||||
|
(while_statement
|
||||||
|
[
|
||||||
|
"while"
|
||||||
|
"end"
|
||||||
|
] @keyword.control.repeat)
|
||||||
|
|
||||||
|
(for_clause
|
||||||
|
"for" @keyword.control.repeat)
|
||||||
|
|
||||||
[
|
[
|
||||||
"export"
|
(break_statement)
|
||||||
|
(continue_statement)
|
||||||
|
] @keyword.control.repeat
|
||||||
|
|
||||||
|
(module_definition
|
||||||
|
[
|
||||||
|
"module"
|
||||||
|
"baremodule"
|
||||||
|
"end"
|
||||||
|
] @keyword.control.import)
|
||||||
|
|
||||||
|
(import_statement
|
||||||
|
[
|
||||||
"import"
|
"import"
|
||||||
"using"
|
"using"
|
||||||
] @keyword.control.import
|
] @keyword.control.import)
|
||||||
|
|
||||||
[
|
(import_alias
|
||||||
"abstract"
|
"as" @keyword.control.import)
|
||||||
"baremodule"
|
|
||||||
"begin"
|
(export_statement
|
||||||
"const"
|
"export" @keyword.control.import)
|
||||||
|
|
||||||
|
(selected_import
|
||||||
|
":" @punctuation.delimiter)
|
||||||
|
|
||||||
|
(struct_definition
|
||||||
|
[
|
||||||
|
"struct"
|
||||||
|
"end"
|
||||||
|
] @keyword)
|
||||||
|
|
||||||
|
(macro_definition
|
||||||
|
[
|
||||||
|
"macro"
|
||||||
|
"end"
|
||||||
|
] @keyword)
|
||||||
|
|
||||||
|
(function_definition
|
||||||
|
[
|
||||||
|
"function"
|
||||||
|
"end"
|
||||||
|
] @keyword.function)
|
||||||
|
|
||||||
|
(do_clause
|
||||||
|
[
|
||||||
"do"
|
"do"
|
||||||
"end"
|
"end"
|
||||||
"let"
|
] @keyword.function)
|
||||||
"macro"
|
|
||||||
"module"
|
|
||||||
"mutable"
|
|
||||||
"primitive"
|
|
||||||
"quote"
|
|
||||||
"return"
|
|
||||||
"struct"
|
|
||||||
"type"
|
|
||||||
"where"
|
|
||||||
] @keyword
|
|
||||||
|
|
||||||
; TODO: fix this
|
(return_statement
|
||||||
((identifier) @keyword (#match? @keyword "global|local"))
|
"return" @keyword.control.return)
|
||||||
|
|
||||||
|
[
|
||||||
|
"const"
|
||||||
|
"mutable"
|
||||||
|
] @keyword.storage.modifier
|
||||||
|
|
||||||
; ---------
|
; ---------
|
||||||
; Operators
|
; Operators
|
||||||
@ -239,14 +390,34 @@
|
|||||||
|
|
||||||
[
|
[
|
||||||
(operator)
|
(operator)
|
||||||
"::"
|
"="
|
||||||
"<:"
|
"∈"
|
||||||
":"
|
|
||||||
"=>"
|
|
||||||
"..."
|
|
||||||
"$"
|
|
||||||
] @operator
|
] @operator
|
||||||
|
|
||||||
|
(adjoint_expression
|
||||||
|
"'" @operator)
|
||||||
|
|
||||||
|
(range_expression
|
||||||
|
":" @operator)
|
||||||
|
|
||||||
|
((operator) @keyword.operator
|
||||||
|
(#any-of? @keyword.operator "in" "isa"))
|
||||||
|
|
||||||
|
(for_binding
|
||||||
|
"in" @keyword.operator)
|
||||||
|
|
||||||
|
(where_clause
|
||||||
|
"where" @keyword.operator)
|
||||||
|
|
||||||
|
(where_expression
|
||||||
|
"where" @keyword.operator)
|
||||||
|
|
||||||
|
(binary_expression
|
||||||
|
(_)
|
||||||
|
(operator) @operator
|
||||||
|
(identifier) @function
|
||||||
|
(#any-of? @operator "|>" ".|>"))
|
||||||
|
|
||||||
; ------------
|
; ------------
|
||||||
; Punctuations
|
; Punctuations
|
||||||
; ------------
|
; ------------
|
||||||
@ -255,40 +426,58 @@
|
|||||||
"."
|
"."
|
||||||
","
|
","
|
||||||
";"
|
";"
|
||||||
|
"::"
|
||||||
|
"->"
|
||||||
] @punctuation.delimiter
|
] @punctuation.delimiter
|
||||||
|
|
||||||
|
"..." @punctuation.special
|
||||||
|
|
||||||
[
|
[
|
||||||
"["
|
|
||||||
"]"
|
|
||||||
"("
|
"("
|
||||||
")"
|
")"
|
||||||
|
"["
|
||||||
|
"]"
|
||||||
"{"
|
"{"
|
||||||
"}"
|
"}"
|
||||||
] @punctuation.bracket
|
] @punctuation.bracket
|
||||||
|
|
||||||
; ---------------------
|
; ---------
|
||||||
; Remaining identifiers
|
; Literals
|
||||||
; ---------------------
|
; ---------
|
||||||
|
|
||||||
(const_statement
|
(boolean_literal) @constant.builtin.boolean
|
||||||
(variable_declaration
|
|
||||||
. (identifier) @constant))
|
(integer_literal) @constant.numeric.integer
|
||||||
|
|
||||||
|
(float_literal) @constant.numeric.float
|
||||||
|
|
||||||
; SCREAMING_SNAKE_CASE
|
|
||||||
(
|
(
|
||||||
(identifier) @constant
|
((identifier) @constant.numeric.float)
|
||||||
(#match? @constant "^[A-Z][A-Z0-9_]*$"))
|
(#match? @constant.numeric.float "^((Inf|NaN)(16|32|64)?)$"))
|
||||||
|
|
||||||
; remaining identifiers that start with capital letters should be types (PascalCase)
|
|
||||||
(
|
(
|
||||||
(identifier) @type
|
((identifier) @constant.builtin)
|
||||||
(#match? @type "^[A-Z]"))
|
(#match? @constant.builtin "^(nothing|missing|undef)$"))
|
||||||
|
|
||||||
; Field expressions are either module content or struct fields.
|
(character_literal) @constant.character
|
||||||
; Module types and constants should already be captured, so this
|
|
||||||
; assumes the remaining identifiers to be struct fields.
|
|
||||||
(field_expression
|
|
||||||
(_)
|
|
||||||
(identifier) @variable.other.member)
|
|
||||||
|
|
||||||
(identifier) @variable
|
(escape_sequence) @constant.character.escape
|
||||||
|
|
||||||
|
(string_literal) @string
|
||||||
|
|
||||||
|
(prefixed_string_literal
|
||||||
|
prefix: (identifier) @function.macro) @string
|
||||||
|
|
||||||
|
(command_literal) @string
|
||||||
|
|
||||||
|
(prefixed_command_literal
|
||||||
|
prefix: (identifier) @function.macro) @string
|
||||||
|
|
||||||
|
; ---------
|
||||||
|
; Comments
|
||||||
|
; ---------
|
||||||
|
|
||||||
|
[
|
||||||
|
(line_comment)
|
||||||
|
(block_comment)
|
||||||
|
] @comment
|
||||||
|
@ -2,15 +2,39 @@
|
|||||||
(struct_definition)
|
(struct_definition)
|
||||||
(macro_definition)
|
(macro_definition)
|
||||||
(function_definition)
|
(function_definition)
|
||||||
(compound_expression)
|
(compound_statement)
|
||||||
(let_statement)
|
|
||||||
(if_statement)
|
(if_statement)
|
||||||
|
(try_statement)
|
||||||
(for_statement)
|
(for_statement)
|
||||||
(while_statement)
|
(while_statement)
|
||||||
|
(let_statement)
|
||||||
|
(quote_statement)
|
||||||
(do_clause)
|
(do_clause)
|
||||||
(parameter_list)
|
(assignment)
|
||||||
|
(for_binding)
|
||||||
|
(call_expression)
|
||||||
|
(parenthesized_expression)
|
||||||
|
(tuple_expression)
|
||||||
|
(comprehension_expression)
|
||||||
|
(matrix_expression)
|
||||||
|
(vector_expression)
|
||||||
] @indent
|
] @indent
|
||||||
|
|
||||||
[
|
[
|
||||||
"end"
|
"end"
|
||||||
|
")"
|
||||||
|
"]"
|
||||||
|
"}"
|
||||||
] @outdent
|
] @outdent
|
||||||
|
|
||||||
|
(argument_list
|
||||||
|
. (_) @anchor
|
||||||
|
(#set! "scope" "tail")) @align
|
||||||
|
|
||||||
|
(parameter_list
|
||||||
|
. (_) @anchor
|
||||||
|
(#set! "scope" "tail")) @align
|
||||||
|
|
||||||
|
(curly_expression
|
||||||
|
. (_) @anchor
|
||||||
|
(#set! "scope" "tail")) @align
|
||||||
|
@ -9,7 +9,8 @@
|
|||||||
(primitive_definition)
|
(primitive_definition)
|
||||||
(abstract_definition)
|
(abstract_definition)
|
||||||
(struct_definition)
|
(struct_definition)
|
||||||
(assignment_expression)
|
(short_function_definition)
|
||||||
|
(assignment)
|
||||||
(const_statement)
|
(const_statement)
|
||||||
])
|
])
|
||||||
(#set! injection.language "markdown"))
|
(#set! injection.language "markdown"))
|
||||||
@ -21,10 +22,17 @@
|
|||||||
] @injection.content
|
] @injection.content
|
||||||
(#set! injection.language "comment"))
|
(#set! injection.language "comment"))
|
||||||
|
|
||||||
|
(
|
||||||
|
[
|
||||||
|
(command_literal)
|
||||||
|
(prefixed_command_literal)
|
||||||
|
] @injection.content
|
||||||
|
(#set! injection.language "sh"))
|
||||||
|
|
||||||
(
|
(
|
||||||
(prefixed_string_literal
|
(prefixed_string_literal
|
||||||
prefix: (identifier) @function.macro) @injection.content
|
prefix: (identifier) @function.macro) @injection.content
|
||||||
(#eq? @function.macro "re")
|
(#eq? @function.macro "r")
|
||||||
(#set! injection.language "regex"))
|
(#set! injection.language "regex"))
|
||||||
|
|
||||||
(
|
(
|
||||||
|
@ -2,43 +2,100 @@
|
|||||||
; Definitions
|
; Definitions
|
||||||
; -----------
|
; -----------
|
||||||
|
|
||||||
; Imports
|
; Variables
|
||||||
(import_statement
|
(assignment
|
||||||
(identifier) @local.definition)
|
(identifier) @local.definition)
|
||||||
|
|
||||||
|
(assignment
|
||||||
|
(tuple_expression
|
||||||
|
(identifier) @local.definition))
|
||||||
|
|
||||||
; Constants
|
; Constants
|
||||||
(const_statement
|
(const_statement
|
||||||
(variable_declaration
|
(assignment
|
||||||
. (identifier) @local.definition))
|
. (identifier) @local.definition))
|
||||||
|
|
||||||
|
; let/const bindings
|
||||||
|
(let_binding
|
||||||
|
(identifier) @local.definition)
|
||||||
|
|
||||||
|
(let_binding
|
||||||
|
(tuple_expression
|
||||||
|
(identifier) @local.definition))
|
||||||
|
|
||||||
|
; For bindings
|
||||||
|
(for_binding
|
||||||
|
(identifier) @local.definition)
|
||||||
|
|
||||||
|
(for_binding
|
||||||
|
(tuple_expression
|
||||||
|
(identifier) @local.definition))
|
||||||
|
|
||||||
|
; Types
|
||||||
|
(struct_definition
|
||||||
|
name: (identifier) @local.definition)
|
||||||
|
|
||||||
|
(abstract_definition
|
||||||
|
name: (identifier) @local.definition)
|
||||||
|
|
||||||
|
(abstract_definition
|
||||||
|
name: (identifier) @local.definition)
|
||||||
|
|
||||||
|
(type_parameter_list
|
||||||
|
(identifier) @local.definition)
|
||||||
|
|
||||||
|
; Module imports
|
||||||
|
(import_statement
|
||||||
|
(identifier) @local.definition)
|
||||||
|
|
||||||
; Parameters
|
; Parameters
|
||||||
(parameter_list
|
(parameter_list
|
||||||
(identifier) @local.definition)
|
(identifier) @local.definition)
|
||||||
|
|
||||||
(typed_parameter
|
(optional_parameter
|
||||||
. (identifier) @local.definition)
|
.
|
||||||
|
|
||||||
(optional_parameter .
|
|
||||||
(identifier) @local.definition)
|
(identifier) @local.definition)
|
||||||
|
|
||||||
(slurp_parameter
|
(slurp_parameter
|
||||||
(identifier) @local.definition)
|
(identifier) @local.definition)
|
||||||
|
|
||||||
|
(typed_parameter
|
||||||
|
parameter: (identifier) @local.definition
|
||||||
|
(_))
|
||||||
|
|
||||||
|
; Single parameter arrow function
|
||||||
(function_expression
|
(function_expression
|
||||||
. (identifier) @local.definition)
|
.
|
||||||
|
(identifier) @local.definition)
|
||||||
|
|
||||||
; ------
|
; Function/macro definitions
|
||||||
; Scopes
|
(function_definition
|
||||||
; ------
|
name: (identifier) @local.definition) @local.scope
|
||||||
|
|
||||||
[
|
(short_function_definition
|
||||||
(function_definition)
|
name: (identifier) @local.definition) @local.scope
|
||||||
(short_function_definition)
|
|
||||||
(macro_definition)
|
(macro_definition
|
||||||
] @local.scope
|
name: (identifier) @local.definition) @local.scope
|
||||||
|
|
||||||
; ----------
|
; ----------
|
||||||
; References
|
; References
|
||||||
; ----------
|
; ----------
|
||||||
|
|
||||||
(identifier) @local.reference
|
(identifier) @local.reference
|
||||||
|
|
||||||
|
; ------
|
||||||
|
; Scopes
|
||||||
|
; ------
|
||||||
|
|
||||||
|
[
|
||||||
|
(for_statement)
|
||||||
|
(while_statement)
|
||||||
|
(try_statement)
|
||||||
|
(catch_clause)
|
||||||
|
(finally_clause)
|
||||||
|
(let_statement)
|
||||||
|
(quote_statement)
|
||||||
|
(do_clause)
|
||||||
|
] @local.scope
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
; Identifiers
|
; Identifiers
|
||||||
|
|
||||||
|
[(NAME) (SYMBOLNAME)] @variable
|
||||||
|
|
||||||
(section
|
(section
|
||||||
.
|
.
|
||||||
(NAME) @namespace)
|
(NAME) @namespace)
|
||||||
|
|
||||||
[(NAME) (SYMBOLNAME)] @variable
|
|
||||||
|
|
||||||
; Operators
|
; Operators
|
||||||
|
|
||||||
[
|
[
|
||||||
|
@ -23,12 +23,16 @@
|
|||||||
(borrow_expression "&" @keyword.storage.modifier.ref)
|
(borrow_expression "&" @keyword.storage.modifier.ref)
|
||||||
(borrow_expression "&mut" @keyword.storage.modifier.mut)
|
(borrow_expression "&mut" @keyword.storage.modifier.mut)
|
||||||
|
|
||||||
|
(identifier) @variable
|
||||||
|
|
||||||
(constant_identifier) @constant
|
(constant_identifier) @constant
|
||||||
((identifier) @constant
|
((identifier) @constant
|
||||||
(#match? @constant "^[A-Z][A-Z\\d_]*$"))
|
(#match? @constant "^[A-Z][A-Z\\d_]*$"))
|
||||||
|
|
||||||
(function_identifier) @function
|
(function_identifier) @function
|
||||||
|
|
||||||
|
(primitive_type) @type.builtin
|
||||||
|
|
||||||
(struct_identifier) @type
|
(struct_identifier) @type
|
||||||
(pack_expression
|
(pack_expression
|
||||||
access: (module_access
|
access: (module_access
|
||||||
@ -152,6 +156,3 @@
|
|||||||
"with"
|
"with"
|
||||||
] @keyword
|
] @keyword
|
||||||
|
|
||||||
(primitive_type) @type.buildin
|
|
||||||
|
|
||||||
(identifier) @variable
|
|
||||||
|
@ -17,6 +17,18 @@
|
|||||||
"with"
|
"with"
|
||||||
] @keyword
|
] @keyword
|
||||||
|
|
||||||
|
(variable_expression name: (identifier) @variable)
|
||||||
|
|
||||||
|
(select_expression
|
||||||
|
attrpath: (attrpath attr: (identifier)) @variable.other.member)
|
||||||
|
|
||||||
|
(apply_expression
|
||||||
|
function: [
|
||||||
|
(variable_expression name: (identifier) @function)
|
||||||
|
(select_expression
|
||||||
|
attrpath: (attrpath
|
||||||
|
attr: (identifier) @function .))])
|
||||||
|
|
||||||
((identifier) @variable.builtin
|
((identifier) @variable.builtin
|
||||||
(#match? @variable.builtin "^(__currentSystem|__currentTime|__nixPath|__nixVersion|__storeDir|builtins)$")
|
(#match? @variable.builtin "^(__currentSystem|__currentTime|__nixPath|__nixVersion|__storeDir|builtins)$")
|
||||||
(#is-not? local))
|
(#is-not? local))
|
||||||
@ -59,28 +71,16 @@
|
|||||||
name: (identifier) @variable.parameter
|
name: (identifier) @variable.parameter
|
||||||
"?"? @punctuation.delimiter)
|
"?"? @punctuation.delimiter)
|
||||||
|
|
||||||
(select_expression
|
|
||||||
attrpath: (attrpath attr: (identifier)) @variable.other.member)
|
|
||||||
|
|
||||||
(interpolation
|
(interpolation
|
||||||
"${" @punctuation.special
|
"${" @punctuation.special
|
||||||
"}" @punctuation.special) @embedded
|
"}" @punctuation.special) @embedded
|
||||||
|
|
||||||
(apply_expression
|
|
||||||
function: [
|
|
||||||
(variable_expression name: (identifier) @function)
|
|
||||||
(select_expression
|
|
||||||
attrpath: (attrpath
|
|
||||||
attr: (identifier) @function .))])
|
|
||||||
|
|
||||||
(unary_expression
|
(unary_expression
|
||||||
operator: _ @operator)
|
operator: _ @operator)
|
||||||
|
|
||||||
(binary_expression
|
(binary_expression
|
||||||
operator: _ @operator)
|
operator: _ @operator)
|
||||||
|
|
||||||
(variable_expression name: (identifier) @variable)
|
|
||||||
|
|
||||||
(binding
|
(binding
|
||||||
attrpath: (attrpath attr: (identifier)) @variable.other.member)
|
attrpath: (attrpath attr: (identifier)) @variable.other.member)
|
||||||
|
|
||||||
|
@ -3,13 +3,14 @@
|
|||||||
(boolean) @constant.builtin.boolean
|
(boolean) @constant.builtin.boolean
|
||||||
(include_path) @string.special.path
|
(include_path) @string.special.path
|
||||||
|
|
||||||
|
(identifier) @variable
|
||||||
|
|
||||||
(parameters_declaration (identifier) @variable.parameter)
|
(parameters_declaration (identifier) @variable.parameter)
|
||||||
(function_declaration name: (identifier) @function)
|
(function_declaration name: (identifier) @function)
|
||||||
|
|
||||||
(function_call function: (identifier) @function)
|
(function_call function: (identifier) @function)
|
||||||
(module_call name: (identifier) @function)
|
(module_call name: (identifier) @function)
|
||||||
|
|
||||||
(identifier) @variable
|
|
||||||
(special_variable) @variable.builtin
|
(special_variable) @variable.builtin
|
||||||
|
|
||||||
[
|
[
|
||||||
|
@ -1,19 +1,3 @@
|
|||||||
; ----------------------------------------------------------------------------
|
|
||||||
; Record fields would need to come before literal strings in order to be captured correctly
|
|
||||||
|
|
||||||
(record_accessor
|
|
||||||
field: [ (variable)
|
|
||||||
(string)
|
|
||||||
(triple_quote_string)
|
|
||||||
] @variable.other.member)
|
|
||||||
|
|
||||||
(exp_record_access
|
|
||||||
field: [ (variable)
|
|
||||||
(string)
|
|
||||||
(triple_quote_string)
|
|
||||||
] @variable.other.member)
|
|
||||||
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; Literals and comments
|
; Literals and comments
|
||||||
|
|
||||||
@ -21,6 +5,7 @@
|
|||||||
(exp_negation) @constant.numeric.integer
|
(exp_negation) @constant.numeric.integer
|
||||||
(exp_literal (number)) @constant.numeric.float
|
(exp_literal (number)) @constant.numeric.float
|
||||||
(char) @constant.character
|
(char) @constant.character
|
||||||
|
|
||||||
[
|
[
|
||||||
(string)
|
(string)
|
||||||
(triple_quote_string)
|
(triple_quote_string)
|
||||||
@ -28,7 +13,6 @@
|
|||||||
|
|
||||||
(comment) @comment
|
(comment) @comment
|
||||||
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; Punctuation
|
; Punctuation
|
||||||
|
|
||||||
@ -41,18 +25,19 @@
|
|||||||
"]"
|
"]"
|
||||||
] @punctuation.bracket
|
] @punctuation.bracket
|
||||||
|
|
||||||
[
|
(comma) @punctuation.delimiter
|
||||||
(comma)
|
|
||||||
";"
|
|
||||||
] @punctuation.delimiter
|
|
||||||
|
|
||||||
|
; ----------------------------------------------------------------------------
|
||||||
|
; Types
|
||||||
|
|
||||||
|
(type) @type
|
||||||
|
|
||||||
|
(constructor) @constructor
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; Keywords, operators, includes
|
; Keywords, operators, includes
|
||||||
|
|
||||||
; This needs to come before the other "else" in
|
(module) @namespace
|
||||||
; order to be highlighted correctly
|
|
||||||
(class_instance "else" @keyword)
|
|
||||||
|
|
||||||
[
|
[
|
||||||
"if"
|
"if"
|
||||||
@ -95,7 +80,6 @@
|
|||||||
] @operator
|
] @operator
|
||||||
|
|
||||||
(qualified_module (module) @constructor)
|
(qualified_module (module) @constructor)
|
||||||
(module) @namespace
|
|
||||||
(qualified_type (module) @namespace)
|
(qualified_type (module) @namespace)
|
||||||
(qualified_variable (module) @namespace)
|
(qualified_variable (module) @namespace)
|
||||||
(import (module) @namespace)
|
(import (module) @namespace)
|
||||||
@ -122,6 +106,11 @@
|
|||||||
"infixr"
|
"infixr"
|
||||||
] @keyword
|
] @keyword
|
||||||
|
|
||||||
|
; NOTE
|
||||||
|
; Needs to come after the other `else` in
|
||||||
|
; order to be highlighted correctly
|
||||||
|
(class_instance "else" @keyword)
|
||||||
|
|
||||||
(type_role_declaration
|
(type_role_declaration
|
||||||
"role" @keyword
|
"role" @keyword
|
||||||
role: (type_role) @keyword)
|
role: (type_role) @keyword)
|
||||||
@ -131,10 +120,27 @@
|
|||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
; Functions and variables
|
; Functions and variables
|
||||||
|
|
||||||
|
(variable) @variable
|
||||||
|
|
||||||
(row_field (field_name) @variable.other.member)
|
(row_field (field_name) @variable.other.member)
|
||||||
(record_field (field_name) @variable.other.member)
|
(record_field (field_name) @variable.other.member)
|
||||||
(record_field (field_pun) @variable.other.member)
|
(record_field (field_pun) @variable.other.member)
|
||||||
|
|
||||||
|
; NOTE
|
||||||
|
; Record fields must come after literal strings and
|
||||||
|
; plain variables in order to be highlighted correctly
|
||||||
|
(record_accessor
|
||||||
|
field: [ (variable)
|
||||||
|
(string)
|
||||||
|
(triple_quote_string)
|
||||||
|
] @variable.other.member)
|
||||||
|
|
||||||
|
(exp_record_access
|
||||||
|
field: [ (variable)
|
||||||
|
(string)
|
||||||
|
(triple_quote_string)
|
||||||
|
] @variable.other.member)
|
||||||
|
|
||||||
(signature name: (variable) @type)
|
(signature name: (variable) @type)
|
||||||
(function name: (variable) @function)
|
(function name: (variable) @function)
|
||||||
(class_instance (instance_name) @function)
|
(class_instance (instance_name) @function)
|
||||||
@ -151,14 +157,5 @@
|
|||||||
(exp_ticked (exp_name (variable) @operator))
|
(exp_ticked (exp_name (variable) @operator))
|
||||||
(exp_ticked (exp_name (qualified_variable (variable) @operator)))
|
(exp_ticked (exp_name (qualified_variable (variable) @operator)))
|
||||||
|
|
||||||
(variable) @variable
|
(patterns (pat_as "@" @namespace))
|
||||||
|
|
||||||
("@" @namespace) ; "as" pattern operator, e.g. x@Constructor
|
|
||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
|
||||||
; Types
|
|
||||||
|
|
||||||
(type) @type
|
|
||||||
|
|
||||||
(constructor) @constructor
|
|
||||||
|
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
; Structs
|
||||||
|
;------------
|
||||||
|
|
||||||
|
(enum_variant) @type.enum.variant
|
||||||
|
(struct_entry (_) @variable.other.member ":")
|
||||||
|
(struct_name (identifier)) @type
|
||||||
|
(unit_struct) @type.builtin
|
||||||
|
|
||||||
; Literals
|
; Literals
|
||||||
;------------
|
;------------
|
||||||
|
|
||||||
@ -7,16 +15,6 @@
|
|||||||
(float) @constant.numeric.float
|
(float) @constant.numeric.float
|
||||||
(char) @constant.character
|
(char) @constant.character
|
||||||
|
|
||||||
; Structs
|
|
||||||
;------------
|
|
||||||
|
|
||||||
(enum_variant) @type.enum.variant
|
|
||||||
(struct_entry (_) @variable.other.member ":")
|
|
||||||
(struct_name (identifier)) @type
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; Comments
|
; Comments
|
||||||
;------------
|
;------------
|
||||||
|
|
||||||
@ -37,6 +35,7 @@
|
|||||||
"{" @punctuation.bracket
|
"{" @punctuation.bracket
|
||||||
"}" @punctuation.bracket
|
"}" @punctuation.bracket
|
||||||
|
|
||||||
|
"-" @operator
|
||||||
|
|
||||||
; Special
|
; Special
|
||||||
;------------
|
;------------
|
||||||
|
@ -10,32 +10,28 @@
|
|||||||
(block_comment) @comment.block
|
(block_comment) @comment.block
|
||||||
(directive) @keyword.directive
|
(directive) @keyword.directive
|
||||||
|
|
||||||
; operators
|
; variables
|
||||||
|
|
||||||
((symbol) @operator
|
((symbol) @variable.builtin
|
||||||
(#match? @operator "^(\\+|-|\\*|/|=|>|<|>=|<=)$"))
|
(#eq? @variable.builtin "..."))
|
||||||
|
|
||||||
; keywords
|
((symbol) @variable.builtin
|
||||||
|
(#eq? @variable.builtin "."))
|
||||||
|
|
||||||
|
(symbol) @variable
|
||||||
|
|
||||||
|
["(" ")" "[" "]" "{" "}"] @punctuation.bracket
|
||||||
|
|
||||||
|
(quote "'") @operator
|
||||||
|
(unquote_splicing ",@") @operator
|
||||||
|
(unquote ",") @operator
|
||||||
|
(quasiquote "`") @operator
|
||||||
|
|
||||||
|
; procedure
|
||||||
|
|
||||||
(list
|
(list
|
||||||
.
|
.
|
||||||
((symbol) @keyword.conditional
|
(symbol) @function)
|
||||||
(#match? @keyword.conditional "^(if|cond|case|when|unless)$"
|
|
||||||
)))
|
|
||||||
|
|
||||||
(list
|
|
||||||
.
|
|
||||||
(symbol) @keyword
|
|
||||||
(#match? @keyword
|
|
||||||
"^(define-syntax|let\\*|lambda|λ|case|=>|quote-splicing|unquote-splicing|set!|let|letrec|letrec-syntax|let-values|let\\*-values|do|else|define|cond|syntax-rules|unquote|begin|quote|let-syntax|and|if|quasiquote|letrec|delay|or|when|unless|identifier-syntax|assert|library|export|import|rename|only|except|prefix)$"
|
|
||||||
))
|
|
||||||
|
|
||||||
(list
|
|
||||||
.
|
|
||||||
(symbol) @function.builtin
|
|
||||||
(#match? @function.builtin
|
|
||||||
"^(caar|cadr|call-with-input-file|call-with-output-file|cdar|cddr|list|open-input-file|open-output-file|with-input-from-file|with-output-to-file|\\*|\\+|-|/|<|<=|=|>|>=|abs|acos|angle|append|apply|asin|assoc|assq|assv|atan|boolean\\?|caaaar|caaadr|caaar|caadar|caaddr|caadr|cadaar|cadadr|cadar|caddar|cadddr|caddr|call-with-current-continuation|call-with-values|car|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cdr|ceiling|char->integer|char-alphabetic\\?|char-ci<=\\?|char-ci<\\?|char-ci=\\?|char-ci>=\\?|char-ci>\\?|char-downcase|char-lower-case\\?|char-numeric\\?|char-ready\\?|char-upcase|char-upper-case\\?|char-whitespace\\?|char<=\\?|char<\\?|char=\\?|char>=\\?|char>\\?|char\\?|close-input-port|close-output-port|complex\\?|cons|cos|current-error-port|current-input-port|current-output-port|denominator|display|dynamic-wind|eof-object\\?|eq\\?|equal\\?|eqv\\?|eval|even\\?|exact->inexact|exact\\?|exp|expt|floor|flush-output|for-each|force|gcd|imag-part|inexact->exact|inexact\\?|input-port\\?|integer->char|integer\\?|interaction-environment|lcm|length|list->string|list->vector|list-ref|list-tail|list\\?|load|log|magnitude|make-polar|make-rectangular|make-string|make-vector|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null-environment|null\\?|number->string|number\\?|numerator|odd\\?|output-port\\?|pair\\?|peek-char|positive\\?|procedure\\?|quotient|rational\\?|rationalize|read|read-char|real-part|real\\?|remainder|reverse|round|scheme-report-environment|set-car!|set-cdr!|sin|sqrt|string|string->list|string->number|string->symbol|string-append|string-ci<=\\?|string-ci<\\?|string-ci=\\?|string-ci>=\\?|string-ci>\\?|string-copy|string-fill!|string-length|string-ref|string-set!|string<=\\?|string<\\?|string=\\?|string>=\\?|string>\\?|string\\?|substring|symbol->string|symbol\\?|tan|transcript-off|transcript-on|truncate|values|vector|vector->list|vector-fill!|vector-length|vector-ref|vector-set!|vector\\?|write|write-char|zero\\?)$"
|
|
||||||
))
|
|
||||||
|
|
||||||
; special forms
|
; special forms
|
||||||
|
|
||||||
@ -62,12 +58,10 @@
|
|||||||
(#match? @_f
|
(#match? @_f
|
||||||
"^(let|let\\*|let-syntax|let-values|let\\*-values|letrec|letrec\\*|letrec-syntax)$"))
|
"^(let|let\\*|let-syntax|let-values|let\\*-values|letrec|letrec\\*|letrec-syntax)$"))
|
||||||
|
|
||||||
; quote
|
; operators
|
||||||
|
|
||||||
(list
|
((symbol) @operator
|
||||||
.
|
(#match? @operator "^(\\+|-|\\*|/|=|>|<|>=|<=)$"))
|
||||||
(symbol) @_f
|
|
||||||
(#eq? @_f "quote")) @string.symbol
|
|
||||||
|
|
||||||
; library
|
; library
|
||||||
|
|
||||||
@ -79,26 +73,31 @@
|
|||||||
|
|
||||||
(#eq? @_lib "library"))
|
(#eq? @_lib "library"))
|
||||||
|
|
||||||
; procedure
|
; quote
|
||||||
|
|
||||||
(list
|
(list
|
||||||
.
|
.
|
||||||
(symbol) @function)
|
(symbol) @_f
|
||||||
|
(#eq? @_f "quote")) @string.symbol
|
||||||
|
|
||||||
;; variables
|
; keywords
|
||||||
|
|
||||||
((symbol) @variable.builtin
|
(list
|
||||||
(#eq? @variable.builtin "..."))
|
.
|
||||||
|
((symbol) @keyword.conditional
|
||||||
|
(#match? @keyword.conditional "^(if|cond|case|when|unless)$"
|
||||||
|
)))
|
||||||
|
|
||||||
((symbol) @variable.builtin
|
(list
|
||||||
(#eq? @variable.builtin "."))
|
.
|
||||||
|
(symbol) @keyword
|
||||||
(symbol) @variable
|
(#match? @keyword
|
||||||
|
"^(define-syntax|let\\*|lambda|λ|case|=>|quote-splicing|unquote-splicing|set!|let|letrec|letrec-syntax|let-values|let\\*-values|do|else|define|cond|syntax-rules|unquote|begin|quote|let-syntax|and|if|quasiquote|letrec|delay|or|when|unless|identifier-syntax|assert|library|export|import|rename|only|except|prefix)$"
|
||||||
["(" ")" "[" "]" "{" "}"] @punctuation.bracket
|
))
|
||||||
|
|
||||||
(quote "'") @operator
|
|
||||||
(unquote_splicing ",@") @operator
|
|
||||||
(unquote ",") @operator
|
|
||||||
(quasiquote "`") @operator
|
|
||||||
|
|
||||||
|
(list
|
||||||
|
.
|
||||||
|
(symbol) @function.builtin
|
||||||
|
(#match? @function.builtin
|
||||||
|
"^(caar|cadr|call-with-input-file|call-with-output-file|cdar|cddr|list|open-input-file|open-output-file|with-input-from-file|with-output-to-file|\\*|\\+|-|/|<|<=|=|>|>=|abs|acos|angle|append|apply|asin|assoc|assq|assv|atan|boolean\\?|caaaar|caaadr|caaar|caadar|caaddr|caadr|cadaar|cadadr|cadar|caddar|cadddr|caddr|call-with-current-continuation|call-with-values|car|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cdr|ceiling|char->integer|char-alphabetic\\?|char-ci<=\\?|char-ci<\\?|char-ci=\\?|char-ci>=\\?|char-ci>\\?|char-downcase|char-lower-case\\?|char-numeric\\?|char-ready\\?|char-upcase|char-upper-case\\?|char-whitespace\\?|char<=\\?|char<\\?|char=\\?|char>=\\?|char>\\?|char\\?|close-input-port|close-output-port|complex\\?|cons|cos|current-error-port|current-input-port|current-output-port|denominator|display|dynamic-wind|eof-object\\?|eq\\?|equal\\?|eqv\\?|eval|even\\?|exact->inexact|exact\\?|exp|expt|floor|flush-output|for-each|force|gcd|imag-part|inexact->exact|inexact\\?|input-port\\?|integer->char|integer\\?|interaction-environment|lcm|length|list->string|list->vector|list-ref|list-tail|list\\?|load|log|magnitude|make-polar|make-rectangular|make-string|make-vector|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null-environment|null\\?|number->string|number\\?|numerator|odd\\?|output-port\\?|pair\\?|peek-char|positive\\?|procedure\\?|quotient|rational\\?|rationalize|read|read-char|real-part|real\\?|remainder|reverse|round|scheme-report-environment|set-car!|set-cdr!|sin|sqrt|string|string->list|string->number|string->symbol|string-append|string-ci<=\\?|string-ci<\\?|string-ci=\\?|string-ci>=\\?|string-ci>\\?|string-copy|string-fill!|string-length|string-ref|string-set!|string<=\\?|string<\\?|string=\\?|string>=\\?|string>\\?|string\\?|substring|symbol->string|symbol\\?|tan|transcript-off|transcript-on|truncate|values|vector|vector->list|vector-fill!|vector-length|vector-ref|vector-set!|vector\\?|write|write-char|zero\\?)$"
|
||||||
|
))
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
(syscall) @function
|
(syscall) @function.builtin
|
||||||
(integer) @constant.numeric
|
(integer) @constant.numeric
|
||||||
(pointer) @constant.numeric
|
(pointer) @constant.numeric
|
||||||
(value) @label
|
(value) @label
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
(float) @constant.numeric.float
|
(float) @constant.numeric.float
|
||||||
(integer) @constant.numeric.integer
|
(integer) @constant.numeric.integer
|
||||||
(comment) @comment
|
(comment) @comment
|
||||||
[(path) (string) (json)] @string.special.path
|
[(string) (json)] @string.special.path
|
||||||
|
(path) @string.special.path
|
||||||
(time) @string.special.symbol
|
(time) @string.special.symbol
|
||||||
(boolean) @constant.builtin.boolean
|
(boolean) @constant.builtin.boolean
|
||||||
|
@ -1,13 +1,3 @@
|
|||||||
(block_mapping_pair
|
|
||||||
key: (flow_node [(double_quote_scalar) (single_quote_scalar)] @variable.other.member))
|
|
||||||
(block_mapping_pair
|
|
||||||
key: (flow_node (plain_scalar (string_scalar) @variable.other.member)))
|
|
||||||
|
|
||||||
(flow_mapping
|
|
||||||
(_ key: (flow_node [(double_quote_scalar) (single_quote_scalar)] @variable.other.member)))
|
|
||||||
(flow_mapping
|
|
||||||
(_ key: (flow_node (plain_scalar (string_scalar) @variable.other.member))))
|
|
||||||
|
|
||||||
(boolean_scalar) @constant.builtin.boolean
|
(boolean_scalar) @constant.builtin.boolean
|
||||||
(null_scalar) @constant.builtin
|
(null_scalar) @constant.builtin
|
||||||
(double_quote_scalar) @string
|
(double_quote_scalar) @string
|
||||||
@ -24,6 +14,16 @@
|
|||||||
(yaml_directive) @keyword
|
(yaml_directive) @keyword
|
||||||
(ERROR) @error
|
(ERROR) @error
|
||||||
|
|
||||||
|
(block_mapping_pair
|
||||||
|
key: (flow_node [(double_quote_scalar) (single_quote_scalar)] @variable.other.member))
|
||||||
|
(block_mapping_pair
|
||||||
|
key: (flow_node (plain_scalar (string_scalar) @variable.other.member)))
|
||||||
|
|
||||||
|
(flow_mapping
|
||||||
|
(_ key: (flow_node [(double_quote_scalar) (single_quote_scalar)] @variable.other.member)))
|
||||||
|
(flow_mapping
|
||||||
|
(_ key: (flow_node (plain_scalar (string_scalar) @variable.other.member))))
|
||||||
|
|
||||||
[
|
[
|
||||||
","
|
","
|
||||||
"-"
|
"-"
|
||||||
|
@ -7,6 +7,18 @@
|
|||||||
(line_comment)
|
(line_comment)
|
||||||
] @comment.line
|
] @comment.line
|
||||||
|
|
||||||
|
[
|
||||||
|
variable: (IDENTIFIER)
|
||||||
|
variable_type_function: (IDENTIFIER)
|
||||||
|
] @variable
|
||||||
|
|
||||||
|
parameter: (IDENTIFIER) @variable.parameter
|
||||||
|
|
||||||
|
[
|
||||||
|
field_member: (IDENTIFIER)
|
||||||
|
field_access: (IDENTIFIER)
|
||||||
|
] @variable.other.member
|
||||||
|
|
||||||
;; assume TitleCase is a type
|
;; assume TitleCase is a type
|
||||||
(
|
(
|
||||||
[
|
[
|
||||||
@ -36,6 +48,13 @@
|
|||||||
(#match? @constant "^[A-Z][A-Z_0-9]+$")
|
(#match? @constant "^[A-Z][A-Z_0-9]+$")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
[
|
||||||
|
function_call: (IDENTIFIER)
|
||||||
|
function: (IDENTIFIER)
|
||||||
|
] @function
|
||||||
|
|
||||||
|
exception: "!" @keyword.control.exception
|
||||||
|
|
||||||
;; _
|
;; _
|
||||||
(
|
(
|
||||||
(IDENTIFIER) @variable.builtin
|
(IDENTIFIER) @variable.builtin
|
||||||
@ -45,25 +64,6 @@
|
|||||||
;; C Pointers [*c]T
|
;; C Pointers [*c]T
|
||||||
(PtrTypeStart "c" @variable.builtin)
|
(PtrTypeStart "c" @variable.builtin)
|
||||||
|
|
||||||
[
|
|
||||||
variable: (IDENTIFIER)
|
|
||||||
variable_type_function: (IDENTIFIER)
|
|
||||||
] @variable
|
|
||||||
|
|
||||||
parameter: (IDENTIFIER) @variable.parameter
|
|
||||||
|
|
||||||
[
|
|
||||||
field_member: (IDENTIFIER)
|
|
||||||
field_access: (IDENTIFIER)
|
|
||||||
] @variable.other.member
|
|
||||||
|
|
||||||
[
|
|
||||||
function_call: (IDENTIFIER)
|
|
||||||
function: (IDENTIFIER)
|
|
||||||
] @function
|
|
||||||
|
|
||||||
exception: "!" @keyword.control.exception
|
|
||||||
|
|
||||||
field_constant: (IDENTIFIER) @constant
|
field_constant: (IDENTIFIER) @constant
|
||||||
|
|
||||||
(BUILTINIDENTIFIER) @function.builtin
|
(BUILTINIDENTIFIER) @function.builtin
|
||||||
|
Loading…
Reference in New Issue
Block a user