nvim-treesitter/runtime/queries/proto/highlights.scm
Stefan VanBuren 86745d66a3
Re-add option handling; fix builtin type assertion
Now need to wait for coder3101/tree-sitter-proto#23 to land to really
sync this with upstream.
2026-03-16 10:51:28 -04:00

151 lines
1.6 KiB
Scheme

(package
(full_ident
(identifier) @module))
(extend
(full_ident
(identifier) @type))
(constant
(full_ident
(identifier) @constant))
(field
(identifier) @property)
(map_field
(identifier) @property)
(oneof
(identifier) @type)
(oneof_field
(identifier) @property)
(field_option
(identifier) @property)
(enum_value_option
(identifier) @property)
(block_lit
(identifier) @property)
; Extension option names, e.g. option (foo.bar) = ...
(option
(full_ident
(identifier) @variable))
(option
(full_ident
(identifier)
(identifier) @variable.member))
[
"option"
"syntax"
"edition"
] @keyword.directive
[
"reserved"
"to"
"max"
] @keyword
[
"enum"
"extend"
"extensions"
"group"
"message"
"map"
"oneof"
"service"
] @keyword.type
"rpc" @keyword.function
"returns" @keyword.return
[
"export"
"local"
"optional"
"repeated"
"required"
"stream"
"weak"
"public"
] @keyword.modifier
[
"package"
"import"
] @keyword.import
[
(key_type)
(type)
] @type.builtin
[
(message_name)
(enum_name)
(service_name)
(message_or_enum_type)
] @type
(rpc_name) @function.method
(enum_field
(identifier) @constant)
(string) @string
(import
path: (string) @string.special.path)
[
"\"proto3\""
"\"proto2\""
] @string.special.symbol
(escape_sequence) @string.escape
(int_lit) @number
(float_lit) @number.float
[
(true)
(false)
] @boolean
(comment) @spell
(comment) @comment
[
"("
")"
"["
"]"
"{"
"}"
"<"
">"
] @punctuation.bracket
[
";"
","
"."
":"
] @punctuation.delimiter
[
"="
"-"
"+"
] @operator