1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 06:30:03 +08:00
SpaceVim/bundle/nvim-treesitter/queries/v/highlights.scm

414 lines
6.3 KiB
Scheme

;; reference https://github.com/vlang/vls
;; rev: c3e9874fa6c3b38beaa50d53aff4967403e251a4
;; Identifiers -------------------
(import_path) @namespace
(module_identifier) @variable.builtin
(identifier) @variable
(interpreted_string_literal) @string
(string_interpolation) @none
; TODO: Have different highlight to make then standout + highlight }{$ as special
; ((string_interpolation
; (identifier) @constant
; "$" @punctuation.special
; "${" @punctuation.special
; "}" @punctuation.special))
[(type_identifier) (array_type) (pointer_type)] @type
(field_identifier) @property
(builtin_type) @type.builtin
(parameter_declaration
name: (identifier) @parameter)
(const_spec
name: (identifier) @constant)
((((selector_expression field: (identifier) @property)) @_parent
(#not-has-parent? @_parent call_expression special_call_expression)))
((identifier) @variable.builtin
(#any-of? @variable.builtin "err" "macos" "linux" "windows"))
(attribute_declaration) @attribute
;; C: TODO: fixme make `C`.exten highlighted as variable.builtin
; ((binded_identifier) @content
; (#offset! @content 0 3 0 -1)
; (#match? @content "^C$"))
;; Function calls ----------------
(call_expression
function: (identifier) @function.call)
(((_
function: (selector_expression field: (identifier) @function.call)
arguments: (_) @_args)
(#not-has-type? @_args arguments_list)))
((call_expression
function: (binded_identifier name: (identifier) @function)
@function.call))
;; Function definitions ---------
(function_declaration
name: (identifier) @function)
(function_declaration
receiver: (parameter_list)
name: (identifier) @method)
((function_declaration
(binded_identifier name: (identifier) @function)
@function))
;; Keywords
[
"import"
"module"
] @include
[
"match"
"if"
"$if"
"else"
"$else"
] @conditional
[
"for" @repeat
"$for"
] @repeat
[
"as"
"in"
"!in"
"or"
"is"
"!is"
] @keyword.operator
[
"asm"
"assert"
"const"
"defer"
"enum"
"go"
"goto"
"interface"
"lock"
"mut"
"pub"
"rlock"
"struct"
"type"
"unsafe"
]
;; Either not supported or will be dropped
;"atomic"
;"break"
; "continue"
;"shared"
;"static"
;"union"
@keyword
"fn" @keyword.function
"return" @keyword.return
; "import" @include ;; note: comment out b/c of import_path @namespace
[ (true) (false) ] @boolean
;; Conditionals ----------------
[ "else" "if"] @conditional
;; Operators ----------------
[ "." "," ":" ";"] @punctuation.delimiter
[ "(" ")" "{" "}" "[" "]"] @punctuation.bracket
(array) @punctuation.bracket
[
"++"
"--"
"+"
"-"
"*"
"/"
"%"
"~"
"&"
"|"
"^"
"!"
"&&"
"||"
"!="
"<<"
">>"
"<"
">"
"<="
">="
"+="
"-="
"*="
"/="
"&="
"|="
"^="
"<<="
">>="
"="
":="
"=="
"?"
"<-"
"$"
".."
"..."]
@operator
;; Builtin Functions, maybe redundant with (builtin_type)
((identifier) @function.builtin
(#any-of? @function.builtin
"eprint"
"eprintln"
"error"
"exit"
"panic"
"print"
"println"
"after"
"after_char"
"all"
"all_after"
"all_after_last"
"all_before"
"all_before_last"
"any"
"ascii_str"
"before"
"bool"
"byte"
"byterune"
"bytes"
"bytestr"
"c_error_number_str"
"capitalize"
"clear"
"clone"
"clone_to_depth"
"close"
"code"
"compare"
"compare_strings"
"contains"
"contains_any"
"contains_any_substr"
"copy"
"count"
"cstring_to_vstring"
"delete"
"delete_last"
"delete_many"
"ends_with"
"eprint"
"eprintln"
"eq_epsilon"
"error"
"error_with_code"
"exit"
"f32"
"f32_abs"
"f32_max"
"f32_min"
"f64"
"f64_max"
"fields"
"filter"
"find_between"
"first"
"flush_stderr"
"flush_stdout"
"free"
"gc_check_leaks"
"get_str_intp_u32_format"
"get_str_intp_u64_format"
"grow_cap"
"grow_len"
"hash"
"hex"
"hex2"
"hex_full"
"i16"
"i64"
"i8"
"index"
"index_after"
"index_any"
"index_byte"
"insert"
"int"
"is_alnum"
"is_bin_digit"
"is_capital"
"is_digit"
"is_hex_digit"
"is_letter"
"is_lower"
"is_oct_digit"
"is_space"
"is_title"
"is_upper"
"isnil"
"join"
"join_lines"
"keys"
"last"
"last_index"
"last_index_byte"
"length_in_bytes"
"limit"
"malloc"
"malloc_noscan"
"map"
"match_glob"
"memdup"
"memdup_noscan"
"move"
"msg"
"panic"
"panic_error_number"
"panic_lasterr"
"panic_optional_not_set"
"parse_int"
"parse_uint"
"pointers"
"pop"
"prepend"
"print"
"print_backtrace"
"println"
"proc_pidpath"
"ptr_str"
"push_many"
"realloc_data"
"reduce"
"repeat"
"repeat_to_depth"
"replace"
"replace_each"
"replace_once"
"reverse"
"reverse_in_place"
"runes"
"sort"
"sort_by_len"
"sort_ignore_case"
"sort_with_compare"
"split"
"split_any"
"split_into_lines"
"split_nth"
"starts_with"
"starts_with_capital"
"str"
"str_escaped"
"str_intp"
"str_intp_g32"
"str_intp_g64"
"str_intp_rune"
"str_intp_sq"
"str_intp_sub"
"strg"
"string_from_wide"
"string_from_wide2"
"strip_margin"
"strip_margin_custom"
"strlong"
"strsci"
"substr"
"substr_ni"
"substr_with_check"
"title"
"to_lower"
"to_upper"
"to_wide"
"tos"
"tos2"
"tos3"
"tos4"
"tos5"
"tos_clone"
"trim"
"trim_left"
"trim_pr"
"try_pop"
"try_push"
"utf32_decode_to_buffer"
"utf32_to_str"
"utf32_to_str_no_malloc"
"utf8_char_len"
"utf8_getchar"
"utf8_str_len"
"utf8_str_visible_length"
"utf8_to_utf32"
"v_realloc"
"vbytes"
"vcalloc"
"vcalloc_noscan"
"vmemcmp"
"vmemcpy"
"vmemmove"
"vmemset"
"vstring"
"vstring_literal"
"vstring_literal_with_len"
"vstring_with_len"
"vstrlen"
"vstrlen_char"
"winapi_lasterr_str"))
;; Literals
(int_literal) @number
(rune_literal) @string
(raw_string_literal) @string
(escape_sequence) @string.escape
(float_literal) @float
[(true) (false)] @boolean
(ERROR) @error
(comment) @comment @spell
(_
(comment)+ @comment.documentation
[(function_declaration) (type_declaration) (const_spec) (enum_declaration)])