From: Yuan Fu Date: Tue, 15 Oct 2024 02:31:12 +0000 (-0700) Subject: Fix c-ts-mode--anchor-prev-sibling (bug#73661) X-Git-Tag: archive/raspbian/1%30.1+1-3+rpi1^2~2^2~20^2~359 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c154047c46ae833a114e84d72e62269d12c3249d;p=emacs.git Fix c-ts-mode--anchor-prev-sibling (bug#73661) * lisp/progmodes/c-ts-mode.el: (c-ts-mode--anchor-prev-sibling): Fix parentheses and use a slightly more efficient function. * test/lisp/progmodes/c-ts-mode-resources/indent.erts: Replace the tab in the test code with spaces. --- diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index 576d715510d..12003ff4727 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -321,16 +321,17 @@ characters of the current line." ((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. (E.g., comment after a - ;; statement.) If the previous sibling is the first named - ;; node then anchor to that, e.g. when returning an aggregate - ;; and starting the items on the same line as {. + ;; 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. (E.g., comment after a statement.) If the + ;; previous sibling is the first named node, then anchor to + ;; that, e.g. when returning an aggregate and starting the + ;; items on the same line as {. (_ (goto-char (treesit-node-start prev-sibling)) (if (or (looking-back (rx bol (* whitespace)) - (line-beginning-position))) - (null (treesit-node-prev-sibling prev-sibling t)) + (line-beginning-position)) + (treesit-node-eq (treesit-node-child parent 0 t) + prev-sibling)) (setq continue nil) (setq prev-sibling (treesit-node-prev-sibling prev-sibling))))))) diff --git a/test/lisp/progmodes/c-ts-mode-resources/indent.erts b/test/lisp/progmodes/c-ts-mode-resources/indent.erts index a13a74cf8b3..f97ceac61f5 100644 --- a/test/lisp/progmodes/c-ts-mode-resources/indent.erts +++ b/test/lisp/progmodes/c-ts-mode-resources/indent.erts @@ -214,7 +214,7 @@ Name: Return Compund Literal struct pair { int fst, snd; }; struct pair make_pair(int long_identifier_a[], int long_identifier_b[], - int offset_a, int offset_b) + int offset_a, int offset_b) { int base_offset = 10; return (struct pair) { long_identifier_a[base_offset + offset_b],