version 1 of roo perl project

This commit is contained in:
ThatChillGuy 2025-08-27 16:48:34 -05:00
parent dbde23c84e
commit bf90f5ad72
6 changed files with 51 additions and 0 deletions

View file

@ -32,6 +32,7 @@ describe("dist assets", () => {
"tree-sitter-lua.wasm",
"tree-sitter-objc.wasm",
"tree-sitter-ocaml.wasm",
"tree-sitter-perl.wasm",
"tree-sitter-php.wasm",
"tree-sitter-python.wasm",
"tree-sitter-ql.wasm",

View file

@ -89,6 +89,9 @@ const extensions = [
// Embedded Template
"ejs",
"erb",
// Perl
"pl",
"pm",
].map((e) => `.${e}`)
export { extensions }

View file

@ -28,6 +28,7 @@ import {
embeddedTemplateQuery,
elispQuery,
elixirQuery,
perlQuery,
} from "./queries"
export interface LanguageParser {
@ -218,6 +219,11 @@ export async function loadRequiredLanguageParsers(filesToParse: string[], source
language = await loadLanguage("elixir", sourceDirectory)
query = new Query(language, elixirQuery)
break
case "pl":
case "pm":
language = await loadLanguage("perl", sourceDirectory)
query = new Query(language, perlQuery)
break
default:
throw new Error(`Unsupported language: ${ext}`)
}

View file

@ -26,3 +26,4 @@ export { zigQuery } from "./zig"
export { default as embeddedTemplateQuery } from "./embedded_template"
export { elispQuery } from "./elisp"
export { scalaQuery } from "./scala"
export { default as perlQuery } from "./perl"

View file

@ -0,0 +1,40 @@
/*
Perl Tree-sitter Query Patterns - Based on actual node-types.json structure
*/
export default `
; Subroutine declarations (main Perl construct)
(subroutine_declaration_statement
name: (bareword) @name) @definition.function
; Package statements
(package_statement
name: (package) @name) @definition.package
; Use statements (imports)
(use_statement
module: (package) @name) @definition.import
; Method declarations (modern Perl)
(method_declaration_statement
name: (bareword) @name) @definition.method
; Class statements (modern Perl)
(class_statement
name: (package) @name) @definition.class
; Role statements (modern Perl)
(role_statement
name: (package) @name) @definition.role
; Variable declarations - capture any variable declaration
(variable_declaration) @definition.variable
; Assignment expressions for capturing variable assignments
(assignment_expression) @definition.assignment
; Function calls for reference tracking
(function_call_expression) @reference.function
; Method calls for reference tracking
(method_call_expression) @reference.method
`

Binary file not shown.