emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 1c67e4f895f 3/3: Fix c-ts-mode indentation


From: Yuan Fu
Subject: emacs-29 1c67e4f895f 3/3: Fix c-ts-mode indentation
Date: Sun, 5 Mar 2023 18:26:58 -0500 (EST)

branch: emacs-29
commit 1c67e4f895faf895f3ff132261edcbe6d08bb91d
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>

    Fix c-ts-mode indentation
    
    Mentioned in bug#61893.
    
    * lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Handle
    "#elif" and "#else".
    * test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: Add an
    "#elif" to the test.
---
 lisp/progmodes/c-ts-mode.el                                 | 3 +++
 test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index 2c534aa785a..0b775b2d5c8 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -296,6 +296,9 @@ PARENT and BOL are like other anchor functions."
            (setq prev-sibling (treesit-node-child prev-sibling -2)))
           ((or "preproc_elif" "preproc_else")
            (setq prev-sibling (treesit-node-child prev-sibling -1)))
+          ((or "#elif" "#else")
+           (setq prev-sibling (treesit-node-prev-sibling
+                               (treesit-node-parent prev-sibling) t)))
           ;; 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.
diff --git a/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts 
b/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts
index a82596e0010..ce753b5b3ea 100644
--- a/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts
+++ b/test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts
@@ -89,6 +89,9 @@ int main() {
 #else
   if (f->output_method == output_termcap)
     create_tty_output (f);
+#elif defined (HAVE_X_WINDOWS) /* X without toolkit.  */
+  if (FRAME_WINDOW_P (f))
+    {}
 #endif
   t->display_info.tty->top_frame = selected_frame;
   change_frame_size ();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]