Add support for the SlightLisp language (#14236)

This commit is contained in:
Xavier R. Guérin
2025-09-15 15:35:50 +02:00
committed by GitHub
parent 66737c6a4f
commit 2dddace12e
4 changed files with 95 additions and 1 deletions

View File

@@ -232,6 +232,7 @@
| shellcheckrc | ✓ | ✓ | | | | |
| slang | ✓ | ✓ | ✓ | | | `slangd` |
| slint | ✓ | ✓ | ✓ | | | `slint-lsp` |
| slisp | ✓ | | | ✓ | | |
| smali | ✓ | | ✓ | | | |
| smithy | ✓ | | | | | `cs` |
| sml | ✓ | | | | | |

View File

@@ -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" }

View 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

View 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