diff options
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | lockfile.json | 3 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 8 | ||||
| -rw-r--r-- | queries/ipkg/folds.scm | 13 | ||||
| -rw-r--r-- | queries/ipkg/highlights.scm | 56 | ||||
| -rw-r--r-- | queries/ipkg/indents.scm | 33 | ||||
| -rw-r--r-- | queries/ipkg/injections.scm | 5 | ||||
| -rw-r--r-- | queries/ipkg/locals.scm | 24 |
8 files changed, 143 insertions, 0 deletions
@@ -293,6 +293,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [idl](https://github.com/cathaysia/tree-sitter-idl) (maintained by @cathaysia) - [x] [ini](https://github.com/justinmk/tree-sitter-ini) (experimental, maintained by @theHamsta) - [x] [inko](https://github.com/inko-lang/tree-sitter-inko) (maintained by @yorickpeterse) +- [x] [ipkg](https://github.com/srghma/tree-sitter-ipkg) (maintained by @srghma) - [x] [ispc](https://github.com/fab4100/tree-sitter-ispc) (maintained by @fab4100) - [x] [janet_simple](https://github.com/sogaiu/tree-sitter-janet-simple) (maintained by @sogaiu) - [x] [java](https://github.com/tree-sitter/tree-sitter-java) (maintained by @p00f) diff --git a/lockfile.json b/lockfile.json index 6e83933f5..3f72f18cf 100644 --- a/lockfile.json +++ b/lockfile.json @@ -359,6 +359,9 @@ "inko": { "revision": "0b08a8f976456a9271f70d4682143328d7224115" }, + "ipkg": { + "revision": "8d3e9782f2d091d0cd39c13bfb3068db0c675960" + }, "ispc": { "revision": "9b2f9aec2106b94b4e099fe75e73ebd8ae707c04" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 1fe72bc89..d2259c9bb 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1068,6 +1068,14 @@ list.inko = { maintainers = { "@yorickpeterse" }, } +list.ipkg = { + install_info = { + url = "https://github.com/srghma/tree-sitter-ipkg", + files = { "src/parser.c", "src/scanner.c" }, + }, + maintainers = { "@srghma" }, +} + list.ispc = { install_info = { url = "https://github.com/fab4100/tree-sitter-ispc", 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 |
