1
0
Fork 0

nvim: kcl treesitter goodies

This commit is contained in:
Vladimír Dudr 2025-04-15 07:55:55 +02:00
parent 2d102dadc5
commit db9624783a
2 changed files with 183 additions and 0 deletions

View file

@ -0,0 +1,14 @@
[
(config_expr)
(list_expr)
(config_entry)
(schema_stmt)
(assign_stmt)
] @indent.begin
[
"}"
"]"
")"
] @indent.branch

View file

@ -0,0 +1,169 @@
(identifier) @variable
( config_entry (identifier) @field (_))
( config_entry (selector_expr (identifier)) @field (_))
; Reset highlighting in string interpolations
(interpolation) @none
(import_stmt
(dotted_name
(identifier) @namespace))
(import_stmt
(dotted_name
(identifier) @namespace)
(identifier) @namespace)
(basic_type) @type
(schema_type
(dotted_name
(identifier) @type))
(schema_type
(dotted_name
(identifier) @namespace
(identifier) @type))
(schema_expr
(identifier) @type)
(protocol_stmt
(identifier) @type)
(rule_stmt
(identifier) @type)
(schema_stmt
(identifier) @type)
(lambda_expr
(typed_parameter (identifier) @parameter))
(lambda_expr
(identifier) @parameter)
(selector_expr
(select_suffix
(identifier) @property))
(comment) @comment
(string) @string
(escape_sequence) @string.escape
(schema_stmt
body: (block
.
(string
(string_content) @string.documentation)))
(decorator
(identifier) @attribute)
(call_expr
function: (identifier) @function)
(call_expr
function: (selector_expr
(select_suffix
(identifier) @function)))
[
(integer)
(float)
] @number
[
(true)
(false)
(none)
(undefined)
] @constant.builtin
[
"all"
"any"
"assert"
"as"
"check"
"elif"
"else"
"filter"
"for"
"if"
"import"
"lambda"
"map"
"mixin"
"protocol"
"rule"
"schema"
"type"
] @keyword
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket
(interpolation
"${" @punctuation.special
"}" @punctuation.special)
[
"+"
"-"
"*"
"**"
"/"
"//"
"%"
"<<"
">>"
"&"
"|"
"^"
"<"
">"
"~"
"<="
">="
"=="
"!="
"@"
"and"
"or"
"not"
"in"
"is"
"="
":"
] @operator
; second argument is a regex in all regex functions with at least two arguments
(call_expr
function: (selector_expr
(identifier) @_regex)
arguments: (argument_list
(_)
.
(string
(string_content) @string.regexp))
(#eq? @_regex "regex"))
; first argument is a regex in 'regex.compile' function
(call_expr
.
function: (selector_expr
(identifier) @_regex
(select_suffix
(identifier) @_fn (#eq? @_fn "compile")))
arguments: (argument_list
(string
(string_content) @string.regexp))
(#eq? @_regex "regex"))