commit f0cf4886981eb2d690d6d8f7c70e432f1c2280ee
parent d707ccf98808058d1bec9c831dd4dc5e46e16eaf
Author: zeertzjq <zeertzjq@outlook.com>
Date: Mon, 27 Oct 2025 08:06:25 +0800
vim-patch:9.1.1877: cindent: wrong indentation after an array declaration (#36340)
Problem: cindent: wrong indentation after an array declaration
Solution: check if the filetype if javascript before matching the syntax
(Anttoni Erkkilä)
cindent matches a javascript syntax for C files causing wrong
indentation in the following case:
```
void foo() {
float a[5],
b;
}
```
closes: vim/vim#18631
https://github.com/vim/vim/commit/61ef8a3db927162854c8a208ec603f55a6cd6449
Co-authored-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
Diffstat:
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/nvim/indent_c.c b/src/nvim/indent_c.c
@@ -3179,9 +3179,8 @@ int get_c_indent(void)
amount = cur_amount;
n = (int)strlen(l);
- if (terminated == ','
- && (*skipwhite(l) == ']'
- || (n >= 2 && l[n - 2] == ']'))) {
+ if (curbuf->b_ind_js && terminated == ','
+ && (*skipwhite(l) == ']' || (n >= 2 && l[n - 2] == ']'))) {
break;
}
diff --git a/test/old/testdir/test_cindent.vim b/test/old/testdir/test_cindent.vim
@@ -1101,6 +1101,11 @@ func Test_cindent_1()
}
}
+ void foo() {
+ float a[5],
+ b;
+ }
+
/* end of AUTO */
[CODE]
@@ -2078,6 +2083,11 @@ func Test_cindent_1()
}
}
+ void foo() {
+ float a[5],
+ b;
+ }
+
/* end of AUTO */
[CODE]