summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Kennedy <colinvfx@gmail.com>2023-10-22 02:05:20 -0700
committerGitHub <noreply@github.com>2023-10-22 12:05:20 +0300
commit0179a89656b4ce395a4487c07ae385b8425524ae (patch)
tree67ad53e995666a0a2aee1e0b32d99d4802981f5b
parentUpdate parsers: gn, leo, liquidsoap (diff)
downloadnvim-treesitter-0179a89656b4ce395a4487c07ae385b8425524ae.tar
nvim-treesitter-0179a89656b4ce395a4487c07ae385b8425524ae.tar.gz
nvim-treesitter-0179a89656b4ce395a4487c07ae385b8425524ae.tar.bz2
nvim-treesitter-0179a89656b4ce395a4487c07ae385b8425524ae.tar.lz
nvim-treesitter-0179a89656b4ce395a4487c07ae385b8425524ae.tar.xz
nvim-treesitter-0179a89656b4ce395a4487c07ae385b8425524ae.tar.zst
nvim-treesitter-0179a89656b4ce395a4487c07ae385b8425524ae.zip
feat: add objdump to the supported languages (#5548)
-rw-r--r--README.md1
-rw-r--r--lockfile.json3
-rw-r--r--lua/nvim-treesitter/parsers.lua8
-rw-r--r--queries/objdump/highlights.scm35
-rw-r--r--queries/objdump/injections.scm6
5 files changed, 53 insertions, 0 deletions
diff --git a/README.md b/README.md
index 70a269b61..444e79e5f 100644
--- a/README.md
+++ b/README.md
@@ -305,6 +305,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [norg](https://github.com/nvim-neorg/tree-sitter-norg) (maintained by @JoeyGrajciar, @vhyrro)
- [x] [nqc](https://github.com/amaanq/tree-sitter-nqc) (maintained by @amaanq)
- [x] [objc](https://github.com/amaanq/tree-sitter-objc) (maintained by @amaanq)
+- [x] [objdump](https://github.com/ColinKennedy/tree-sitter-objdump) (maintained by @ColinKennedy)
- [x] [ocaml](https://github.com/tree-sitter/tree-sitter-ocaml) (maintained by @undu)
- [x] [ocaml_interface](https://github.com/tree-sitter/tree-sitter-ocaml) (maintained by @undu)
- [x] [ocamllex](https://github.com/atom-ocaml/tree-sitter-ocamllex) (maintained by @undu)
diff --git a/lockfile.json b/lockfile.json
index 25852a9b0..58a0ff759 100644
--- a/lockfile.json
+++ b/lockfile.json
@@ -395,6 +395,9 @@
"objc": {
"revision": "62e61b6f5c0289c376d61a8c91faf6435cde9012"
},
+ "objdump": {
+ "revision": "64e4741d58345c36ded639f5a3bcd7811be7f8f8"
+ },
"ocaml": {
"revision": "694c57718fd85d514f8b81176038e7a4cfabcaaf"
},
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 82f3fd775..3e4e39006 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -1188,6 +1188,14 @@ list.objc = {
maintainers = { "@amaanq" },
}
+list.objdump = {
+ install_info = {
+ url = "https://github.com/ColinKennedy/tree-sitter-objdump",
+ files = { "src/parser.c", "src/scanner.c" },
+ },
+ maintainers = { "@ColinKennedy" },
+}
+
list.ocaml = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-ocaml",
diff --git a/queries/objdump/highlights.scm b/queries/objdump/highlights.scm
new file mode 100644
index 000000000..d23f5a0d9
--- /dev/null
+++ b/queries/objdump/highlights.scm
@@ -0,0 +1,35 @@
+(byte) @constant
+
+[
+ (hexadecimal)
+ (integer)
+ (address)
+] @number
+
+[
+ "file" "format"
+ "File" "Offset:"
+ "discriminator"
+] @text
+"Disassembly of section " @text.title
+
+(section_address) @number @text.underline
+
+(identifier) @variable
+(code_location (identifier) @function.call)
+(header (identifier) @keyword)
+(disassembly_section_label (identifier) @namespace)
+(disassembly_section (identifier) @namespace)
+
+[(file_offset) (discriminator)] @field
+
+(file_path) @string
+(instruction) @function
+(bad_instruction) @text.warning
+(label) @label
+
+["<" ">"] @punctuation.special
+["(" ")"] @punctuation.bracket
+["+" ":"] @punctuation.delimiter
+
+(comment) @comment.documentation
diff --git a/queries/objdump/injections.scm b/queries/objdump/injections.scm
new file mode 100644
index 000000000..9fb52dafe
--- /dev/null
+++ b/queries/objdump/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"))