aboutsummaryrefslogtreecommitdiffstats
path: root/queries/liquidsoap
diff options
context:
space:
mode:
authorRomain Beauxis <toots@rastageeks.org>2023-10-04 09:58:10 -0500
committerGitHub <noreply@github.com>2023-10-04 10:58:10 -0400
commit691fdc61a13ecca2f5cf0c2abda4b5da87c54893 (patch)
treeb5edb683047e9d41267f087401c5c8622c488398 /queries/liquidsoap
parentfix(c): add missing folds (diff)
downloadnvim-treesitter-691fdc61a13ecca2f5cf0c2abda4b5da87c54893.tar
nvim-treesitter-691fdc61a13ecca2f5cf0c2abda4b5da87c54893.tar.gz
nvim-treesitter-691fdc61a13ecca2f5cf0c2abda4b5da87c54893.tar.bz2
nvim-treesitter-691fdc61a13ecca2f5cf0c2abda4b5da87c54893.tar.lz
nvim-treesitter-691fdc61a13ecca2f5cf0c2abda4b5da87c54893.tar.xz
nvim-treesitter-691fdc61a13ecca2f5cf0c2abda4b5da87c54893.tar.zst
nvim-treesitter-691fdc61a13ecca2f5cf0c2abda4b5da87c54893.zip
feat: add liquidsoap
Co-authored-by: Christian Clason <c.clason@uni-graz.at>
Diffstat (limited to 'queries/liquidsoap')
-rw-r--r--queries/liquidsoap/folds.scm21
-rw-r--r--queries/liquidsoap/highlights.scm85
-rw-r--r--queries/liquidsoap/indents.scm54
-rw-r--r--queries/liquidsoap/locals.scm15
4 files changed, 175 insertions, 0 deletions
diff --git a/queries/liquidsoap/folds.scm b/queries/liquidsoap/folds.scm
new file mode 100644
index 000000000..9b0d12efa
--- /dev/null
+++ b/queries/liquidsoap/folds.scm
@@ -0,0 +1,21 @@
+[
+ (let)
+ (binding)
+ (simple_fun)
+ (def)
+ (arglist)
+ (if)
+ (if_condition)
+ (if_then)
+ (elsif_condition)
+ (elsif_then)
+ (if_else)
+ (for)
+ (for_do)
+ (while)
+ (while_do)
+ (try)
+ (try_body)
+ (try_do)
+ (block)
+] @fold
diff --git a/queries/liquidsoap/highlights.scm b/queries/liquidsoap/highlights.scm
new file mode 100644
index 000000000..fcf553e3b
--- /dev/null
+++ b/queries/liquidsoap/highlights.scm
@@ -0,0 +1,85 @@
+(var) @variable
+
+(op) @operator
+["and" "or" "not"] @keyword.operator
+
+[
+ "def"
+ "fun"
+ "def_end"
+] @keyword.function
+
+(let_decoration) @keyword.coroutine
+
+[
+ "open"
+ "begin"
+ "block_end"
+ "let"
+] @keyword
+
+[
+ "while"
+ "do"
+ "to"
+ "for"
+ "for_end"
+ "while_end"
+] @repeat
+
+[
+ "if"
+ "then"
+ "elsif"
+ "else"
+ "if_end"
+] @conditional
+
+[
+ "try"
+ "catch"
+ "try_end"
+] @exception
+
+(inline_if [ "?" ":" ] @conditional.ternary)
+
+[
+ "%ifdef"
+ "%ifndef"
+ "%ifencoder"
+ "%ifnencoder"
+ "%ifversion"
+ "%else"
+ "%endif"
+ "%argsof"
+ "%include"
+] @preproc
+
+(encoder_name) @constant.builtin
+
+(anonymous_argument (var) @parameter)
+(labeled_argument label: (var) @parameter)
+
+"." @punctuation.delimiter
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+(app name: (var) @function.call)
+(method) @method
+(method_app) @method.call
+
+(string) @string
+(string_interpolation [ "#{" "}" ] @punctuation.special)
+(integer) @number
+(float) @float
+(bool) @boolean
+(comment) @comment
+(regexp) @string.regex
+(type) @type
diff --git a/queries/liquidsoap/indents.scm b/queries/liquidsoap/indents.scm
new file mode 100644
index 000000000..ce8c02b53
--- /dev/null
+++ b/queries/liquidsoap/indents.scm
@@ -0,0 +1,54 @@
+[
+ "%ifdef"
+ "%ifndef"
+ "%ifencoder"
+ "%ifnencoder"
+ "%ifversion"
+ "%else"
+ "%endif"
+ "%argsof"
+ "%include"
+] @indent.zero
+
+[
+ "if"
+ "def"
+ "let"
+ "for"
+ "while"
+ "try"
+ "{"
+ "["
+ "("
+] @indent.begin
+
+(ERROR "def") @indent.begin
+
+(def "def_end" @indent.end)
+(if "if_end" @indent.end)
+(block "block_end" @indent.end)
+(for "for_end" @indent.end)
+(while "while_end" @indent.end)
+(try "try_end" @indent.end)
+
+[
+ "then"
+ "do"
+ "else"
+ "elsif"
+ "catch"
+] @indent.branch
+
+[
+ "def_end"
+ "if_end"
+ "block_end"
+ "for_end"
+ "while_end"
+ "try_end"
+ "}"
+ "]"
+ ")"
+] @indent.branch @indent.end
+
+(comment) @indent.auto
diff --git a/queries/liquidsoap/locals.scm b/queries/liquidsoap/locals.scm
new file mode 100644
index 000000000..1d67bc55a
--- /dev/null
+++ b/queries/liquidsoap/locals.scm
@@ -0,0 +1,15 @@
+[(anonymous_function) (binding) (def) (let)] @scope
+
+(anonymous_argument (var) @definition.parameter)
+(labeled_argument label: (var) @definition.parameter)
+
+(binding
+ defined: (var) @definition.var)
+(def defined: (var) @definition.var)
+(let defined: (var) @definition.var)
+(meth_pattern (var) @definition.var)
+(list_pattern (var) @definition.var)
+(tuple_pattern (var) @definition.var)
+(spread (var) @definition.var)
+
+(var) @reference