Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/elisp/highlights.scm')
-rw-r--r--runtime/queries/elisp/highlights.scm72
1 files changed, 72 insertions, 0 deletions
diff --git a/runtime/queries/elisp/highlights.scm b/runtime/queries/elisp/highlights.scm
new file mode 100644
index 00000000..1639168b
--- /dev/null
+++ b/runtime/queries/elisp/highlights.scm
@@ -0,0 +1,72 @@
+;; 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