Fix c-ts-mode indent (bug#60873)
* lisp/progmodes/c-ts-mode.el: (c-ts-mode--statement-offset): Handle the edge case. * test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add a test.
This commit is contained in:
parent
7ca71d66dc
commit
7b7b2b9513
2 changed files with 25 additions and 1 deletions
|
@ -285,7 +285,18 @@ PARENT is NODE's parent."
|
||||||
(cl-incf level)
|
(cl-incf level)
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (treesit-node-start node))
|
(goto-char (treesit-node-start node))
|
||||||
(cond ((bolp) nil)
|
;; Add an extra level if the opening bracket is on its own
|
||||||
|
;; line, except (1) it's at top-level, or (2) it's immedate
|
||||||
|
;; parent is another block.
|
||||||
|
(cond ((bolp) nil) ; Case (1).
|
||||||
|
((let ((parent-type (treesit-node-type
|
||||||
|
(treesit-node-parent node))))
|
||||||
|
;; Case (2).
|
||||||
|
(and parent-type
|
||||||
|
(string-match-p c-ts-mode-indent-block-type-regexp
|
||||||
|
parent-type)))
|
||||||
|
nil)
|
||||||
|
;; Add a level.
|
||||||
((looking-back (rx bol (* whitespace))
|
((looking-back (rx bol (* whitespace))
|
||||||
(line-beginning-position))
|
(line-beginning-position))
|
||||||
(cl-incf level))))))
|
(cl-incf level))))))
|
||||||
|
|
|
@ -92,6 +92,19 @@ int main()
|
||||||
}
|
}
|
||||||
=-=-=
|
=-=-=
|
||||||
|
|
||||||
|
Name: Concecutive blocks (GNU Style) (bug#60873)
|
||||||
|
|
||||||
|
=-=
|
||||||
|
int
|
||||||
|
main (int argc,
|
||||||
|
char *argv[])
|
||||||
|
{
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
=-=-=
|
||||||
|
|
||||||
Name: Multiline Parameter List (bug#60398)
|
Name: Multiline Parameter List (bug#60398)
|
||||||
|
|
||||||
=-=
|
=-=
|
||||||
|
|
Loading…
Add table
Reference in a new issue