feat: add udev rules parser

This commit is contained in:
ObserverOfTime 2023-11-03 14:20:46 +02:00
parent e903dd54e9
commit 9a746b4b6a
5 changed files with 78 additions and 0 deletions

View file

@ -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)

View file

@ -647,6 +647,9 @@
"typoscript": {
"revision": "43b221c0b76e77244efdaa9963e402a17c930fbc"
},
"udev": {
"revision": "e3ad4cb3c59e4c71a177cd4af62958749e53a8bd"
},
"ungrammar": {
"revision": "debd26fed283d80456ebafa33a06957b0c52e451"
},

View file

@ -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",

View file

@ -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

View file

@ -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"))