aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-03-25 09:27:42 +0800
committerGitHub <noreply@github.com>2023-03-25 09:27:42 +0800
commitaab4443bb907a0cf7ef874c22f8cfae667b65552 (patch)
tree7fb8c3ceba55c2f1317ec7cb4e9fff76e377f21a
parentac7397f4a06e451fedde86fb4eba0038d0d75e68 (diff)
downloadrneovim-aab4443bb907a0cf7ef874c22f8cfae667b65552.tar.gz
rneovim-aab4443bb907a0cf7ef874c22f8cfae667b65552.tar.bz2
rneovim-aab4443bb907a0cf7ef874c22f8cfae667b65552.zip
vim-patch:9.0.1426: indent wrong after "export namespace" in C++ (#22777)
Problem: Indent wrong after "export namespace" in C++. Solution: Skip over "inline" and "export" in any order. (Virginia Senioria, closes vim/vim#12134, closes vim/vim#12133) https://github.com/vim/vim/commit/99e4ab2a1e577ddb29030c09c308b67e16fd51c4 Co-authored-by: Virginia Senioria <91khr@users.noreply.github.com>
-rw-r--r--src/nvim/indent_c.c4
-rw-r--r--test/old/testdir/test_cindent.vim24
2 files changed, 27 insertions, 1 deletions
diff --git a/src/nvim/indent_c.c b/src/nvim/indent_c.c
index 3e7f640326..f7bf9c46a4 100644
--- a/src/nvim/indent_c.c
+++ b/src/nvim/indent_c.c
@@ -525,7 +525,9 @@ static bool cin_is_cpp_namespace(const char *s)
s = cin_skipcomment(s);
- if (strncmp(s, "inline", 6) == 0 && (s[6] == NUL || !vim_iswordc((uint8_t)s[6]))) {
+ // skip over "inline" and "export" in any order
+ while ((strncmp(s, "inline", 6) == 0 || strncmp(s, "export", 6) == 0)
+ && (s[6] == NUL || !vim_iswordc((uint8_t)s[6]))) {
s = cin_skipcomment(skipwhite(s + 6));
}
diff --git a/test/old/testdir/test_cindent.vim b/test/old/testdir/test_cindent.vim
index ccc8168c09..d9702f57d2 100644
--- a/test/old/testdir/test_cindent.vim
+++ b/test/old/testdir/test_cindent.vim
@@ -4392,6 +4392,18 @@ func Test_cindent_47()
inline/* test */namespace {
111111111111111111;
}
+ export namespace {
+ 111111111111111111;
+ }
+ export inline namespace {
+ 111111111111111111;
+ }
+ export/* test */inline namespace {
+ 111111111111111111;
+ }
+ inline export namespace {
+ 111111111111111111;
+ }
/* invalid namespaces use block indent */
namespace test test2 {
@@ -4495,6 +4507,18 @@ func Test_cindent_47()
inline/* test */namespace {
111111111111111111;
}
+ export namespace {
+ 111111111111111111;
+ }
+ export inline namespace {
+ 111111111111111111;
+ }
+ export/* test */inline namespace {
+ 111111111111111111;
+ }
+ inline export namespace {
+ 111111111111111111;
+ }
/* invalid namespaces use block indent */
namespace test test2 {