summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Valdez <omarantoniovaldezf2@gmail.com>2024-10-20 01:10:30 -0700
committerGitHub <noreply@github.com>2024-10-20 10:10:30 +0200
commit3ba21f96a434facb306f9fbe2f2e106859b28ba4 (patch)
treed62ab44f51273cb96e8755ed74d86f8969806ef5
parentbot(lockfile): update devicetree, editorconfig, json, markdown, markdown_inli... (diff)
downloadnvim-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.json3
-rw-r--r--lua/nvim-treesitter/parsers.lua9
-rw-r--r--queries/xresources/folds.scm10
-rw-r--r--queries/xresources/highlights.scm75
-rw-r--r--queries/xresources/injections.scm5
-rw-r--r--queries/xresources/locals.scm12
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