From 4362b04a294857796156862c0127c6f236bc8da9 Mon Sep 17 00:00:00 2001 From: Colin Kennedy Date: Wed, 24 Jan 2024 16:25:40 -0800 Subject: [PATCH] feat: add tree-sitter-disassembly --- README.md | 1 + lockfile.json | 3 +++ lua/nvim-treesitter/parsers.lua | 8 ++++++++ queries/disassembly/highlights.scm | 18 ++++++++++++++++++ queries/disassembly/injections.scm | 6 ++++++ 5 files changed, 36 insertions(+) create mode 100644 queries/disassembly/highlights.scm create mode 100644 queries/disassembly/injections.scm diff --git a/README.md b/README.md index 690d42cbe..76ff66f00 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [devicetree](https://github.com/joelspadin/tree-sitter-devicetree) (maintained by @jedrzejboczar) - [x] [dhall](https://github.com/jbellerb/tree-sitter-dhall) (maintained by @amaanq) - [x] [diff](https://github.com/the-mikedavis/tree-sitter-diff) (maintained by @gbprod) +- [x] [disassembly](https://github.com/ColinKennedy/tree-sitter-disassembly) (maintained by @ColinKennedy) - [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] [doxygen](https://github.com/amaanq/tree-sitter-doxygen) (maintained by @amaanq) diff --git a/lockfile.json b/lockfile.json index fff691ba5..50ca6113a 100644 --- a/lockfile.json +++ b/lockfile.json @@ -110,6 +110,9 @@ "diff": { "revision": "c165725c28e69b36c5799ff0e458713a844f1aaf" }, + "disassembly": { + "revision": "e48ebe20581145b381204cf21adf305e29329b5d" + }, "dockerfile": { "revision": "33e22c33bcdbfc33d42806ee84cfd0b1248cc392" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 05a76bd0e..50ab51111 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -388,6 +388,14 @@ list.diff = { maintainers = { "@gbprod" }, } +list.disassembly = { + install_info = { + url = "https://github.com/ColinKennedy/tree-sitter-disassembly", + files = { "src/parser.c", "src/scanner.c" }, + }, + maintainers = { "@ColinKennedy" }, +} + list.dockerfile = { install_info = { url = "https://github.com/camdencheek/tree-sitter-dockerfile", diff --git a/queries/disassembly/highlights.scm b/queries/disassembly/highlights.scm new file mode 100644 index 000000000..2a1e2cdf4 --- /dev/null +++ b/queries/disassembly/highlights.scm @@ -0,0 +1,18 @@ +(byte) @constant + +[ + (address) + (hexadecimal) + (integer) +] @number + +(identifier) @variable + +(bad_instruction) @text.warning +(code_location (identifier) @function.call) +(comment) @comment +(instruction) @function +(memory_dump) @string + +["<" ">"] @punctuation.special +["+" ":"] @punctuation.delimiter diff --git a/queries/disassembly/injections.scm b/queries/disassembly/injections.scm new file mode 100644 index 000000000..9fb52dafe --- /dev/null +++ b/queries/disassembly/injections.scm @@ -0,0 +1,6 @@ +; TODO: https://github.com/nvim-treesitter/nvim-treesitter/pull/5548#issuecomment-1773707396 +; +; To be added once a compatible Assembly parser is merged into nvim-treesitter +; +; ((instruction) @injection.content +; (#set! injection.language "asm"))