From 48a8a833033e10fc1eba96f2fc8dd19c2408eddf Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 7 May 2022 15:43:52 +0100 Subject: [PATCH] patch 8.2.4908: no text formatting for // comment after a statement Problem: No text formatting for // comment after a statement. Solution: format a comment when the 'c' flag is in 'formatoptions'. --- src/testdir/test_textformat.vim | 12 ++++++++++++ src/textformat.c | 22 +++++++++++++++++++++- src/version.c | 2 ++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/testdir/test_textformat.vim b/src/testdir/test_textformat.vim index 79e282eff..9630e8d15 100644 --- a/src/testdir/test_textformat.vim +++ b/src/testdir/test_textformat.vim @@ -342,6 +342,18 @@ func Test_format_c_comment() END call assert_equal(expected, getline(1, '$')) + " typing comment text auto-wraps + %del + call setline(1, text) + exe "normal! 2GA blah more text blah.\" + let expected =<< trim END + { + val = val; // This is a comment + // blah more text + // blah. + END + call assert_equal(expected, getline(1, '$')) + bwipe! endfunc diff --git a/src/textformat.c b/src/textformat.c index fd0d31d63..826726bf3 100644 --- a/src/textformat.c +++ b/src/textformat.c @@ -104,7 +104,27 @@ internal_format( // Don't break until after the comment leader if (do_comments) - leader_len = get_leader_len(ml_get_curline(), NULL, FALSE, TRUE); + { + char_u *line = ml_get_curline(); + + leader_len = get_leader_len(line, NULL, FALSE, TRUE); +#ifdef FEAT_CINDENT + if (leader_len == 0 && curbuf->b_p_cin) + { + int comment_start; + + // Check for a line comment after code. + comment_start = check_linecomment(line); + if (comment_start != MAXCOL) + { + leader_len = get_leader_len( + line + comment_start, NULL, FALSE, TRUE); + if (leader_len != 0) + leader_len += comment_start; + } + } +#endif + } else leader_len = 0; diff --git a/src/version.c b/src/version.c index f53be1240..1eb14d0e7 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 4908, /**/ 4907, /**/ -- 2.50.0