From 972886c29e6141de2cfe0190a01c76821e64eae1 Mon Sep 17 00:00:00 2001 From: Peter Schilling Date: Thu, 10 Oct 2024 05:15:12 -0700 Subject: [PATCH] Automatically indent JSX (#18816) indents jsx in a way that is [consistent with html](https://github.com/zed-industries/zed/blob/main/extensions/html/languages/html/indents.scm) before, no automatic indentation would apply and it would even dedent you when you add a line above the cursor (shift-o in vim mode) https://github.com/user-attachments/assets/470fbdb2-3e31-42c4-b535-bb26ae1706ab after, it applies automatic indentation when you hit return https://github.com/user-attachments/assets/e86c739d-370d-490d-8c6f-d0190e65f832 Closes #16127 Release Notes: - Improved automatic indentation behavior in JSX ([#16127](https://github.com/zed-industries/zed/issues/16127)) --- crates/languages/src/javascript/indents.scm | 6 ++++++ crates/languages/src/tsx/indents.scm | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/crates/languages/src/javascript/indents.scm b/crates/languages/src/javascript/indents.scm index 107e6ff8e0..9897f3060e 100644 --- a/crates/languages/src/javascript/indents.scm +++ b/crates/languages/src/javascript/indents.scm @@ -13,3 +13,9 @@ (_ "<" ">" @end) @indent (_ "{" "}" @end) @indent (_ "(" ")" @end) @indent + +(jsx_opening_element ">" @end) @indent + +(jsx_element + (jsx_opening_element) @start + (jsx_closing_element)? @end) @indent diff --git a/crates/languages/src/tsx/indents.scm b/crates/languages/src/tsx/indents.scm index 107e6ff8e0..9897f3060e 100644 --- a/crates/languages/src/tsx/indents.scm +++ b/crates/languages/src/tsx/indents.scm @@ -13,3 +13,9 @@ (_ "<" ">" @end) @indent (_ "{" "}" @end) @indent (_ "(" ")" @end) @indent + +(jsx_opening_element ">" @end) @indent + +(jsx_element + (jsx_opening_element) @start + (jsx_closing_element)? @end) @indent