language: Add context-aware decrease indent for Python #33370
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #33238, follow-up to #29625. Blocked on tree-sitter/tree-sitter-python#304
Changes:
significant_indentation
, which was the way to introduce indentation scoping in languages like Python. However, it turned out to be unnecessarily complicated to define and maintain.decrease_indent_patterns
, which takes apattern
keyword to automatically outdent andvalid_after
keywords to treat as valid code points to snap to. The outdent happens to the most recentvalid_after
keyword that also has less or equal indentation than the currently typed keyword.Fixes:
except
,finally
,else
, and so on now automatically indents intelligently based on the context in which it appears. For instance:but,
Release Notes:
except
,else
,finally
, etc.