aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/elvish
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2023-06-12 09:54:30 -0600
committerChristian Clason <c.clason@uni-graz.at>2025-05-12 18:43:40 +0200
commit692b051b09935653befdb8f7ba8afdb640adf17b (patch)
tree167162b6b129ae04f68c5735078521a72917c742 /runtime/queries/elvish
parentfeat(c-family): inherit injections (diff)
downloadnvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.gz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.bz2
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.lz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.xz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.zst
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.zip
feat!: drop modules, general refactor and cleanup
Diffstat (limited to 'runtime/queries/elvish')
-rw-r--r--runtime/queries/elvish/highlights.scm157
-rw-r--r--runtime/queries/elvish/injections.scm2
2 files changed, 159 insertions, 0 deletions
diff --git a/runtime/queries/elvish/highlights.scm b/runtime/queries/elvish/highlights.scm
new file mode 100644
index 000000000..9836a6c78
--- /dev/null
+++ b/runtime/queries/elvish/highlights.scm
@@ -0,0 +1,157 @@
+(comment) @comment @spell
+
+[
+ "if"
+ "elif"
+] @keyword.conditional
+
+(if
+ (else
+ "else" @keyword.conditional))
+
+[
+ "while"
+ "for"
+] @keyword.repeat
+
+(while
+ (else
+ "else" @keyword.repeat))
+
+(for
+ (else
+ "else" @keyword.repeat))
+
+[
+ "try"
+ "catch"
+ "finally"
+] @keyword.exception
+
+(try
+ (else
+ "else" @keyword.exception))
+
+"use" @keyword.import
+
+(import
+ (bareword) @string.special.path)
+
+(wildcard
+ [
+ "*"
+ "**"
+ "?"
+ ] @character.special)
+
+(command
+ argument: (bareword) @variable.parameter)
+
+(command
+ head: (identifier) @function.call)
+
+((command
+ head: (identifier) @keyword.return)
+ (#eq? @keyword.return "return"))
+
+((command
+ (identifier) @keyword.operator)
+ (#any-of? @keyword.operator "and" "or" "coalesce"))
+
+[
+ "+"
+ "-"
+ "*"
+ "/"
+ "%"
+ "<"
+ "<="
+ "=="
+ "!="
+ ">"
+ ">="
+ "<s"
+ "<=s"
+ "==s"
+ "!=s"
+ ">s"
+ ">=s"
+] @function.builtin
+
+[
+ ">"
+ "<"
+ ">>"
+ "<>"
+ "|"
+] @operator
+
+(io_port) @number
+
+(function_definition
+ "fn" @keyword.function
+ (identifier) @function)
+
+(parameter_list) @variable.parameter
+
+(parameter_list
+ "|" @punctuation.bracket)
+
+[
+ "var"
+ "set"
+ "tmp"
+ "del"
+] @keyword
+
+(variable_declaration
+ (lhs
+ (identifier) @variable))
+
+(variable_assignment
+ (lhs
+ (identifier) @variable))
+
+(temporary_assignment
+ (lhs
+ (identifier) @variable))
+
+(variable_deletion
+ (identifier) @variable)
+
+(number) @number
+
+(string) @string
+
+(variable
+ (identifier) @variable)
+
+((variable
+ (identifier) @function)
+ (#lua-match? @function ".+[~]$"))
+
+((variable
+ (identifier) @boolean)
+ (#any-of? @boolean "true" "false"))
+
+((variable
+ (identifier) @constant.builtin)
+ (#any-of? @constant.builtin
+ "_" "after-chdir" "args" "before-chdir" "buildinfo" "nil" "notify-bg-job-success" "num-bg-jobs"
+ "ok" "paths" "pid" "pwd" "value-out-indicator" "version"))
+
+[
+ "$"
+ "@"
+] @punctuation.special
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+";" @punctuation.delimiter
diff --git a/runtime/queries/elvish/injections.scm b/runtime/queries/elvish/injections.scm
new file mode 100644
index 000000000..2f0e58eb6
--- /dev/null
+++ b/runtime/queries/elvish/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))