mirror of
https://github.com/helix-editor/helix.git
synced 2024-09-11 10:55:45 +03:00
add elisp support (#10644)
* add elisp support * update queries for some constants
This commit is contained in:
parent
80e0e98e45
commit
44504b720b
@ -42,6 +42,7 @@
|
|||||||
| edoc | ✓ | | | |
|
| edoc | ✓ | | | |
|
||||||
| eex | ✓ | | | |
|
| eex | ✓ | | | |
|
||||||
| ejs | ✓ | | | |
|
| ejs | ✓ | | | |
|
||||||
|
| elisp | ✓ | | | |
|
||||||
| elixir | ✓ | ✓ | ✓ | `elixir-ls` |
|
| elixir | ✓ | ✓ | ✓ | `elixir-ls` |
|
||||||
| elm | ✓ | ✓ | | `elm-language-server` |
|
| elm | ✓ | ✓ | | `elm-language-server` |
|
||||||
| elvish | ✓ | | | `elvish` |
|
| elvish | ✓ | | | `elvish` |
|
||||||
|
@ -3641,6 +3641,20 @@ language-servers = ["pest-language-server"]
|
|||||||
name = "pest"
|
name = "pest"
|
||||||
source = { git = "https://github.com/pest-parser/tree-sitter-pest", rev = "a8a98a824452b1ec4da7f508386a187a2f234b85" }
|
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]]
|
[[language]]
|
||||||
name = "gjs"
|
name = "gjs"
|
||||||
scope = "source.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…
Reference in New Issue
Block a user