From 38febed02d9341d9dc812c0895dc1144733ef94c Mon Sep 17 00:00:00 2001 From: Smit Barmase Date: Mon, 7 Jul 2025 22:41:29 +0530 Subject: [PATCH] languages: Fix detents case line after typing `:` in Python (#34017) 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 --- 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(-) diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 05280de02b..aea84de9b0 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -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] diff --git a/crates/languages/src/python/config.toml b/crates/languages/src/python/config.toml index 6d83d3f3de..8728dfeaf1 100644 --- a/crates/languages/src/python/config.toml +++ b/crates/languages/src/python/config.toml @@ -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"] } ] diff --git a/crates/languages/src/python/indents.scm b/crates/languages/src/python/indents.scm index 617aa706d3..3d4c1cc9c4 100644 --- a/crates/languages/src/python/indents.scm +++ b/crates/languages/src/python/indents.scm @@ -14,4 +14,4 @@ (else_clause) @start.else (except_clause) @start.except (finally_clause) @start.finally -(case_pattern) @start.case +(case_clause) @start.case