Adjust highlighting for rust.

pull/11/head
Blaž Hrastnik 4 years ago
parent 31d41080ed
commit 6e03019a2c

@ -1,5 +1,4 @@
- Refactor tree-sitter-highlight to work like the atom one, recomputing partial tree updates. - Refactor tree-sitter-highlight to work like the atom one, recomputing partial tree updates.
- syntax errors highlight query
------ ------
@ -19,15 +18,11 @@
- [ ] document.on_type provider triggers - [ ] document.on_type provider triggers
- [ ] completion isIncomplete support - [ ] completion isIncomplete support
- [ ] extract indentation calculation queries so we can support other languages.
1 1
- [ ] :format/:fmt that formats the buffer
- [ ] respect view fullscreen flag - [ ] respect view fullscreen flag
- [ ] Implement marks (superset of Selection/Range) - [ ] Implement marks (superset of Selection/Range)
- [ ] nixos packaging - [ ] nixos packaging
- [ ] CI binary builds
- [ ] = for auto indent line/selection - [ ] = for auto indent line/selection
- [ ] :x for closing buffers - [ ] :x for closing buffers

@ -1,10 +1,28 @@
; Identifier conventions ; Identifier conventions
; Assume all-caps names are constants ; Assume all-caps names are constants
((identifier) @constant ((identifier) @constant
(#match? @constant "^[A-Z][A-Z\\d_]+$'")) (#match? @constant "^[A-Z][A-Z\\d_]+$'"))
; Assume other uppercase names are enum constructors
((identifier) @constructor
(#match? @constructor "^[A-Z]"))
; Assume that uppercase names in paths are types ; Assume that uppercase names in paths are types
(mod_item
name: (identifier) @namespace)
(scoped_identifier
path: (identifier) @namespace)
(scoped_identifier
(scoped_identifier
name: (identifier) @namespace))
(scoped_type_identifier
path: (identifier) @namespace)
(scoped_type_identifier
(scoped_identifier
name: (identifier) @namespace))
((scoped_identifier ((scoped_identifier
path: (identifier) @type) path: (identifier) @type)
(#match? @type "^[A-Z]")) (#match? @type "^[A-Z]"))
@ -13,9 +31,15 @@
name: (identifier) @type)) name: (identifier) @type))
(#match? @type "^[A-Z]")) (#match? @type "^[A-Z]"))
; Assume other uppercase names are enum constructors ; Namespaces
((identifier) @constructor
(#match? @constructor "^[A-Z]")) (crate) @namespace
(scoped_use_list
path: (identifier) @namespace)
(scoped_use_list
path: (scoped_identifier
(identifier) @namespace))
(use_list (scoped_identifier (identifier) @namespace . (_)))
; Function calls ; Function calls
@ -38,9 +62,19 @@
function: (field_expression function: (field_expression
field: (field_identifier) @function.method)) field: (field_identifier) @function.method))
; (macro_invocation
; macro: (identifier) @function.macro
; "!" @function.macro)
(macro_invocation
macro: (identifier) @function.macro)
(macro_invocation (macro_invocation
macro: (identifier) @function.macro macro: (scoped_identifier
"!" @function.macro) (identifier) @function.macro .))
; (metavariable) @variable
(metavariable) @function.macro
"$" @function.macro
; Function definitions ; Function definitions
@ -73,6 +107,7 @@
";" @punctuation.delimiter ";" @punctuation.delimiter
(parameter (identifier) @variable.parameter) (parameter (identifier) @variable.parameter)
(closure_parameters (_) @variable.parameter)
(lifetime (identifier) @label) (lifetime (identifier) @label)
@ -114,9 +149,9 @@
(scoped_use_list (self) @keyword) (scoped_use_list (self) @keyword)
(scoped_identifier (self) @keyword) (scoped_identifier (self) @keyword)
(super) @keyword (super) @keyword
"as" @keyword
(self) @variable.builtin (self) @variable.builtin
(metavariable) @variable
[ [
(char_literal) (char_literal)
@ -133,7 +168,44 @@
(attribute_item) @attribute (attribute_item) @attribute
(inner_attribute_item) @attribute (inner_attribute_item) @attribute
"as" @operator [
"*" @operator "*"
"&" @operator "'"
"'" @operator "->"
"=>"
"<="
"="
"=="
"!"
"!="
"%"
"%="
"&"
"&="
"&&"
"|"
"|="
"||"
"^"
"^="
"*"
"*="
"-"
"-="
"+"
"+="
"/"
"/="
">"
"<"
">="
">>"
"<<"
">>="
"@"
".."
"..="
"'"
] @operator
"?" @special

@ -1,9 +1,11 @@
"attribute" = "#dbbfef" # lilac "attribute" = "#dbbfef" # lilac
"keyword" = "#eccdba" # almond "keyword" = "#eccdba" # almond
"keyword.directive" = "#dbbfef" # lilac -- preprocessor comments (#if in C) "keyword.directive" = "#dbbfef" # lilac -- preprocessor comments (#if in C)
"namespace" = "#dbbfef" # lilac
"punctuation" = "#a4a0e8" # lavender "punctuation" = "#a4a0e8" # lavender
"punctuation.delimiter" = "#a4a0e8" # lavender "punctuation.delimiter" = "#a4a0e8" # lavender
"operator" = "#dbbfef" # lilac "operator" = "#dbbfef" # lilac
"special" = "#efba5d" # honey
# "property" = "#a4a0e8" # lavender # "property" = "#a4a0e8" # lavender
"property" = "#ffffff" # white "property" = "#ffffff" # white
"variable" = "#a4a0e8" # lavender "variable" = "#a4a0e8" # lavender
@ -31,7 +33,6 @@
# TODO: variable as lilac # TODO: variable as lilac
# TODO: mod/use statements as white # TODO: mod/use statements as white
# TODO: mod stuff as chamois # TODO: mod stuff as chamois
# TODO: add "(scoped_identifier) @path" for std::mem::
# #
# concat (ERROR) @syntax-error and "MISSING ;" selectors for errors # concat (ERROR) @syntax-error and "MISSING ;" selectors for errors

Loading…
Cancel
Save