aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorObserverOfTime <chronobserver@disroot.org>2023-07-24 13:07:35 +0300
committerObserverOfTime <chronobserver@disroot.org>2023-08-10 23:17:56 +0300
commit898f9c13d60bd51bdf873e284177f98264f0954f (patch)
tree2c8fcbed09bfa14088f9d6bdc8f46b88e8dae00c
parentfeat(go): add `max` and `min` to `@function.builtin` (diff)
downloadnvim-treesitter-898f9c13d60bd51bdf873e284177f98264f0954f.tar
nvim-treesitter-898f9c13d60bd51bdf873e284177f98264f0954f.tar.gz
nvim-treesitter-898f9c13d60bd51bdf873e284177f98264f0954f.tar.bz2
nvim-treesitter-898f9c13d60bd51bdf873e284177f98264f0954f.tar.lz
nvim-treesitter-898f9c13d60bd51bdf873e284177f98264f0954f.tar.xz
nvim-treesitter-898f9c13d60bd51bdf873e284177f98264f0954f.tar.zst
nvim-treesitter-898f9c13d60bd51bdf873e284177f98264f0954f.zip
feat: add requirements parser
-rw-r--r--README.md1
-rw-r--r--lockfile.json3
-rw-r--r--lua/nvim-treesitter/parsers.lua9
-rw-r--r--queries/requirements/highlights.scm47
-rw-r--r--queries/requirements/injections.scm1
5 files changed, 61 insertions, 0 deletions
diff --git a/README.md b/README.md
index d33e4a790..fdc643170 100644
--- a/README.md
+++ b/README.md
@@ -320,6 +320,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [rasi](https://github.com/Fymyte/tree-sitter-rasi) (maintained by @Fymyte)
- [x] [regex](https://github.com/tree-sitter/tree-sitter-regex) (maintained by @theHamsta)
- [x] [rego](https://github.com/FallenAngel97/tree-sitter-rego) (maintained by @FallenAngel97)
+- [x] [pip requirements](https://github.com/ObserverOfTime/tree-sitter-requirements) (maintained by @ObserverOfTime)
- [x] [rnoweb](https://github.com/bamonroe/tree-sitter-rnoweb) (maintained by @bamonroe)
- [x] [robot](https://github.com/Hubro/tree-sitter-robot) (experimental, maintained by @ema2159)
- [x] [ron](https://github.com/amaanq/tree-sitter-ron) (maintained by @amaanq)
diff --git a/lockfile.json b/lockfile.json
index 43d78ce11..495dc384f 100644
--- a/lockfile.json
+++ b/lockfile.json
@@ -440,6 +440,9 @@
"rego": {
"revision": "b2667c975f07b33be3ceb83bea5cfbad88095866"
},
+ "requirements": {
+ "revision": "56ddb4dad2ea0761d20c0995a0de2990caa350b5"
+ },
"rnoweb": {
"revision": "502c1126dc6777f09af5bef16e72a42f75bd081e"
},
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 6ac8be998..3c1040367 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -1310,6 +1310,15 @@ list.rego = {
maintainers = { "@FallenAngel97" },
}
+list.requirements = {
+ install_info = {
+ url = "https://github.com/ObserverOfTime/tree-sitter-requirements",
+ files = { "src/parser.c" },
+ },
+ maintainers = { "@ObserverOfTime" },
+ readme_name = "pip requirements",
+}
+
list.rnoweb = {
install_info = {
url = "https://github.com/bamonroe/tree-sitter-rnoweb",
diff --git a/queries/requirements/highlights.scm b/queries/requirements/highlights.scm
new file mode 100644
index 000000000..04942ca68
--- /dev/null
+++ b/queries/requirements/highlights.scm
@@ -0,0 +1,47 @@
+;; packages
+
+(package) @variable
+
+(extras (package) @parameter)
+
+(path) @text.underline @string.special
+
+(url) @text.uri
+
+;; versions
+
+(version_cmp) @operator
+
+(version) @number
+
+;; markers
+
+(marker_var) @attribute
+
+(marker_op) @keyword.operator
+
+;; options
+
+(option) @function
+
+"=" @operator
+
+;; punctuation
+
+[ "[" "]" "(" ")" ] @punctuation.bracket
+
+[ "," ";" "@" ] @punctuation.delimiter
+
+[ "${" "}" ] @punctuation.special
+
+;; misc
+
+(env_var) @constant
+
+(quoted_string) @string
+
+(linebreak) @character.special
+
+(ERROR) @error
+
+(comment) @comment @spell
diff --git a/queries/requirements/injections.scm b/queries/requirements/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/requirements/injections.scm
@@ -0,0 +1 @@
+(comment) @comment