summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-05-07 15:43:52 +0100
committerBram Moolenaar <Bram@vim.org>2022-05-07 15:43:52 +0100
commit48a8a833033e10fc1eba96f2fc8dd19c2408eddf (patch)
tree8d744d6f7326aefa0beaae5c54b116b11c82a806
parent2bf875f881f7c6f6900bc0eb2a93a552db894109 (diff)
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.vim12
-rw-r--r--src/textformat.c22
-rw-r--r--src/version.c2
3 files changed, 35 insertions, 1 deletions
diff --git a/src/testdir/test_textformat.vim b/src/testdir/test_textformat.vim
index 79e282eff0..9630e8d150 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 fd0d31d639..826726bf32 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 f53be12400..1eb14d0e7e 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,