mirror of
https://github.com/vim/vim.git
synced 2026-06-10 15:37:26 +02:00
patch 9.2.0610: cindent: closing brace in a comment affects the next line's indent
Problem: A '}' inside a // line comment changes the indentation of the
following line inside an enum or struct (rendcrx).
Solution: Stop scanning the line once a line comment is reached, so a brace
inside the comment is no longer mistaken for an unmatched brace.
fixes: #20455
closes: #20458
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
e2cf855bbe
commit
9dd86dff9b
@@ -1217,6 +1217,8 @@ find_last_paren(char_u *l, int start, int end)
|
||||
for (i = 0; l[i] != NUL; i++)
|
||||
{
|
||||
i = (int)(cin_skipcomment(l + i) - l); // ignore parens in comments
|
||||
if (l[i] == NUL)
|
||||
break;
|
||||
i = (int)(skip_string(l + i) - l); // ignore parens in quotes
|
||||
if (l[i] == start)
|
||||
++open_count;
|
||||
|
||||
@@ -5604,6 +5604,37 @@ def Test_cindent_comment_brackets()
|
||||
assert_equal(' arg3);', getline(3))
|
||||
bwipe!
|
||||
|
||||
# stray } in a // line comment inside an aggregate (enum/struct) whose
|
||||
# opening brace is at the end of the line must not affect the next member
|
||||
new
|
||||
setl cindent sw=4
|
||||
var code6 =<< trim [CODE]
|
||||
typedef enum {
|
||||
ND_BLOCK, // { ... }
|
||||
ND_FUNCALL,
|
||||
} NodeKind;
|
||||
[CODE]
|
||||
setline(1, code6)
|
||||
cursor(3, 1)
|
||||
normal ==
|
||||
assert_equal(' ND_FUNCALL,', getline(3))
|
||||
bwipe!
|
||||
|
||||
# same, a struct member with a trailing // } comment
|
||||
new
|
||||
setl cindent sw=4
|
||||
var code7 =<< trim [CODE]
|
||||
struct S {
|
||||
int a; // }
|
||||
int b;
|
||||
};
|
||||
[CODE]
|
||||
setline(1, code7)
|
||||
cursor(3, 1)
|
||||
normal ==
|
||||
assert_equal(' int b;', getline(3))
|
||||
bwipe!
|
||||
|
||||
enddef
|
||||
|
||||
|
||||
|
||||
@@ -729,6 +729,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
610,
|
||||
/**/
|
||||
609,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user