mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
fix: simplify bash query patterns for compatibility
This commit is contained in:
parent
0eb381a6fa
commit
066f4e0d23
2 changed files with 27 additions and 55 deletions
|
|
@ -50,18 +50,19 @@ describe("parseSourceCodeDefinitionsForFile with Bash", () => {
|
|||
debugLog("Function definitions found:", parseResult)
|
||||
})
|
||||
|
||||
it("should parse variable declarations and exports", () => {
|
||||
it("should parse variable declarations", () => {
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| GLOBAL_VAR="global_value"/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| export PATH_VAR/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| readonly CONSTANT_VAR/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| declare -a array_var/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| CURRENT_DIR=\$\(/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| declare -A associative_array/)
|
||||
debugLog("Variable declarations found:", parseResult)
|
||||
})
|
||||
|
||||
it("should parse alias definitions", () => {
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| alias ll='ls -la'/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| alias grep='grep --color=auto'/)
|
||||
debugLog("Alias definitions found:", parseResult)
|
||||
it("should parse declaration commands", () => {
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| export PATH_VAR/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| readonly CONSTANT_VAR/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| declare -a array_var/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| alias/)
|
||||
debugLog("Declaration commands found:", parseResult)
|
||||
})
|
||||
|
||||
it("should parse control structures", () => {
|
||||
|
|
@ -72,21 +73,21 @@ describe("parseSourceCodeDefinitionsForFile with Bash", () => {
|
|||
debugLog("Control structures found:", parseResult)
|
||||
})
|
||||
|
||||
it("should parse here documents and redirections", () => {
|
||||
it("should parse here documents and pipelines", () => {
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| cat <<EOF/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| cat data.txt/)
|
||||
debugLog("Here documents and redirections found:", parseResult)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| cat data.txt \|/)
|
||||
debugLog("Here documents and pipelines found:", parseResult)
|
||||
})
|
||||
|
||||
it("should parse source commands", () => {
|
||||
it("should parse commands", () => {
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| source \.\/config.sh/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| \. \.\/utils.sh/)
|
||||
debugLog("Source commands found:", parseResult)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| echo/)
|
||||
debugLog("Commands found:", parseResult)
|
||||
})
|
||||
|
||||
it("should parse test commands", () => {
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| if \[ -z "\$VAR" \]/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| if \[\[ "\$VAR" =~ \^/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| \[ -z "\$VAR" \]/)
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| \[\[ "\$VAR" =~ \^/)
|
||||
debugLog("Test commands found:", parseResult)
|
||||
})
|
||||
|
||||
|
|
@ -95,8 +96,8 @@ describe("parseSourceCodeDefinitionsForFile with Bash", () => {
|
|||
debugLog("Arithmetic operations found:", parseResult)
|
||||
})
|
||||
|
||||
it("should parse shebang", () => {
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| #!\/bin\/bash/)
|
||||
debugLog("Shebang found:", parseResult)
|
||||
it("should parse comments", () => {
|
||||
expect(parseResult).toMatch(/\d+--\d+ \| #/)
|
||||
debugLog("Comments found:", parseResult)
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -10,35 +10,19 @@ export default `
|
|||
(variable_assignment
|
||||
name: (variable_name) @name.definition.variable) @definition.variable
|
||||
|
||||
; Export statements
|
||||
(declaration_command
|
||||
name: (simple_expansion
|
||||
(variable_name) @name.definition.export)) @definition.export
|
||||
; Declaration commands (export, declare, readonly, etc.)
|
||||
(declaration_command) @definition.declaration
|
||||
|
||||
; Alias definitions
|
||||
(declaration_command
|
||||
name: "alias"
|
||||
value: (concatenation
|
||||
(word) @name.definition.alias)) @definition.alias
|
||||
|
||||
(declaration_command
|
||||
name: "alias"
|
||||
value: (word) @name.definition.alias) @definition.alias
|
||||
|
||||
; Source/dot commands (file includes)
|
||||
; Command with name
|
||||
(command
|
||||
name: (command_name (word) @source_cmd (#match? @source_cmd "^(source|\\.)$"))
|
||||
argument: (_) @name.definition.source) @definition.source
|
||||
name: (command_name (word) @name.definition.command)) @definition.command
|
||||
|
||||
; Here documents
|
||||
(redirected_statement
|
||||
body: (command)
|
||||
redirect: (heredoc_redirect
|
||||
(heredoc_start) @name.definition.heredoc)) @definition.heredoc
|
||||
redirect: (heredoc_redirect)) @definition.heredoc
|
||||
|
||||
; Case statements
|
||||
(case_statement
|
||||
value: (_) @name.definition.case) @definition.case
|
||||
(case_statement) @definition.case
|
||||
|
||||
; If statements
|
||||
(if_statement) @definition.if_statement
|
||||
|
|
@ -50,9 +34,8 @@ export default `
|
|||
(for_statement
|
||||
variable: (variable_name) @name.definition.for_variable) @definition.for_loop
|
||||
|
||||
; Array declarations
|
||||
; Arrays
|
||||
(variable_assignment
|
||||
name: (variable_name) @name.definition.array
|
||||
value: (array)) @definition.array
|
||||
|
||||
; Command substitutions
|
||||
|
|
@ -61,24 +44,12 @@ export default `
|
|||
; Pipeline commands
|
||||
(pipeline) @definition.pipeline
|
||||
|
||||
; Redirections
|
||||
(command
|
||||
redirect: (_)) @definition.redirection
|
||||
|
||||
; Test commands ([ ] and [[ ]])
|
||||
(test_command) @definition.test_command
|
||||
|
||||
; Arithmetic expressions
|
||||
(arithmetic_expansion) @definition.arithmetic
|
||||
|
||||
; Parameter expansions
|
||||
(expansion
|
||||
(variable_name) @name.reference.variable) @reference.variable
|
||||
|
||||
; Comments (for documentation purposes)
|
||||
(comment) @comment
|
||||
|
||||
; Shebang
|
||||
(program
|
||||
. (comment) @shebang (#match? @shebang "^#!/"))
|
||||
`
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue