]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix c-ts-mode empty line indentation (bug#61893)
authorYuan Fu <casouri@gmail.com>
Wed, 1 Mar 2023 22:01:47 +0000 (14:01 -0800)
committerYuan Fu <casouri@gmail.com>
Wed, 1 Mar 2023 22:07:01 +0000 (14:07 -0800)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make the
"rest sibling" matchers catch the case where NODE is nil, when
indenting an empty line.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.

lisp/progmodes/c-ts-mode.el
test/lisp/progmodes/c-ts-mode-resources/indent.erts

index cc99b8e213e73dd40f1f285d46b94283280b4448..259b96d342e0bd0b906f8792d33318e7283ba967 100644 (file)
@@ -356,17 +356,17 @@ MODE is either `c' or `cpp'."
 
            ;; int[5] a = { 0, 0, 0, 0 };
            ((match nil "initializer_list" nil 1 1) parent-bol c-ts-mode-indent-offset)
-           ((match nil "initializer_list" nil 2) c-ts-mode--anchor-prev-sibling 0)
+           ((parent-is "initializer_list") c-ts-mode--anchor-prev-sibling 0)
            ;; Statement in enum.
            ((match nil "enumerator_list" nil 1 1) standalone-parent c-ts-mode-indent-offset)
-           ((match nil "enumerator_list" nil 2) c-ts-mode--anchor-prev-sibling 0)
+           ((parent-is "enumerator_list") c-ts-mode--anchor-prev-sibling 0)
            ;; Statement in struct and union.
            ((match nil "field_declaration_list" nil 1 1) standalone-parent c-ts-mode-indent-offset)
-           ((match nil "field_declaration_list" nil 2) c-ts-mode--anchor-prev-sibling 0)
+           ((parent-is "field_declaration_list") c-ts-mode--anchor-prev-sibling 0)
 
            ;; Statement in {} blocks.
            ((match nil "compound_statement" nil 1 1) standalone-parent c-ts-mode-indent-offset)
-           ((match nil "compound_statement" nil 2) c-ts-mode--anchor-prev-sibling 0)
+           ((parent-is "compound_statement") c-ts-mode--anchor-prev-sibling 0)
            ;; Opening bracket.
            ((node-is "compound_statement") standalone-parent c-ts-mode-indent-offset)
            ;; Bug#61291.
index 36d7af4faf15106bf814db0fa2a58072e2372f4d..904c6498cb5d449c443bae56876388f2359ce4b6 100644 (file)
@@ -84,14 +84,6 @@ int main()
 }
 =-=-=
 
-Name: Empty Line
-=-=
-int main()
-{
-  |
-}
-=-=-=
-
 Name: Concecutive blocks (GNU Style) (bug#60873)
 
 =-=
@@ -385,3 +377,28 @@ namespace test {
   };
 }
 =-=-=
+
+Code:
+  (lambda ()
+    (c-ts-mode)
+    (setq-local indent-tabs-mode nil)
+    (setq-local c-ts-mode-indent-offset 2)
+    (c-ts-mode-set-style 'gnu)
+    (indent-for-tab-command))
+
+Name: Empty Line
+=-=
+int main()
+{
+  |
+}
+=-=-=
+
+Name: Empty Line Previous Sibling
+=-=
+int main()
+{
+  int a = 1;
+  |
+}
+=-=-=