199 lines
2.5 KiB
Scheme
199 lines
2.5 KiB
Scheme
; Keywords
|
|
[
|
|
"@module"
|
|
"@package"
|
|
] @keyword.import @nospell
|
|
|
|
[
|
|
"@class"
|
|
"@type"
|
|
"@param"
|
|
"@alias"
|
|
"@field"
|
|
"@generic"
|
|
"@vararg"
|
|
"@diagnostic"
|
|
"@cast"
|
|
"@deprecated"
|
|
"@meta"
|
|
"@source"
|
|
"@version"
|
|
"@operator"
|
|
"@nodiscard"
|
|
"@cast"
|
|
"@overload"
|
|
"@enum"
|
|
"@language"
|
|
"@see"
|
|
"@as"
|
|
"extends"
|
|
(diagnostic_identifier)
|
|
] @keyword @nospell
|
|
|
|
"@async" @keyword.coroutine @nospell
|
|
|
|
(language_injection
|
|
"@language"
|
|
(identifier) @keyword @nospell)
|
|
|
|
(function_type
|
|
[
|
|
"fun"
|
|
"function"
|
|
] @keyword.function @nospell)
|
|
|
|
(source_annotation
|
|
filename: (identifier) @string.special.path @nospell
|
|
extension: (identifier) @string.special.path @nospell)
|
|
|
|
(version_annotation
|
|
version: _ @constant.builtin @nospell)
|
|
|
|
"@return" @keyword.return @nospell
|
|
|
|
; Qualifiers
|
|
[
|
|
"public"
|
|
"protected"
|
|
"private"
|
|
"package"
|
|
"@public"
|
|
"@protected"
|
|
"@private"
|
|
"(exact)"
|
|
"(key)"
|
|
] @keyword.modifier @nospell
|
|
|
|
; Variables
|
|
(identifier) @variable @nospell
|
|
|
|
[
|
|
"..."
|
|
"self"
|
|
] @variable.builtin @nospell
|
|
|
|
; Macros
|
|
(alias_annotation
|
|
(identifier) @function.macro @nospell)
|
|
|
|
; Parameters
|
|
(param_annotation
|
|
(identifier) @variable.parameter @nospell)
|
|
|
|
(parameter
|
|
(identifier) @variable.parameter @nospell)
|
|
|
|
; Fields
|
|
(field_annotation
|
|
(identifier) @variable.member @nospell)
|
|
|
|
(table_literal_type
|
|
field: (identifier) @variable.member @nospell)
|
|
|
|
(member_type
|
|
[
|
|
"#"
|
|
"."
|
|
]
|
|
.
|
|
(identifier) @variable.member @nospell)
|
|
|
|
(member_type
|
|
(identifier) @module @nospell)
|
|
|
|
(member_type
|
|
(identifier) @type @nospell .)
|
|
|
|
; Types
|
|
(table_type
|
|
"table" @type.builtin @nospell)
|
|
|
|
(builtin_type) @type.builtin @nospell
|
|
|
|
(class_annotation
|
|
(identifier) @type @nospell)
|
|
|
|
(enum_annotation
|
|
(identifier) @type @nospell)
|
|
|
|
((array_type
|
|
[
|
|
"["
|
|
"]"
|
|
] @type)
|
|
(#set! "priority" 105))
|
|
|
|
(type) @type
|
|
|
|
; Operators
|
|
[
|
|
"|"
|
|
"+"
|
|
"-"
|
|
] @operator
|
|
|
|
; Literals
|
|
[
|
|
(string)
|
|
(literal_type)
|
|
"`"
|
|
] @string
|
|
|
|
(module_annotation
|
|
(string) @module @nospell)
|
|
|
|
[
|
|
(number)
|
|
(numeric_literal_type)
|
|
] @number
|
|
|
|
; Punctuation
|
|
[
|
|
"["
|
|
"]"
|
|
"[["
|
|
"]]"
|
|
"[=["
|
|
"]=]"
|
|
] @punctuation.bracket
|
|
|
|
[
|
|
"{"
|
|
"}"
|
|
] @punctuation.bracket
|
|
|
|
[
|
|
"("
|
|
")"
|
|
] @punctuation.bracket
|
|
|
|
[
|
|
"<"
|
|
">"
|
|
] @punctuation.bracket
|
|
|
|
[
|
|
","
|
|
"."
|
|
"#"
|
|
":"
|
|
] @punctuation.delimiter
|
|
|
|
[
|
|
"@"
|
|
"?"
|
|
] @punctuation.special
|
|
|
|
; Comments
|
|
(comment) @comment @spell
|
|
|
|
(at_comment
|
|
(identifier) @type @nospell
|
|
(_) @comment @spell)
|
|
|
|
(class_at_comment
|
|
(identifier) @type @nospell
|
|
("extends"?
|
|
(identifier)? @type @nospell)
|
|
(_) @comment @spell)
|