mirror of
https://github.com/ilyakooo0/helix.git
synced 2024-09-11 16:07:00 +03:00
Added elixir syntax
Using custom fork for now to get around generating the source files
This commit is contained in:
parent
67b1cd32c7
commit
ca042a4bde
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -82,3 +82,7 @@
|
|||||||
path = helix-syntax/languages/tree-sitter-toml
|
path = helix-syntax/languages/tree-sitter-toml
|
||||||
url = https://github.com/ikatyang/tree-sitter-toml
|
url = https://github.com/ikatyang/tree-sitter-toml
|
||||||
shallow = true
|
shallow = true
|
||||||
|
[submodule "helix-syntax/languages/tree-sitter-elixir"]
|
||||||
|
path = helix-syntax/languages/tree-sitter-elixir
|
||||||
|
url = https://github.com/IceDragon200/tree-sitter-elixir
|
||||||
|
shallow = true
|
||||||
|
@ -72,6 +72,7 @@ macro_rules! mk_langs {
|
|||||||
(CSharp, tree_sitter_c_sharp),
|
(CSharp, tree_sitter_c_sharp),
|
||||||
(Cpp, tree_sitter_cpp),
|
(Cpp, tree_sitter_cpp),
|
||||||
(Css, tree_sitter_css),
|
(Css, tree_sitter_css),
|
||||||
|
(Elixir, tree_sitter_elixir),
|
||||||
(Go, tree_sitter_go),
|
(Go, tree_sitter_go),
|
||||||
// (Haskell, tree_sitter_haskell),
|
// (Haskell, tree_sitter_haskell),
|
||||||
(Html, tree_sitter_html),
|
(Html, tree_sitter_html),
|
||||||
|
@ -17,6 +17,15 @@ roots = []
|
|||||||
|
|
||||||
indent = { tab-width = 2, unit = " " }
|
indent = { tab-width = 2, unit = " " }
|
||||||
|
|
||||||
|
[[language]]
|
||||||
|
name = "elixir"
|
||||||
|
scope = "source.elixir"
|
||||||
|
injection-regex = "elixir"
|
||||||
|
file-types = ["ex", "exs"]
|
||||||
|
roots = []
|
||||||
|
|
||||||
|
indent = { tab-width = 2, unit = " " }
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "json"
|
name = "json"
|
||||||
scope = "source.json"
|
scope = "source.json"
|
||||||
|
146
runtime/queries/elixir/highlights.scm
Normal file
146
runtime/queries/elixir/highlights.scm
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
["when" "and" "or" "not in" "not" "in" "fn" "do" "end" "catch" "rescue" "after" "else"] @keyword
|
||||||
|
|
||||||
|
[(true) (false) (nil)] @constant.builtin
|
||||||
|
|
||||||
|
(keyword
|
||||||
|
[(keyword_literal)
|
||||||
|
":"] @tag)
|
||||||
|
|
||||||
|
(keyword
|
||||||
|
(keyword_string
|
||||||
|
[(string_start)
|
||||||
|
(string_content)
|
||||||
|
(string_end)] @tag))
|
||||||
|
|
||||||
|
[(atom_literal)
|
||||||
|
(atom_start)
|
||||||
|
(atom_content)
|
||||||
|
(atom_end)] @tag
|
||||||
|
|
||||||
|
(comment) @comment
|
||||||
|
|
||||||
|
(escape_sequence) @escape
|
||||||
|
|
||||||
|
(call function: (function_identifier) @keyword
|
||||||
|
(#match? @keyword "^(defmodule|defexception|defp|def|with|case|cond|raise|import|require|use|defmacrop|defmacro|defguardp|defguard|defdelegate|defstruct|alias|defimpl|defprotocol|defoverridable|receive|if|for|try|throw|unless|reraise|super|quote|unquote|unquote_splicing)$"))
|
||||||
|
|
||||||
|
(call function: (function_identifier) @keyword
|
||||||
|
[(call
|
||||||
|
function: (function_identifier) @function
|
||||||
|
(arguments
|
||||||
|
[(identifier) @variable.parameter
|
||||||
|
(_ (identifier) @variable.parameter)
|
||||||
|
(_ (_ (identifier) @variable.parameter))
|
||||||
|
(_ (_ (_ (identifier) @variable.parameter)))
|
||||||
|
(_ (_ (_ (_ (identifier) @variable.parameter))))
|
||||||
|
(_ (_ (_ (_ (_ (identifier) @variable.parameter)))))]))
|
||||||
|
(binary_op
|
||||||
|
left:
|
||||||
|
(call
|
||||||
|
function: (function_identifier) @function
|
||||||
|
(arguments
|
||||||
|
[(identifier) @variable.parameter
|
||||||
|
(_ (identifier) @variable.parameter)
|
||||||
|
(_ (_ (identifier) @variable.parameter))
|
||||||
|
(_ (_ (_ (identifier) @variable.parameter)))
|
||||||
|
(_ (_ (_ (_ (identifier) @variable.parameter))))
|
||||||
|
(_ (_ (_ (_ (_ (identifier) @variable.parameter)))))]))
|
||||||
|
operator: "when")
|
||||||
|
(binary_op
|
||||||
|
left: (identifier) @variable.parameter
|
||||||
|
operator: _ @function
|
||||||
|
right: (identifier) @variable.parameter)]
|
||||||
|
(#match? @keyword "^(defp|def|defmacrop|defmacro|defguardp|defguard|defdelegate)$")
|
||||||
|
(#match? @variable.parameter "^[^_]"))
|
||||||
|
|
||||||
|
(call (function_identifier) @keyword
|
||||||
|
[(call
|
||||||
|
function: (function_identifier) @function)
|
||||||
|
(identifier) @function
|
||||||
|
(binary_op
|
||||||
|
left:
|
||||||
|
[(call
|
||||||
|
function: (function_identifier) @function)
|
||||||
|
(identifier) @function]
|
||||||
|
operator: "when")]
|
||||||
|
(#match? @keyword "^(defp|def|defmacrop|defmacro|defguardp|defguard|defdelegate)$"))
|
||||||
|
|
||||||
|
(anonymous_function
|
||||||
|
(stab_expression
|
||||||
|
left: (bare_arguments
|
||||||
|
[(identifier) @variable.parameter
|
||||||
|
(_ (identifier) @variable.parameter)
|
||||||
|
(_ (_ (identifier) @variable.parameter))
|
||||||
|
(_ (_ (_ (identifier) @variable.parameter)))
|
||||||
|
(_ (_ (_ (_ (identifier) @variable.parameter))))
|
||||||
|
(_ (_ (_ (_ (_ (identifier) @variable.parameter)))))]))
|
||||||
|
(#match? @variable.parameter "^[^_]"))
|
||||||
|
|
||||||
|
(unary_op
|
||||||
|
operator: "@"
|
||||||
|
(call (identifier) @attribute
|
||||||
|
(heredoc
|
||||||
|
[(heredoc_start)
|
||||||
|
(heredoc_content)
|
||||||
|
(heredoc_end)] @doc))
|
||||||
|
(#match? @attribute "^(doc|moduledoc)$"))
|
||||||
|
|
||||||
|
(module) @type
|
||||||
|
|
||||||
|
(unary_op
|
||||||
|
operator: "@" @attribute
|
||||||
|
[(call
|
||||||
|
function: (function_identifier) @attribute)
|
||||||
|
(identifier) @attribute])
|
||||||
|
|
||||||
|
(unary_op
|
||||||
|
operator: _ @operator)
|
||||||
|
|
||||||
|
(binary_op
|
||||||
|
operator: _ @operator)
|
||||||
|
|
||||||
|
(heredoc
|
||||||
|
[(heredoc_start)
|
||||||
|
(heredoc_content)
|
||||||
|
(heredoc_end)] @string)
|
||||||
|
|
||||||
|
(string
|
||||||
|
[(string_start)
|
||||||
|
(string_content)
|
||||||
|
(string_end)] @string)
|
||||||
|
|
||||||
|
(sigil_start) @string.special
|
||||||
|
(sigil_content) @string
|
||||||
|
(sigil_end) @string.special
|
||||||
|
|
||||||
|
(interpolation
|
||||||
|
"#{" @punctuation.special
|
||||||
|
"}" @punctuation.special)
|
||||||
|
|
||||||
|
[
|
||||||
|
","
|
||||||
|
"->"
|
||||||
|
"."
|
||||||
|
] @punctuation.delimiter
|
||||||
|
|
||||||
|
[
|
||||||
|
"("
|
||||||
|
")"
|
||||||
|
"["
|
||||||
|
"]"
|
||||||
|
"{"
|
||||||
|
"}"
|
||||||
|
"<<"
|
||||||
|
">>"
|
||||||
|
] @punctuation.bracket
|
||||||
|
|
||||||
|
[(identifier) @function.special
|
||||||
|
(#match? @function.special "^__.+__$")]
|
||||||
|
|
||||||
|
[(remote_identifier) @function.special
|
||||||
|
(#match? @function.special "^__.+__$")]
|
||||||
|
|
||||||
|
[(identifier) @comment
|
||||||
|
(#match? @comment "^_")]
|
||||||
|
|
||||||
|
(ERROR) @warning
|
Loading…
Reference in New Issue
Block a user