Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/slisp/highlights.scm')
-rw-r--r--runtime/queries/slisp/highlights.scm74
1 files changed, 74 insertions, 0 deletions
diff --git a/runtime/queries/slisp/highlights.scm b/runtime/queries/slisp/highlights.scm
new file mode 100644
index 00000000..a7bf91d8
--- /dev/null
+++ b/runtime/queries/slisp/highlights.scm
@@ -0,0 +1,74 @@
+;; Keywords
+[ "if" "prog" ] @keyword
+
+;; Let binding
+[ "let" ] @keyword
+
+(let_bindings name: (symbol) @variable)
+
+;; Apply
+(apply_stmt . (symbol) @function)
+
+;; Use module
+[ "use" ] @keyword
+
+(use_module_global (quote) . (symbol) @namespace)
+(use_module_select (quote) . (symbol) @namespace)
+
+;; Val definition
+[ "val" ] @keyword
+
+(val_definition name: (symbol) @constant)
+
+;; External definitions
+[ "ext" ] @keyword
+
+(external_definition name: (symbol) @function)
+(external_definition signature: (signature (symbol) @variable.parameter (dot) (external_type) @type.builtin))
+(external_definition docstring: (string) @comment)
+(external_definition return_type: (external_type) @type.builtin)
+
+;; Function definitions
+[ "def" ] @keyword
+
+(function_definition name: (symbol) @function)
+(function_definition parameters: (parameters (symbol) @variable.parameter))
+(function_definition docstring: (string) @comment)
+
+;; Macro definitions
+[ "mac" ] @keyword
+
+(macro_definition name: (symbol) @function)
+(macro_definition parameters: (parameters (symbol) @variable.parameter))
+(macro_definition docstring: (string) @comment)
+
+;; Lambda
+[ "\\" ] @keyword
+
+(lambda_stmt parameters: (parameters (symbol) @variable.parameter))
+
+;; Atoms
+(char) @constant.character
+(comment) @comment
+(number) @constant.numeric
+(string) @string
+
+;; Punctuation
+[ "(" ")" ] @punctuation.bracket
+
+;; Operators
+(dot) @operator
+(tilde) @operator
+(backquote) @operator
+(quote) @operator
+(unquote) @operator
+(unquote_splice) @operator
+
+;; Highlight nil t as constant
+[ "nil" ] @constant.builtin
+
+;; Highlight as t as boolean constant
+[ "T" ] @constant.builtin.boolean
+
+;; Highlight variable names used in anamorphic macros.
+[ "it" ] @variable.builtin