mirror of https://github.com/helix-editor/helix
Adjust highlighting for rust.
parent
31d41080ed
commit
6e03019a2c
5
TODO.md
5
TODO.md
|
@ -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_invocation
|
||||||
macro: (identifier) @function.macro
|
macro: (identifier) @function.macro)
|
||||||
"!" @function.macro)
|
(macro_invocation
|
||||||
|
macro: (scoped_identifier
|
||||||
|
(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…
Reference in New Issue