helix/runtime/queries/elisp/highlights.scm
2024-09-13 13:28:20 -05:00

73 lines
1.1 KiB
Scheme

;; Special forms
[
"and"
"catch"
"cond"
"condition-case"
"defconst"
"defvar"
"function"
"if"
"interactive"
"lambda"
"let"
"let*"
"or"
"prog1"
"prog2"
"progn"
"quote"
"save-current-buffer"
"save-excursion"
"save-restriction"
"setq"
"setq-default"
"unwind-protect"
"while"
] @keyword
;; Function definitions
[
"defun"
"defsubst"
] @keyword
(function_definition name: (symbol) @function)
(function_definition parameters: (list (symbol) @variable.parameter))
(function_definition docstring: (string) @comment)
;; Highlight macro definitions the same way as function definitions.
"defmacro" @keyword
(macro_definition name: (symbol) @function)
(macro_definition parameters: (list (symbol) @variable.parameter))
(macro_definition docstring: (string) @comment)
(comment) @comment
(integer) @constant.numeric.integer
(float) @constant.numeric.float
(char) @constant.character
(string) @string
[
"("
")"
"#["
"["
"]"
] @punctuation.bracket
[
"`"
"#'"
"'"
","
",@"
] @operator
;; Highlight nil and t as constants, unlike other symbols
[
"nil"
"t"
] @constant.builtin