aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--lockfile.json3
-rw-r--r--lua/nvim-treesitter/parsers.lua9
-rw-r--r--queries/udev/highlights.scm53
-rw-r--r--queries/udev/injections.scm12
5 files changed, 78 insertions, 0 deletions
diff --git a/README.md b/README.md
index 4ebdd4a15..745735c74 100644
--- a/README.md
+++ b/README.md
@@ -389,6 +389,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [twig](https://github.com/gbprod/tree-sitter-twig) (maintained by @gbprod)
- [x] [typescript](https://github.com/tree-sitter/tree-sitter-typescript) (maintained by @steelsojka)
- [x] [typoscript](https://github.com/Teddytrombone/tree-sitter-typoscript) (maintained by @Teddytrombone)
+- [x] [udev](https://github.com/ObserverOfTime/tree-sitter-udev) (maintained by @ObserverOfTime)
- [x] [ungrammar](https://github.com/Philipp-M/tree-sitter-ungrammar) (maintained by @Philipp-M, @amaanq)
- [x] [unison](https://github.com/kylegoetz/tree-sitter-unison) (maintained by @tapegram)
- [x] [usd](https://github.com/ColinKennedy/tree-sitter-usd) (maintained by @ColinKennedy)
diff --git a/lockfile.json b/lockfile.json
index 5e0079c62..b67877270 100644
--- a/lockfile.json
+++ b/lockfile.json
@@ -647,6 +647,9 @@
"typoscript": {
"revision": "43b221c0b76e77244efdaa9963e402a17c930fbc"
},
+ "udev": {
+ "revision": "e3ad4cb3c59e4c71a177cd4af62958749e53a8bd"
+ },
"ungrammar": {
"revision": "debd26fed283d80456ebafa33a06957b0c52e451"
},
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index ac0cda658..17e59046a 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -1898,6 +1898,15 @@ list.typoscript = {
maintainers = { "@Teddytrombone" },
}
+list.udev = {
+ install_info = {
+ url = "https://github.com/ObserverOfTime/tree-sitter-udev",
+ files = { "src/parser.c" },
+ },
+ filetype = "udevrules",
+ maintainers = { "@ObserverOfTime" },
+}
+
list.ungrammar = {
install_info = {
url = "https://github.com/Philipp-M/tree-sitter-ungrammar",
diff --git a/queries/udev/highlights.scm b/queries/udev/highlights.scm
new file mode 100644
index 000000000..1a8514ea8
--- /dev/null
+++ b/queries/udev/highlights.scm
@@ -0,0 +1,53 @@
+(match key: _ @keyword)
+
+(assignment key: _ @property)
+
+(value) @string
+
+; NOTE: higher priorities override bash highlights
+
+((fmt_sub . _ @character.special)
+ (#set! "priority" 101))
+
+((var_sub . _ @variable.builtin)
+ (#set! "priority" 101))
+
+[
+ (system_const)
+ (run_type)
+ (import_type)
+ (kernel_param)
+ (seclabel)
+] @attribute
+
+((attribute) @attribute
+ (#set! "priority" 101))
+
+((env_var) @constant
+ (#set! "priority" 101))
+
+((pattern) @string.special
+ (#set! "priority" 101))
+
+([ "\\\"" (c_escape) ] @string.escape
+ (#set! "priority" 101))
+
+(octal) @number
+
+((number) @number
+ (#set! "priority" 101))
+
+[
+ (match_op)
+ (assignment_op)
+] @operator
+
+("+" @punctuation.special
+ (#set! "priority" 101))
+
+([ "{" "}" ] @punctuation.bracket
+ (#set! "priority" 101))
+
+[ "," (linebreak) ] @punctuation.delimiter
+
+(comment) @comment @spell
diff --git a/queries/udev/injections.scm b/queries/udev/injections.scm
new file mode 100644
index 000000000..5618e65de
--- /dev/null
+++ b/queries/udev/injections.scm
@@ -0,0 +1,12 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
+
+((match
+ key: "PROGRAM"
+ (value (content) @injection.content))
+ (#set! injection.language "bash"))
+
+((assignment
+ key: "RUN"
+ (value (content) @injection.content))
+ (#set! injection.language "bash"))