73 lines
1.1 KiB
Scheme
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
|