languages: Fix Bash indentation issues with multi-cursors, newlines, and keyword outdenting (#35116)

Closes #34390

This PR fixes several Bash indentation issues:

- Adding indentation or comment using multi cursors no longer breaks
relative indentation
- Adding newline now places the cursor at the correct indent
- Typing a valid keyword triggers context-aware auto outdent

It also adds tests for all of them.

Release Notes:

- Fixed various issues with handling indentation in Bash.
This commit is contained in:
Smit Barmase 2025-07-26 04:58:10 +05:30 committed by GitHub
parent 07252c3309
commit 43d0aae617
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 459 additions and 25 deletions

View file

@ -1,12 +1,12 @@
(function_definition
"function"?
body: (
_
"{" @start
"}" @end
)) @indent
(_ "[" "]" @end) @indent
(_ "{" "}" @end) @indent
(_ "(" ")" @end) @indent
(array
"(" @start
")" @end
) @indent
(function_definition) @start.function
(if_statement) @start.if
(elif_clause) @start.elif
(else_clause) @start.else
(for_statement) @start.for
(while_statement) @start.while
(case_statement) @start.case
(case_item) @start.case_item