aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/yang
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/yang
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/yang')
-rw-r--r--runtime/queries/yang/folds.scm1
-rw-r--r--runtime/queries/yang/highlights.scm79
-rw-r--r--runtime/queries/yang/indents.scm20
-rw-r--r--runtime/queries/yang/injections.scm10
4 files changed, 110 insertions, 0 deletions
diff --git a/runtime/queries/yang/folds.scm b/runtime/queries/yang/folds.scm
new file mode 100644
index 000000000..fd7d23999
--- /dev/null
+++ b/runtime/queries/yang/folds.scm
@@ -0,0 +1 @@
+(block) @fold
diff --git a/runtime/queries/yang/highlights.scm b/runtime/queries/yang/highlights.scm
new file mode 100644
index 000000000..1fb588af1
--- /dev/null
+++ b/runtime/queries/yang/highlights.scm
@@ -0,0 +1,79 @@
+(comment) @comment @spell
+
+; Module / submodule
+[
+ "module"
+ "submodule"
+] @keyword
+
+; Keywords
+(statement_keyword) @keyword
+
+(statement_keyword
+ "import") @keyword.import
+
+(extension_keyword) @function
+
+; Arguments
+(built_in_type) @type.builtin
+
+(number) @number
+
+(boolean) @boolean
+
+(date) @number
+
+(range
+ (_
+ ".." @punctuation.special))
+
+(range
+ (_
+ "|" @punctuation.special))
+
+(quoted_range
+ "\"" @string.special)
+
+(quoted_range
+ "'" @string.special)
+
+(yang_version) @constant.builtin
+
+(identifier) @variable
+
+(node_identifier) @variable
+
+(string) @string
+
+(string
+ (escape_sequence) @string.escape)
+
+(unquoted_string) @string
+
+(keypath) @string.special.path
+
+; Always highlight the value of an enum statement as a constant
+(enum_value) @constant
+
+; Highlight xpath and pattern strings differently from plain strings
+(statement
+ (statement_keyword
+ "must")
+ (argument
+ (string) @string.special))
+
+(statement
+ (statement_keyword
+ "pattern")
+ (argument
+ (string) @string.regexp))
+
+; Punctuation
+(plus_symbol) @operator
+
+[
+ "{"
+ "}"
+] @punctuation.bracket
+
+";" @punctuation.delimiter
diff --git a/runtime/queries/yang/indents.scm b/runtime/queries/yang/indents.scm
new file mode 100644
index 000000000..cc4b3caee
--- /dev/null
+++ b/runtime/queries/yang/indents.scm
@@ -0,0 +1,20 @@
+(module) @indent.begin
+
+(submodule) @indent.begin
+
+(statement) @indent.begin
+
+(extension_statement) @indent.begin
+
+(statement
+ ";" @indent.end)
+
+(extension_statement
+ ";" @indent.end)
+
+(block
+ "}" @indent.end @indent.branch)
+
+((string) @indent.align
+ (#set! indent.open_delimiter "\"")
+ (#set! indent.close_delimiter "\""))
diff --git a/runtime/queries/yang/injections.scm b/runtime/queries/yang/injections.scm
new file mode 100644
index 000000000..4219eb30a
--- /dev/null
+++ b/runtime/queries/yang/injections.scm
@@ -0,0 +1,10 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+((statement
+ (statement_keyword
+ "pattern")
+ (argument
+ (string) @injection.content))
+ (#set! injection.language "regex")
+ (#offset! @injection.content 0 1 0 -1))