mirror of
https://github.com/helix-editor/helix.git
synced 2025-10-06 00:13:28 +02:00
Add support for the SlightLisp language (#14236)
This commit is contained in:
@@ -232,6 +232,7 @@
|
||||
| shellcheckrc | ✓ | ✓ | | | | |
|
||||
| slang | ✓ | ✓ | ✓ | | | `slangd` |
|
||||
| slint | ✓ | ✓ | ✓ | | | `slint-lsp` |
|
||||
| slisp | ✓ | | | ✓ | | |
|
||||
| smali | ✓ | | ✓ | | | |
|
||||
| smithy | ✓ | | | | | `cs` |
|
||||
| sml | ✓ | | | | | |
|
||||
|
@@ -4751,7 +4751,6 @@ file-types = [{glob = "Cross.toml"}]
|
||||
language-servers = [ "taplo", "tombi" ]
|
||||
indent = { tab-width = 2, unit = " " }
|
||||
|
||||
# https://git-cliff.org/docs/configuration/
|
||||
[[language]]
|
||||
name = "git-cliff-config"
|
||||
scope = "source.git-cliff-config"
|
||||
@@ -4832,3 +4831,15 @@ language-servers = ["wikitext-lsp"]
|
||||
indent = { tab-width = 2, unit = " " }
|
||||
block-comment-tokens = { start = "<!--", end = "-->" }
|
||||
word-completion.trigger-length = 4
|
||||
|
||||
[[language]]
|
||||
name = "slisp"
|
||||
scope = "source.sl"
|
||||
injection-regex = "sl"
|
||||
file-types = ["sl"]
|
||||
comment-token = ";"
|
||||
indent = { tab-width = 2, unit = " " }
|
||||
|
||||
[[grammar]]
|
||||
name = "slisp"
|
||||
source = { git = "https://github.com/xenogenics/tree-sitter-slisp", rev = "29f9c6707ce9dfc2fc915d175ec720b207f179f3" }
|
||||
|
74
runtime/queries/slisp/highlights.scm
Normal file
74
runtime/queries/slisp/highlights.scm
Normal file
@@ -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
|
8
runtime/queries/slisp/tags.scm
Normal file
8
runtime/queries/slisp/tags.scm
Normal file
@@ -0,0 +1,8 @@
|
||||
;; def
|
||||
(function_definition name: (symbol) @name) @definition.function
|
||||
|
||||
;; ext
|
||||
(external_definition name: (symbol) @name) @definition.function
|
||||
|
||||
;; mac
|
||||
(macro_definition name: (symbol) @name) @definition.function
|
Reference in New Issue
Block a user