add elisp support (#10644)
* add elisp support * update queries for some constants
This commit is contained in:
parent
80e0e98e45
commit
44504b720b
4 changed files with 92 additions and 0 deletions
|
@ -42,6 +42,7 @@
|
|||
| edoc | ✓ | | | |
|
||||
| eex | ✓ | | | |
|
||||
| ejs | ✓ | | | |
|
||||
| elisp | ✓ | | | |
|
||||
| elixir | ✓ | ✓ | ✓ | `elixir-ls` |
|
||||
| elm | ✓ | ✓ | | `elm-language-server` |
|
||||
| elvish | ✓ | | | `elvish` |
|
||||
|
|
|
@ -3641,6 +3641,20 @@ language-servers = ["pest-language-server"]
|
|||
name = "pest"
|
||||
source = { git = "https://github.com/pest-parser/tree-sitter-pest", rev = "a8a98a824452b1ec4da7f508386a187a2f234b85" }
|
||||
|
||||
[[language]]
|
||||
name = "elisp"
|
||||
scope = "source.elisp"
|
||||
file-types = ["el"]
|
||||
comment-tokens = [";"]
|
||||
|
||||
[language.auto-pairs]
|
||||
'(' = ')'
|
||||
'"' = '"'
|
||||
|
||||
[[grammar]]
|
||||
name = "elisp"
|
||||
source = { git = "https://github.com/Wilfred/tree-sitter-elisp", rev = "e5524fdccf8c22fc726474a910e4ade976dfc7bb" }
|
||||
|
||||
[[language]]
|
||||
name = "gjs"
|
||||
scope = "source.gjs"
|
||||
|
|
72
runtime/queries/elisp/highlights.scm
Normal file
72
runtime/queries/elisp/highlights.scm
Normal file
|
@ -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
|
5
runtime/queries/elisp/tags.scm
Normal file
5
runtime/queries/elisp/tags.scm
Normal file
|
@ -0,0 +1,5 @@
|
|||
;; defun/defsubst
|
||||
(function_definition name: (symbol) @name) @definition.function
|
||||
|
||||
;; Treat macros as function definitions for the sake of TAGS.
|
||||
(macro_definition name: (symbol) @name) @definition.function
|
Loading…
Add table
Reference in a new issue