summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJędrzej Boczar <yendreij@gmail.com>2021-02-10 22:18:38 +0100
committerGitHub <noreply@github.com>2021-02-10 22:18:38 +0100
commit517c62d3e5a1966fc710d947224dc6ad1dfa383a (patch)
treed879af25069b4ddfee9ad6863defda9f74c7b238
parent98127bded69adc6f466cfa3eaeeb8131da6c9221 (diff)
Add devicetree parser with queries (#900)
* Add devicetree parser with queries * [docgen] Update README.md skip-checks: true * queries/devicetree: update highlight capture groups * minor fix in CONTRIBUTING.md * Revert "minor fix in CONTRIBUTING.md" This reverts commit 23622b49dbb9eace471e036c0f94fc64b5fda951. * queries/devicetree: add self as maintainer * [docgen] Update README.md skip-checks: true Co-authored-by: Github Actions <actions@github>
-rw-r--r--README.md1
-rw-r--r--lua/nvim-treesitter/parsers.lua10
-rw-r--r--queries/devicetree/folds.scm1
-rw-r--r--queries/devicetree/highlights.scm35
-rw-r--r--queries/devicetree/indents.scm14
-rw-r--r--queries/devicetree/locals.scm4
6 files changed, 65 insertions, 0 deletions
diff --git a/README.md b/README.md
index 8fde2bb2..eff43e4d 100644
--- a/README.md
+++ b/README.md
@@ -139,6 +139,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [cpp](https://github.com/tree-sitter/tree-sitter-cpp) (maintained by @theHamsta)
- [x] [css](https://github.com/tree-sitter/tree-sitter-css) (maintained by @TravonteD)
- [x] [dart](https://github.com/UserNobody14/tree-sitter-dart) (maintained by @Akin909)
+- [x] [devicetree](https://github.com/joelspadin/tree-sitter-devicetree) (maintained by @jedrzejboczar)
- [ ] [elm](https://github.com/elm-tooling/tree-sitter-elm)
- [x] [erlang](https://github.com/AbstractMachinesLab/tree-sitter-erlang) (maintained by @ostera)
- [x] [fennel](https://github.com/travonted/tree-sitter-fennel) (maintained by @TravonteD)
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 7be10c84..547556cd 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -416,6 +416,16 @@ list.turtle = {
maintainers = { "@bonabeavis" },
}
+list.devicetree = {
+ install_info = {
+ url = "https://github.com/joelspadin/tree-sitter-devicetree",
+ files = { "src/parser.c" },
+ branch = "main",
+ },
+ filetype = 'dts',
+ maintainers = { "@jedrzejboczar" },
+}
+
local M = {
list = list
}
diff --git a/queries/devicetree/folds.scm b/queries/devicetree/folds.scm
new file mode 100644
index 00000000..206c4bed
--- /dev/null
+++ b/queries/devicetree/folds.scm
@@ -0,0 +1 @@
+(node) @fold
diff --git a/queries/devicetree/highlights.scm b/queries/devicetree/highlights.scm
new file mode 100644
index 00000000..e3140a5d
--- /dev/null
+++ b/queries/devicetree/highlights.scm
@@ -0,0 +1,35 @@
+(comment) @comment
+
+[
+ (preproc_include)
+ (dtsi_include)
+] @include
+
+(preproc_def) @constant.macro
+(preproc_function_def) @function.macro
+
+[
+ (memory_reservation)
+ (file_version)
+] @attribute
+
+[
+ (string_literal)
+ (byte_string_literal)
+ (system_lib_string)
+] @string
+
+(integer_literal) @number
+
+(identifier) @variable
+(node (identifier) @namespace)
+(property (identifier) @property)
+(labeled_item (identifier) @label)
+(call_expression (identifier) @function.macro)
+
+(reference) @label ; referencing labeled_item.identifier
+(unit_address) @constant
+
+[ "=" ] @operator
+[ "(" ")" "[" "]" "{" "}" "<" ">" ] @punctuation.bracket
+[ ";" ":" "," "@" ] @punctuation.delimiter
diff --git a/queries/devicetree/indents.scm b/queries/devicetree/indents.scm
new file mode 100644
index 00000000..cd7c8fcd
--- /dev/null
+++ b/queries/devicetree/indents.scm
@@ -0,0 +1,14 @@
+[
+ (node)
+ (property)
+ (integer_cells)
+] @indent
+
+[
+ "}"
+ ">"
+] @branch
+
+[
+ (comment)
+] @ignore
diff --git a/queries/devicetree/locals.scm b/queries/devicetree/locals.scm
new file mode 100644
index 00000000..95b124bd
--- /dev/null
+++ b/queries/devicetree/locals.scm
@@ -0,0 +1,4 @@
+[
+ (node)
+ (integer_cells)
+]@scope