[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-29 7f1bd69cd19: Fix c-ts-mode bracketless indentation for BSD styl
From: |
Yuan Fu |
Subject: |
emacs-29 7f1bd69cd19: Fix c-ts-mode bracketless indentation for BSD style (bug#66152) |
Date: |
Sun, 10 Dec 2023 21:35:41 -0500 (EST) |
branch: emacs-29
commit 7f1bd69cd19504f2bd47e13c530a55ffca08e27d
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>
Fix c-ts-mode bracketless indentation for BSD style (bug#66152)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-styles): Make sure the BSD rules only apply to
opening bracket (compound_statement), then bracketless statements will
fallback to common rules.
* test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts: Copy the
bracketless test from indent.erts to here.
---
lisp/progmodes/c-ts-mode.el | 14 ++++-----
.../progmodes/c-ts-mode-resources/indent-bsd.erts | 34 ++++++++++++++++++++++
2 files changed, 41 insertions(+), 7 deletions(-)
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index 5606996eee2..ca831a9c5f9 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -515,13 +515,13 @@ MODE is either `c' or `cpp'."
((node-is "labeled_statement") parent-bol c-ts-mode-indent-offset)
((parent-is "labeled_statement") parent-bol c-ts-mode-indent-offset)
((parent-is "compound_statement") parent-bol c-ts-mode-indent-offset)
- ((parent-is "if_statement") parent-bol 0)
- ((parent-is "else_clause") parent-bol 0)
- ((parent-is "for_statement") parent-bol 0)
- ((parent-is "while_statement") parent-bol 0)
- ((parent-is "switch_statement") parent-bol 0)
- ((parent-is "case_statement") parent-bol 0)
- ((parent-is "do_statement") parent-bol 0)
+ ((match "compound_statement" "if_statement") standalone-parent 0)
+ ((match "compound_statement" "else_clause") standalone-parent 0)
+ ((match "compound_statement" "for_statement") standalone-parent 0)
+ ((match "compound_statement" "while_statement") standalone-parent 0)
+ ((match "compound_statement" "switch_statement") standalone-parent 0)
+ ((match "compound_statement" "case_statement") standalone-parent 0)
+ ((match "compound_statement" "do_statement") standalone-parent 0)
,@common))))
(defun c-ts-mode--top-level-label-matcher (node parent &rest _)
diff --git a/test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts
b/test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts
index 74e34fe821b..fa65ba83a69 100644
--- a/test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts
+++ b/test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts
@@ -91,3 +91,37 @@ main (int argc,
}
}
=-=-=
+
+Name: Bracketless Simple Statement (bug#66152)
+
+=-=
+for (int i = 0; i < 5; i++)
+continue;
+
+while (true)
+return 1;
+
+do
+i++;
+while (true)
+
+if (true)
+break;
+else
+break;
+=-=
+for (int i = 0; i < 5; i++)
+ continue;
+
+while (true)
+ return 1;
+
+do
+ i++;
+while (true)
+
+if (true)
+ break;
+else
+ break;
+=-=-=
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-29 7f1bd69cd19: Fix c-ts-mode bracketless indentation for BSD style (bug#66152),
Yuan Fu <=