aboutsummaryrefslogtreecommitdiffstats
path: root/queries
diff options
context:
space:
mode:
authorSerhii Khoma <srghma@gmail.com>2024-12-30 23:48:20 +0700
committerGitHub <noreply@github.com>2024-12-30 08:48:20 -0800
commitf87c8956aee2bb0a2406f70751d100a843abb2e4 (patch)
tree5a6dfe52d1c3d124fac71791a4737c9a3ab48ef0 /queries
parentfeat(ruby): add injection for debugger command strings (#7480) (diff)
downloadnvim-treesitter-f87c8956aee2bb0a2406f70751d100a843abb2e4.tar
nvim-treesitter-f87c8956aee2bb0a2406f70751d100a843abb2e4.tar.gz
nvim-treesitter-f87c8956aee2bb0a2406f70751d100a843abb2e4.tar.bz2
nvim-treesitter-f87c8956aee2bb0a2406f70751d100a843abb2e4.tar.lz
nvim-treesitter-f87c8956aee2bb0a2406f70751d100a843abb2e4.tar.xz
nvim-treesitter-f87c8956aee2bb0a2406f70751d100a843abb2e4.tar.zst
nvim-treesitter-f87c8956aee2bb0a2406f70751d100a843abb2e4.zip
feat(ipkg): add parser and queries (#7277)
Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
Diffstat (limited to 'queries')
-rw-r--r--queries/ipkg/folds.scm13
-rw-r--r--queries/ipkg/highlights.scm56
-rw-r--r--queries/ipkg/indents.scm33
-rw-r--r--queries/ipkg/injections.scm5
-rw-r--r--queries/ipkg/locals.scm24
5 files changed, 131 insertions, 0 deletions
diff --git a/queries/ipkg/folds.scm b/queries/ipkg/folds.scm
new file mode 100644
index 000000000..271654f9a
--- /dev/null
+++ b/queries/ipkg/folds.scm
@@ -0,0 +1,13 @@
+[
+ (source_file)
+ (dependency_list)
+ (module_list)
+ (dependency_declaration)
+ (module_declaration)
+ (module_declaration)
+ (package_declaration)
+ (main_declaration)
+ (executable_declaration)
+ (version_declaration)
+ (langversion_declaration)
+] @fold
diff --git a/queries/ipkg/highlights.scm b/queries/ipkg/highlights.scm
new file mode 100644
index 000000000..13c102018
--- /dev/null
+++ b/queries/ipkg/highlights.scm
@@ -0,0 +1,56 @@
+; Keywords
+"package" @keyword.import
+
+[
+ "authors"
+ "maintainers"
+ "license"
+ "brief"
+ "readme"
+ "homepage"
+ "sourceloc"
+ "bugtracker"
+ "opts"
+ "sourcedir"
+ "builddir"
+ "outputdir"
+ "prebuild"
+ "postbuild"
+ "preinstall"
+ "postinstall"
+ "preclean"
+ "postclean"
+ "version"
+ "langversion"
+ "modules"
+ "main"
+ "executable"
+ "depends"
+] @keyword
+
+[
+ "="
+ (version_range_op)
+] @operator
+
+"," @punctuation.delimiter
+
+; Field values
+(string_value) @string
+
+(boolean_value) @boolean
+
+; Version numbers and ranges
+(version_number) @string.special
+
+[
+ (dependency_item)
+ (package_name)
+ (module_name)
+] @module
+
+; Comments
+[
+ (line_comment)
+ (block_comment)
+] @comment @spell
diff --git a/queries/ipkg/indents.scm b/queries/ipkg/indents.scm
new file mode 100644
index 000000000..a596e9ebe
--- /dev/null
+++ b/queries/ipkg/indents.scm
@@ -0,0 +1,33 @@
+; Indentation rules for Idris .ipkg files
+[
+ (package_declaration)
+ (field_declaration)
+ (main_declaration)
+ (executable_declaration)
+ (version_declaration)
+ (langversion_declaration)
+] @indent.begin
+
+(dependency_declaration
+ "=" @indent.begin
+ (dependency_list
+ "," @indent.begin))
+
+(module_declaration
+ "=" @indent.begin
+ (module_list
+ "," @indent.begin))
+
+(field_declaration
+ "=" @indent.begin)
+
+"=" @indent.branch
+
+(string_value) @indent.begin
+
+[
+ (line_comment)
+ (block_comment)
+] @indent.ignore
+
+(ERROR) @indent.auto
diff --git a/queries/ipkg/injections.scm b/queries/ipkg/injections.scm
new file mode 100644
index 000000000..3cd6aac8e
--- /dev/null
+++ b/queries/ipkg/injections.scm
@@ -0,0 +1,5 @@
+([
+ (line_comment)
+ (block_comment)
+] @injection.content
+ (#set! injection.language "comment"))
diff --git a/queries/ipkg/locals.scm b/queries/ipkg/locals.scm
new file mode 100644
index 000000000..c1970fcdf
--- /dev/null
+++ b/queries/ipkg/locals.scm
@@ -0,0 +1,24 @@
+; Scopes
+(source_file) @local.scope
+
+; Definitions
+(package_declaration
+ (package_name) @local.definition.import)
+
+(module_declaration
+ (module_list
+ (module_name) @local.definition.namespace))
+
+(main_declaration
+ (module_name) @local.definition.import)
+
+(executable_declaration
+ (package_name) @local.definition.import)
+
+; References
+(dependency_declaration
+ (dependency_list
+ (dependency_item
+ (package_name) @local.reference)))
+
+(module_name) @local.reference