emacs-diffs
[Top][All Lists]
Advanced

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

emacs-29 252b2c01af 6/8: Fix c-ts-mode label indent


From: Yuan Fu
Subject: emacs-29 252b2c01af 6/8: Fix c-ts-mode label indent
Date: Sun, 15 Jan 2023 04:17:44 -0500 (EST)

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

    Fix c-ts-mode label indent
    
    Fix indentation of the statement right under a label.
    
    * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Fix.
    (c-ts-mode--top-level-label-matcher): Fix.
---
 lisp/progmodes/c-ts-mode.el | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index cc1f183fd7..4ed34af52e 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -129,8 +129,12 @@ MODE is either `c' or `cpp'."
             c-ts-mode--comment-2nd-line-anchor
             1)
            ((parent-is "comment") prev-adaptive-prefix 0)
+
+           ;; Labels.
            ((node-is "labeled_statement") parent-bol 0)
-           ((parent-is "labeled_statement") parent-bol c-ts-mode-indent-offset)
+           ((parent-is "labeled_statement")
+            point-min c-ts-mode--statement-offset)
+
            ((match "preproc_ifdef" "compound_statement") point-min 0)
            ((match "#endif" "preproc_ifdef") point-min 0)
            ((match "preproc_if" "compound_statement") point-min 0)
@@ -216,10 +220,10 @@ NODE should be a labeled_statement."
   (let ((func (treesit-parent-until
                node (lambda (n)
                       (equal (treesit-node-type n)
-                             "function_definition")))))
+                             "compound_statement")))))
     (and (equal (treesit-node-type node)
                 "labeled_statement")
-         (not (treesit-node-top-level func "function_definition")))))
+         (not (treesit-node-top-level func "compound_statement")))))
 
 (defvar c-ts-mode-indent-block-type-regexp
   (rx (or "compound_statement"



reply via email to

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