mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 14:30:50 -08:00
Fix c-ts-mode indentation after if/else (bug#67417)
* lisp/progmodes/c-ts-mode.el: (c-ts-mode--prev-line-match): New function. (c-ts-mode--indent-styles): Add a rule for the empty line after if/else/for/etc.
This commit is contained in:
parent
f8d9dc26c7
commit
dab7cc241f
1 changed files with 16 additions and 0 deletions
|
|
@ -355,11 +355,27 @@ PARENT, BOL, ARGS are the same as other anchor functions."
|
||||||
(apply (alist-get 'standalone-parent treesit-simple-indent-presets)
|
(apply (alist-get 'standalone-parent treesit-simple-indent-presets)
|
||||||
parent (treesit-node-parent parent) bol args))
|
parent (treesit-node-parent parent) bol args))
|
||||||
|
|
||||||
|
(defun c-ts-mode--prev-line-match (regexp)
|
||||||
|
"An indentation matcher that matches if prev line matches REGEXP."
|
||||||
|
(lambda (_n _p bol &rest _)
|
||||||
|
(save-excursion
|
||||||
|
(goto-char bol)
|
||||||
|
(forward-line -1)
|
||||||
|
(back-to-indentation)
|
||||||
|
(looking-at-p regexp))))
|
||||||
|
|
||||||
(defun c-ts-mode--indent-styles (mode)
|
(defun c-ts-mode--indent-styles (mode)
|
||||||
"Indent rules supported by `c-ts-mode'.
|
"Indent rules supported by `c-ts-mode'.
|
||||||
MODE is either `c' or `cpp'."
|
MODE is either `c' or `cpp'."
|
||||||
(let ((common
|
(let ((common
|
||||||
`((c-ts-mode--for-each-tail-body-matcher prev-line c-ts-mode-indent-offset)
|
`((c-ts-mode--for-each-tail-body-matcher prev-line c-ts-mode-indent-offset)
|
||||||
|
;; If the user types "if (...)" and hit return, they expect
|
||||||
|
;; the point on the empty line to be indented, this rule
|
||||||
|
;; does that.
|
||||||
|
((and no-node
|
||||||
|
(c-ts-mode--prev-line-match
|
||||||
|
,(rx (or "if" "else" "while" "do" "for"))))
|
||||||
|
prev-line c-ts-mode-indent-offset)
|
||||||
|
|
||||||
((parent-is "translation_unit") column-0 0)
|
((parent-is "translation_unit") column-0 0)
|
||||||
((query "(ERROR (ERROR)) @indent") column-0 0)
|
((query "(ERROR (ERROR)) @indent") column-0 0)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue