nvim-treesitter/queries/wit/highlights.scm

82 lines
1.1 KiB
Scheme
Raw Normal View History

; Comments
(line_comment) @comment
(block_comment) @comment
; Primitive Types
[
"bool"
"s8"
"s16"
"s32"
"s64"
"u8"
"u16"
"u32"
"u64"
"float32"
"float64"
"char"
"string"
; Container Types
"list"
"tuple"
"option"
"result"
] @type.builtin
"func" @keyword.function
; Keywords for file structure and components
[
"record"
"enum"
"variant"
"flags"
"resource"
] @keyword.type
; Keywords for importing and exporting
[
"package"
"world"
"use"
"import"
] @keyword.import
; Resource Keywords
"static" @keyword.modifier
; Named Types (Capitalized identifiers)
((identifier) @type
(#match? @type "^[A-Z]"))
((identifier) @variable
(#match? @variable "^[a-z_][a-zA-Z0-9_]*$"))
; Constants (UPPER_CASE names and Enums)
((identifier) @constant
(#match? @constant "^[A-Z][A-Z0-9_]+$"))
; Functions and Methods (lowercase names followed by parentheses)
((identifier) @function
(#match? @function "^[a-z_][a-zA-Z0-9_]*%("))
; Punctuation
[
";"
":"
"->"
] @punctuation.special
; Delimiters
"," @punctuation.delimiter
; Brackets
[
"{"
"}"
"("
")"
] @punctuation.bracket