From f900e5dfc889f5c48803d0723ec395ffe46e7bad Mon Sep 17 00:00:00 2001 From: rydesun Date: Wed, 1 Sep 2021 22:25:45 +0800 Subject: Add tree-sitter-dot (#1770) * Add tree-sitter-dot * Fix DOT highlights * highlights(DOT): add HTML string * Remove DOT ftdetect Vim and Neovim runtime have added DOT filetype detection * Update DOT highlights --- README.md | 1 + lua/nvim-treesitter/parsers.lua | 9 +++++++++ queries/dot/highlights.scm | 45 +++++++++++++++++++++++++++++++++++++++++ queries/dot/injections.scm | 1 + 4 files changed, 56 insertions(+) create mode 100644 queries/dot/highlights.scm create mode 100644 queries/dot/injections.scm diff --git a/README.md b/README.md index ca8edc4f..78f380da 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [dart](https://github.com/UserNobody14/tree-sitter-dart) (maintained by @Akin909) - [x] [devicetree](https://github.com/joelspadin/tree-sitter-devicetree) (maintained by @jedrzejboczar) - [x] [dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) (maintained by @camdencheek) +- [x] [DOT](https://github.com/rydesun/tree-sitter-dot) (maintained by @rydesun) - [x] [elixir](https://github.com/ananthakumaran/tree-sitter-elixir) (maintained by @nifoc) - [ ] [elm](https://github.com/elm-tooling/tree-sitter-elm) - [x] [erlang](https://github.com/AbstractMachinesLab/tree-sitter-erlang) (maintained by @ostera) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 7b9d28b1..9c59cbd9 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -94,6 +94,15 @@ list.dockerfile = { maintainers = { "@camdencheek" }, } +list.dot = { + install_info = { + url = "https://github.com/rydesun/tree-sitter-dot", + branch = "main", + files = { "src/parser.c" }, + }, + maintainers = { "@rydesun" }, +} + list.rust = { install_info = { url = "https://github.com/tree-sitter/tree-sitter-rust", diff --git a/queries/dot/highlights.scm b/queries/dot/highlights.scm new file mode 100644 index 00000000..86bb9b30 --- /dev/null +++ b/queries/dot/highlights.scm @@ -0,0 +1,45 @@ +(identifier) @type +(keyword) @keyword +(string_literal) @string +(number_literal) @number + +[ + (edgeop) + (operator) +] @operator + +[ + "," + ";" +] @punctuation.delimiter + +[ + "{" + "}" + "[" + "]" + "<" + ">" +] @punctuation.bracket + +(subgraph + id: (id + (identifier) @namespace) +) + +(attribute + name: (id + (identifier) @field) +) + +(attribute + value: (id + (identifier) @constant) +) + +[ +(comment) +(preproc) +] @comment + +(ERROR) @error diff --git a/queries/dot/injections.scm b/queries/dot/injections.scm new file mode 100644 index 00000000..3dd830b4 --- /dev/null +++ b/queries/dot/injections.scm @@ -0,0 +1 @@ +(html_internal) @html -- cgit v1.2.3