on master help sign in
feat(lang): add devicetree (Flattened Device Tree Source) (#2329)
commit8e77e3388c5ea23f22bb5f8e7ff50906ff0116a3 authorunrelentingtech <greg@unrelenting.technology> dateFri 29 Apr 2022, 23:08 (5 years ago) parent030e7ab
4 files changed+92
book/src/generated/lang-support.md+1 languages.toml+13 runtime/queries/devicetree/highlights.scm+66 runtime/queries/devicetree/indents.scm+12
book/src/generated/lang-support.md+1
@@ -8,6 +8,7 @@
88| cpp | ✓ | ✓ | ✓ | `clangd` |
99| css | ✓ | | | `vscode-css-language-server` |
1010| dart | ✓ | | ✓ | `dart` |
11+| devicetree | ✓ | | ✓ | |
1112| dockerfile | ✓ | | | `docker-langserver` |
1213| eex | ✓ | | | |
1314| ejs | ✓ | | | |
languages.toml+13
@@ -1263,3 +1263,16 @@ indent = { tab-width = 4, unit = "\t" }
12631263[[grammar]]
12641264name = "hare"
12651265source = { git = "https://git.sr.ht/~ecmma/tree-sitter-hare", rev = "bc26a6a949f2e0d98b7bfc437d459b250900a165" }
1266+
1267+[[language]]
1268+name = "devicetree"
1269+scope = "source.devicetree"
1270+injection-regex = "(dtsi?|devicetree|fdt)"
1271+file-types = ["dts", "dtsi"]
1272+roots = []
1273+comment-token = "//"
1274+indent = { tab-width = 4, unit = "\t" }
1275+
1276+[[grammar]]
1277+name = "devicetree"
1278+source = { git = "https://github.com/joelspadin/tree-sitter-devicetree", rev = "877adbfa0174d25894c40fa75ad52d4515a36368" }
runtime/queries/devicetree/highlights.scmnew file+66
@@ -0,0 +1,66 @@
1+[
2+ "/dts-v1/"
3+ "/memreserve/"
4+ "/delete-node/"
5+ "/delete-property/"
6+] @keyword
7+
8+[
9+ "#define"
10+ "#include"
11+] @keyword.directive
12+
13+[
14+ "!"
15+ "~"
16+ "-"
17+ "+"
18+ "*"
19+ "/"
20+ "%"
21+ "||"
22+ "&&"
23+ "|"
24+ "^"
25+ "&"
26+ "=="
27+ "!="
28+ ">"
29+ ">="
30+ "<="
31+ ">"
32+ "<<"
33+ ">>"
34+] @operator
35+
36+[
37+ ","
38+ ";"
39+] @punctuation.delimiter
40+
41+[
42+ "("
43+ ")"
44+ "{"
45+ "}"
46+ "<"
47+ ">"
48+] @punctuation.bracket
49+
50+(string_literal) @string
51+
52+(integer_literal) @constant.numeric.integer
53+
54+(call_expression
55+ function: (identifier) @function)
56+
57+(labeled_item
58+ label: (identifier) @label)
59+
60+(identifier) @variable
61+
62+(unit_address) @tag
63+
64+(reference) @constant
65+
66+(comment) @comment
runtime/queries/devicetree/indents.scmnew file+12
@@ -0,0 +1,12 @@
1+[
2+ (node)
3+ (byte_string_literal)
4+ (parenthesized_expression)
5+ (argument_list)
6+] @indent
7+
8+[
9+ "}"
10+ "]"
11+ ")"
12+] @outdent