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

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