
Closes #10832 Note: This PR only fixes the issue where when entering one of `except`, `finally`, `else`, and `elif` after another block like so: ```python try: for i in range(n): pass except:| ``` The `except` would be indented resulting in the following: ```python try: for i in range(n): pass except:| ``` This PR does not fix a separate issue in which the indentation is not corrected from the second example to the first, i.e. if example 2 is typed verbatim in Zed it will not auto-indent to look like example 1. Handling of this case would likely require specific logic to handle, or changes to the tree-sitter grammar for Python, as the current grammar results in ERROR nodes that obscure the natural structure (cannot tie the `except` to the `try`) Release Notes: - Fixed an issue where `except`, `finally`, `else`, and `elif` control flow keywords in Python would be incorrectly indented when entered at the correct level of indentation.
18 lines
335 B
Scheme
18 lines
335 B
Scheme
(_ "[" "]" @end) @indent
|
|
(_ "{" "}" @end) @indent
|
|
(_ "(" ")" @end) @indent
|
|
|
|
(try_statement
|
|
body: (_) @start
|
|
[(except_clause) (finally_clause)] @end
|
|
) @indent
|
|
|
|
(if_statement
|
|
consequence: (_) @start
|
|
alternative: (_) @end
|
|
) @indent
|
|
|
|
(_
|
|
alternative: (elif_clause) @start
|
|
alternative: (_) @end
|
|
) @indent
|