feat(ipkg): add parser and queries (#7277)

Co-authored-by: ObserverOfTime <chronobserver@disroot.org>
This commit is contained in:
Serhii Khoma 2024-12-30 23:48:20 +07:00 committed by GitHub
parent a295ba13d2
commit f87c8956ae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 143 additions and 0 deletions

View file

@ -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)

View file

@ -359,6 +359,9 @@
"inko": {
"revision": "0b08a8f976456a9271f70d4682143328d7224115"
},
"ipkg": {
"revision": "8d3e9782f2d091d0cd39c13bfb3068db0c675960"
},
"ispc": {
"revision": "9b2f9aec2106b94b4e099fe75e73ebd8ae707c04"
},

View file

@ -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",

13
queries/ipkg/folds.scm Normal file
View file

@ -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

View file

@ -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

33
queries/ipkg/indents.scm Normal file
View file

@ -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

View file

@ -0,0 +1,5 @@
([
(line_comment)
(block_comment)
] @injection.content
(#set! injection.language "comment"))

24
queries/ipkg/locals.scm Normal file
View file

@ -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