Mercurial > vim
changeset 26811:f0fdd992cfb9 v8.2.3934
patch 8.2.3934: repeating line comment is undesired for "O" command
Commit: https://github.com/vim/vim/commit/5ea5f373729589acb38ce3f3ca338e8a6d398bdc
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Dec 29 15:15:47 2021 +0000
patch 8.2.3934: repeating line comment is undesired for "O" command
Problem: Repeating line comment is undesired for "O" command.
Solution: Do not copy line comment leader for "O". (closes https://github.com/vim/vim/issues/9426)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 29 Dec 2021 16:30:03 +0100 |
parents | 9c34e5550c98 |
children | 4545b6dd8210 |
files | src/change.c src/testdir/test_textformat.vim src/version.c |
diffstat | 3 files changed, 28 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/change.c +++ b/src/change.c @@ -1655,13 +1655,14 @@ open_line( lead_len = get_leader_len(saved_line, &lead_flags, dir == BACKWARD, TRUE); #ifdef FEAT_CINDENT - if (lead_len == 0 && do_cindent) + if (lead_len == 0 && do_cindent && dir == FORWARD) { + // Check for a line comment after code. comment_start = check_linecomment(saved_line); if (comment_start != MAXCOL) { lead_len = get_leader_len(saved_line + comment_start, - &lead_flags, dir == BACKWARD, TRUE); + &lead_flags, FALSE, TRUE); if (lead_len != 0) { lead_len += comment_start;
--- a/src/testdir/test_textformat.vim +++ b/src/testdir/test_textformat.vim @@ -238,6 +238,29 @@ func Test_format_c_comment() END call assert_equal(expected, getline(1, '$')) + " Using "o" repeates the line comment, "O" does not. + %del + let text =<< trim END + nop; + val = val; // This is a comment + END + call setline(1, text) + normal 2Go + let expected =<< trim END + nop; + val = val; // This is a comment + // + END + call assert_equal(expected, getline(1, '$')) + normal 2GO + let expected =<< trim END + nop; + + val = val; // This is a comment + // + END + call assert_equal(expected, getline(1, '$')) + bwipe! endfunc