diff options
| author | Omar Valdez <omarantoniovaldezf2@gmail.com> | 2024-10-20 01:10:30 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-20 10:10:30 +0200 |
| commit | 3ba21f96a434facb306f9fbe2f2e106859b28ba4 (patch) | |
| tree | d62ab44f51273cb96e8755ed74d86f8969806ef5 | |
| parent | bot(lockfile): update devicetree, editorconfig, json, markdown, markdown_inli... (diff) | |
| download | nvim-treesitter-3ba21f96a434facb306f9fbe2f2e106859b28ba4.tar nvim-treesitter-3ba21f96a434facb306f9fbe2f2e106859b28ba4.tar.gz nvim-treesitter-3ba21f96a434facb306f9fbe2f2e106859b28ba4.tar.bz2 nvim-treesitter-3ba21f96a434facb306f9fbe2f2e106859b28ba4.tar.lz nvim-treesitter-3ba21f96a434facb306f9fbe2f2e106859b28ba4.tar.xz nvim-treesitter-3ba21f96a434facb306f9fbe2f2e106859b28ba4.tar.zst nvim-treesitter-3ba21f96a434facb306f9fbe2f2e106859b28ba4.zip | |
feat(xresources): add parser and queries (#7260)
| -rw-r--r-- | lockfile.json | 3 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 9 | ||||
| -rw-r--r-- | queries/xresources/folds.scm | 10 | ||||
| -rw-r--r-- | queries/xresources/highlights.scm | 75 | ||||
| -rw-r--r-- | queries/xresources/injections.scm | 5 | ||||
| -rw-r--r-- | queries/xresources/locals.scm | 12 |
6 files changed, 114 insertions, 0 deletions
diff --git a/lockfile.json b/lockfile.json index c11692a43..1077dcfd6 100644 --- a/lockfile.json +++ b/lockfile.json @@ -878,6 +878,9 @@ "xml": { "revision": "809266ed1694d64dedc168a18893cc254e3edf7e" }, + "xresources": { + "revision": "702e1e64ae14635346ffeb945d16f42d009c147a" + }, "yaml": { "revision": "7b03feefd36b5f155465ca736c6304aca983b267" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 48beabd9b..f6731303d 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -2533,6 +2533,15 @@ list.xml = { maintainers = { "@ObserverOfTime" }, } +list.xresources = { + install_info = { + url = "https://github.com/ValdezFOmar/tree-sitter-xresources", + files = { "src/parser.c" }, + }, + filetype = "xdefaults", + maintainers = { "@ValdezFOmar" }, +} + list.yaml = { install_info = { url = "https://github.com/tree-sitter-grammars/tree-sitter-yaml", diff --git a/queries/xresources/folds.scm b/queries/xresources/folds.scm new file mode 100644 index 000000000..9cc7d5cec --- /dev/null +++ b/queries/xresources/folds.scm @@ -0,0 +1,10 @@ +[ + (elif_directive) + (elifdef_directive) + (else_directive) + (if_directive) + (ifdef_directive) + (preprocessor_comment) + (comment)+ + (include_directive)+ +] @fold diff --git a/queries/xresources/highlights.scm b/queries/xresources/highlights.scm new file mode 100644 index 000000000..4bf394788 --- /dev/null +++ b/queries/xresources/highlights.scm @@ -0,0 +1,75 @@ +[ + (comment) + (preprocessor_comment) +] @comment @spell + +"#include" @keyword.import + +[ + "#define" + "#undef" +] @keyword.directive.define + +[ + "#if" + "#ifdef" + "#ifndef" + "#elif" + "#elifdef" + "#elifndef" + "#else" + "#endif" + (directive) +] @keyword.directive + +(identifier) @variable + +(define_directive + name: (identifier) @constant.macro) + +(define_function_directive + name: (identifier) @function.macro) + +(parameters + (identifier) @variable.parameter) + +"..." @variable.parameter.builtin + +(undef_directive + name: (identifier) @constant.macro) + +(ifdef_directive + condition: (identifier) @constant.macro) + +(elifdef_directive + condition: (identifier) @constant.macro) + +(expansion) @markup.raw + +(component) @variable.member + +(components + (component) @property .) + +[ + (string) + (resource_value) +] @string + +(escape_sequence) @string.escape + +[ + "*" + (any_component) +] @character.special + +[ + "." + "," + ":" +] @punctuation.delimiter + +[ + "(" + ")" +] @punctuation.bracket diff --git a/queries/xresources/injections.scm b/queries/xresources/injections.scm new file mode 100644 index 000000000..1f12a2148 --- /dev/null +++ b/queries/xresources/injections.scm @@ -0,0 +1,5 @@ +([ + (comment) + (preprocessor_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/queries/xresources/locals.scm b/queries/xresources/locals.scm new file mode 100644 index 000000000..a7f932418 --- /dev/null +++ b/queries/xresources/locals.scm @@ -0,0 +1,12 @@ +(define_directive + name: (identifier) @local.definition.macro) + +(define_function_directive + name: (identifier) @local.definition.macro) + +(parameters + (identifier) @local.definition.parameter) + +(identifier) @local.reference + +(resources) @local.scope |
