languages: Fix detents case line after typing `:` in Python (#34017)
Smit Barmase
created 6 months ago
Closes #34002
`decrease_indent_patterns` should only contain mapping which are at same
indent level with each other, which is not true for `match` and `case`
mapping.
Caused in https://github.com/zed-industries/zed/pull/33370
Release Notes:
- N/A
Change summary
crates/editor/src/editor_tests.rs | 13 +++++++++++++
crates/languages/src/python/config.toml | 1 -
crates/languages/src/python/indents.scm | 2 +-
3 files changed, 14 insertions(+), 2 deletions(-)
Detailed changes
@@ -22348,6 +22348,19 @@ async fn test_outdent_after_input_for_python(cx: &mut TestAppContext) {
def f() -> list[str]:
aˇ
"});
+
+ // test does not outdent on typing : after case keyword
+ cx.set_state(indoc! {"
+ match 1:
+ caseˇ
+ "});
+ cx.update_editor(|editor, window, cx| {
+ editor.handle_input(":", window, cx);
+ });
+ cx.assert_editor_state(indoc! {"
+ match 1:
+ case:ˇ
+ "});
}
#[gpui::test]
@@ -34,5 +34,4 @@ decrease_indent_patterns = [
{ pattern = "^\\s*else\\b.*:", valid_after = ["if", "elif", "for", "while", "except"] },
{ pattern = "^\\s*except\\b.*:", valid_after = ["try", "except"] },
{ pattern = "^\\s*finally\\b.*:", valid_after = ["try", "except", "else"] },
- { pattern = "^\\s*case\\b.*:", valid_after = ["match", "case"] }
]
@@ -14,4 +14,4 @@
(else_clause) @start.else
(except_clause) @start.except
(finally_clause) @start.finally
-(case_pattern) @start.case
+(case_clause) @start.case