]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix c-ts-mode indentation
authorYuan Fu <casouri@gmail.com>
Sun, 5 Mar 2023 23:07:58 +0000 (15:07 -0800)
committerYuan Fu <casouri@gmail.com>
Sun, 5 Mar 2023 23:07:58 +0000 (15:07 -0800)
Mentioned in bug#61893, although not the subject of it.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--anchor-prev-sibling): Fix the child index for preproc_else
and preproc_elif case.
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts:
New test.

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

index ee4a3bb2de05cc19dd6a49f5e7103da7b346b222..2c534aa785a19981e41c3d0209f0611df17331d2 100644 (file)
@@ -292,8 +292,10 @@ PARENT and BOL are like other anchor functions."
            (setq prev-sibling (treesit-node-child prev-sibling 2)))
           ;; Get the last statement in the preproc.  Tested by
           ;; "Prev-Sibling When Prev-Sibling is Preproc" test.
-          ((or "preproc_if" "preproc_ifdef" "preproc_elif" "preproc_else")
+          ((or "preproc_if" "preproc_ifdef")
            (setq prev-sibling (treesit-node-child prev-sibling -2)))
+          ((or "preproc_elif" "preproc_else")
+           (setq prev-sibling (treesit-node-child prev-sibling -1)))
           ;; If the start of the previous sibling isn't at the
           ;; beginning of a line, something's probably not quite
           ;; right, go a step further.
index 0f9256ad9841973ecae034cea72af86e2e37cc19..a82596e0010e20547664eb3e07d59a596af7e977 100644 (file)
@@ -78,3 +78,19 @@ free_glyph_pool (struct glyph_pool *pool)
     }
 }
 =-=-=
+
+Name: Prev-Sibling Plus Preproc
+
+=-=-=
+int main() {
+#ifdef MSDOS
+  f->output_data.tty = &the_only_tty_output;
+  f->output_data.tty->display_info = &the_only_display_info;
+#else
+  if (f->output_method == output_termcap)
+    create_tty_output (f);
+#endif
+  t->display_info.tty->top_frame = selected_frame;
+  change_frame_size ();
+}
+=-=-=