Fix c-ts-mode indentation
Mentioned in bug#61893, although not the subject of it. * lisp/progmodes/c-ts-mode.el: (c-ts-mode--anchor-prev-sibling): Fix the child index for preproc_else and preproc_elif case. * test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: New test.
This commit is contained in:
parent
7292b24c80
commit
d724d7d678
2 changed files with 19 additions and 1 deletions
|
@ -292,8 +292,10 @@ PARENT and BOL are like other anchor functions."
|
|||
(setq prev-sibling (treesit-node-child prev-sibling 2)))
|
||||
;; Get the last statement in the preproc. Tested by
|
||||
;; "Prev-Sibling When Prev-Sibling is Preproc" test.
|
||||
((or "preproc_if" "preproc_ifdef" "preproc_elif" "preproc_else")
|
||||
((or "preproc_if" "preproc_ifdef")
|
||||
(setq prev-sibling (treesit-node-child prev-sibling -2)))
|
||||
((or "preproc_elif" "preproc_else")
|
||||
(setq prev-sibling (treesit-node-child prev-sibling -1)))
|
||||
;; 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.
|
||||
|
|
|
@ -78,3 +78,19 @@ free_glyph_pool (struct glyph_pool *pool)
|
|||
}
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Name: Prev-Sibling Plus Preproc
|
||||
|
||||
=-=-=
|
||||
int main() {
|
||||
#ifdef MSDOS
|
||||
f->output_data.tty = &the_only_tty_output;
|
||||
f->output_data.tty->display_info = &the_only_display_info;
|
||||
#else
|
||||
if (f->output_method == output_termcap)
|
||||
create_tty_output (f);
|
||||
#endif
|
||||
t->display_info.tty->top_frame = selected_frame;
|
||||
change_frame_size ();
|
||||
}
|
||||
=-=-=
|
||||
|
|
Loading…
Add table
Reference in a new issue