From 2d72fc34d955faf5bc9f65625c0fcf906fd0e7e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Boczar?= Date: Sun, 31 Jan 2021 22:38:51 +0100 Subject: [PATCH] Add devicetree parser with queries --- lua/nvim-treesitter/parsers.lua | 9 +++++++ queries/devicetree/folds.scm | 1 + queries/devicetree/highlights.scm | 40 +++++++++++++++++++++++++++++++ queries/devicetree/indents.scm | 14 +++++++++++ queries/devicetree/locals.scm | 4 ++++ 5 files changed, 68 insertions(+) create mode 100644 queries/devicetree/folds.scm create mode 100644 queries/devicetree/highlights.scm create mode 100644 queries/devicetree/indents.scm create mode 100644 queries/devicetree/locals.scm diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 3099df0f8..362b01c88 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -416,6 +416,15 @@ list.turtle = { maintainers = { "@bonabeavis" }, } +list.devicetree = { + install_info = { + url = "https://github.com/joelspadin/tree-sitter-devicetree", + files = { "src/parser.c" }, + branch = "main", + }, + filetype = 'dts', +} + local M = { list = list } diff --git a/queries/devicetree/folds.scm b/queries/devicetree/folds.scm new file mode 100644 index 000000000..206c4bed8 --- /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 000000000..1bf5e6fa8 --- /dev/null +++ b/queries/devicetree/highlights.scm @@ -0,0 +1,40 @@ +(comment) @comment + +[ + (preproc_include) + (dtsi_include) +] @include + +[ + (preproc_def) +] @constant.macro + +[ + (preproc_function_def) +] @function.macro + +[ + (memory_reservation) + (file_version) +] @annotation + +[ + (string_literal) + (byte_string_literal) + (system_lib_string) +] @string + +(integer_literal) @number + +(identifier) @variable +(node (identifier) @attribute) +(property (identifier) @property) +(labeled_item (identifier) @label) +(call_expression (identifier) @function.macro) + +(reference) @attribute +(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 000000000..cd7c8fcd6 --- /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 000000000..95b124bd1 --- /dev/null +++ b/queries/devicetree/locals.scm @@ -0,0 +1,4 @@ +[ + (node) + (integer_cells) +]@scope