diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-05-07 15:43:52 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-07 15:43:52 +0100 |
commit | 48a8a833033e10fc1eba96f2fc8dd19c2408eddf (patch) | |
tree | 8d744d6f7326aefa0beaae5c54b116b11c82a806 | |
parent | 2bf875f881f7c6f6900bc0eb2a93a552db894109 (diff) | |
download | vim-git-48a8a833033e10fc1eba96f2fc8dd19c2408eddf.tar.gz |
patch 8.2.4908: no text formatting for // comment after a statementv8.2.4908
Problem: No text formatting for // comment after a statement.
Solution: format a comment when the 'c' flag is in 'formatoptions'.
-rw-r--r-- | src/testdir/test_textformat.vim | 12 | ||||
-rw-r--r-- | src/textformat.c | 22 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 35 insertions, 1 deletions
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.\<Esc>" + 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 @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4908, +/**/ 4907, /**/ 4906, |