From 63966a9ec240369dba246985779774df2d2cff9c Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sat, 16 May 2020 10:02:38 -0400 Subject: vim-patch:8.2.0766: display error when using 'number' and 'breakindent' Problem: Display error when using 'number' and 'breakindent'. Solution: Adjust extra spaces in the first row. (Ken Takata, closes vim/vim#6089, closes vim/vim#5986) https://github.com/vim/vim/commit/e882f7a73c8fa48707de71035eb0a7ccc6ac8548 --- src/nvim/screen.c | 6 +++++ src/nvim/testdir/test_breakindent.vim | 49 +++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) (limited to 'src/nvim') diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 9e958663aa..ba52f5b489 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -2994,6 +2994,12 @@ win_line ( c_final = NUL; n_extra = get_breakindent_win(wp, ml_get_buf(wp->w_buffer, lnum, false)); + if (row == startrow) { + n_extra -= win_col_off2(wp); + if (n_extra < 0) { + n_extra = 0; + } + } if (wp->w_skipcol > 0 && wp->w_p_wrap && wp->w_briopt_sbr) { need_showbreak = false; } diff --git a/src/nvim/testdir/test_breakindent.vim b/src/nvim/testdir/test_breakindent.vim index 5675bf74dd..a4c1f62a43 100644 --- a/src/nvim/testdir/test_breakindent.vim +++ b/src/nvim/testdir/test_breakindent.vim @@ -373,3 +373,52 @@ func Test_breakindent19_sbr_nextpage() call s:compare_lines(expect, lines) call s:close_windows('set breakindent& briopt& sbr&') endfunc + +func Test_breakindent20_cpo_n_nextpage() + let s:input = "" + call s:test_windows('setl breakindent briopt=min:14 cpo+=n number') + call setline(1, repeat('a', 200)) + norm! 1gg + redraw! + let lines = s:screen_lines(1, 20) + let expect = [ + \ " 1 aaaaaaaaaaaaaaaa", + \ " aaaaaaaaaaaaaaaa", + \ " aaaaaaaaaaaaaaaa", + \ ] + call s:compare_lines(expect, lines) + " Scroll down one screen line + setl scrolloff=5 + norm! 5gj + redraw! + let lines = s:screen_lines(1, 20) + let expect = [ + \ "--1 aaaaaaaaaaaaaaaa", + \ " aaaaaaaaaaaaaaaa", + \ " aaaaaaaaaaaaaaaa", + \ ] + call s:compare_lines(expect, lines) + + setl briopt+=shift:2 + norm! 1gg + let lines = s:screen_lines(1, 20) + let expect = [ + \ " 1 aaaaaaaaaaaaaaaa", + \ " aaaaaaaaaaaaaa", + \ " aaaaaaaaaaaaaa", + \ ] + call s:compare_lines(expect, lines) + " Scroll down one screen line + norm! 5gj + let lines = s:screen_lines(1, 20) + let expect = [ + \ "--1 aaaaaaaaaaaaaa", + \ " aaaaaaaaaaaaaa", + \ " aaaaaaaaaaaaaa", + \ ] + call s:compare_lines(expect, lines) + + call s:close_windows('set breakindent& briopt& cpo& number&') +endfunc + +" vim: shiftwidth=2 sts=2 expandtab -- cgit From 9cdea8148c7a22a9d8050dd1586cb8dc4570285b Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 17 May 2020 17:33:27 -0400 Subject: vim-patch:8.1.2228: screenpos() returns wrong values when 'number' is set Problem: screenpos() returns wrong values when 'number' is set. (Ben Jackson) Solution: Compare the column with the window width. (closes vim/vim#5133) https://github.com/vim/vim/commit/38ba4dce4a8574e60f6ddb111922880b0c7affdc --- src/nvim/move.c | 2 +- src/nvim/testdir/test_cursor_func.vim | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src/nvim') diff --git a/src/nvim/move.c b/src/nvim/move.c index d4f82bc601..8a8a639a52 100644 --- a/src/nvim/move.c +++ b/src/nvim/move.c @@ -996,7 +996,7 @@ void textpos2screenpos(win_T *wp, pos_T *pos, int *rowp, int *scolp, col -= wp->w_leftcol; - if (col >= 0 && col < width) { + if (col >= 0 && col < wp->w_width) { coloff = col - scol + (local ? 0 : wp->w_wincol) + 1; } else { scol = ccol = ecol = 0; diff --git a/src/nvim/testdir/test_cursor_func.vim b/src/nvim/testdir/test_cursor_func.vim index e8e561dfd8..2e190911b2 100644 --- a/src/nvim/testdir/test_cursor_func.vim +++ b/src/nvim/testdir/test_cursor_func.vim @@ -93,3 +93,18 @@ func Test_screenpos() close bwipe! endfunc + +func Test_screenpos_number() + rightbelow new + rightbelow 73vsplit + call setline (1, repeat('x', 66)) + setlocal number + redraw + let winid = win_getid() + let [winrow, wincol] = win_screenpos(winid) + let pos = screenpos(winid, 1, 66) + call assert_equal(winrow, pos.row) + call assert_equal(wincol + 66 + 3, pos.col) + close + bwipe! +endfunc -- cgit From 30ec3a067bada8ddbd37ec87fbb86a884d57f01e Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 17 May 2020 19:28:54 -0400 Subject: vim-patch:8.2.0036: not enough test coverage for match functions Problem: Not enough test coverage for match functions. Solution: Add a few more test cases. (Dominique Pelle, closes vim/vim#5394) Add error number. https://github.com/vim/vim/commit/49d68bf5e4d9306269b141f0576bbf44631f4ff0 --- src/nvim/testdir/test_match.vim | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/nvim') diff --git a/src/nvim/testdir/test_match.vim b/src/nvim/testdir/test_match.vim index 7a1894bc16..d35a701d61 100644 --- a/src/nvim/testdir/test_match.vim +++ b/src/nvim/testdir/test_match.vim @@ -149,6 +149,21 @@ function Test_match() highlight MyGroup3 NONE endfunc +func Test_match_error() + call assert_fails('match Error', 'E475:') + call assert_fails('match Error /', 'E475:') + call assert_fails('4match Error /x/', 'E476:') + call assert_fails('match Error /x/ x', 'E488:') +endfunc + +func Test_matchadd_error() + call assert_fails("call matchadd('GroupDoesNotExist', 'X')", 'E28:') + call assert_fails("call matchadd('Search', '\\(')", 'E475:') + call assert_fails("call matchadd('Search', 'XXX', 1, 123, 1)", 'E715:') + call assert_fails("call matchadd('Error', 'XXX', 1, 3)", 'E798:') + call assert_fails("call matchadd('Error', 'XXX', 1, 0)", 'E799:') +endfunc + func Test_matchaddpos() syntax on set hlsearch @@ -263,6 +278,17 @@ func Test_matchaddpos_using_negative_priority() set hlsearch& endfunc +func Test_matchaddpos_error() + call assert_fails("call matchaddpos('Error', 1)", 'E686:') + call assert_fails("call matchaddpos('Error', [1], 1, 1)", 'E798:') + call assert_fails("call matchaddpos('Error', [1], 1, 2)", 'E798:') + call assert_fails("call matchaddpos('Error', [1], 1, 0)", 'E799:') + call assert_fails("call matchaddpos('Error', [1], 1, 123, 1)", 'E715:') + call assert_fails("call matchaddpos('Error', [1], 1, 5, {'window':12345})", 'E957:') + " Why doesn't the following error have an error code E...? + call assert_fails("call matchaddpos('Error', [{}])", 'E290:') +endfunc + func OtherWindowCommon() let lines =<< trim END call setline(1, 'Hello Vim world') @@ -288,6 +314,11 @@ func Test_matchdelete_other_window() call delete('XscriptMatchCommon') endfunc +func Test_matchdelete_error() + call assert_fails("call matchdelete(0)", 'E802:') + call assert_fails("call matchdelete(1, -1)", 'E957:') +endfunc + func Test_matchclear_other_window() if !CanRunVimInTerminal() throw 'Skipped: cannot make screendumps' -- cgit From 9a8efec8fbbe7d9fb8786de26337e092c2084ef8 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 17 May 2020 19:39:04 -0400 Subject: vim-patch:8.2.0037: missing renamed message Problem: Missing renamed message. Solution: Now really add the error number. https://github.com/vim/vim/commit/1500a42c42b26cb63659d90883f7a438895cd273 --- src/nvim/testdir/test_match.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/nvim') diff --git a/src/nvim/testdir/test_match.vim b/src/nvim/testdir/test_match.vim index d35a701d61..09448ca71b 100644 --- a/src/nvim/testdir/test_match.vim +++ b/src/nvim/testdir/test_match.vim @@ -286,7 +286,7 @@ func Test_matchaddpos_error() call assert_fails("call matchaddpos('Error', [1], 1, 123, 1)", 'E715:') call assert_fails("call matchaddpos('Error', [1], 1, 5, {'window':12345})", 'E957:') " Why doesn't the following error have an error code E...? - call assert_fails("call matchaddpos('Error', [{}])", 'E290:') + call assert_fails("call matchaddpos('Error', [{}])", 'E5031:') endfunc func OtherWindowCommon() -- cgit From 0666b23d65c6dd6880166db0d2ed6a150b0554d0 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Fri, 22 May 2020 19:59:28 -0400 Subject: vim-patch:8.2.0810: error when appending "tagfile" to 'wildoptions' Problem: Error when appending "tagfile" to 'wildoptions'. Solution: use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin, closes vim/vim#6105) https://github.com/vim/vim/commit/2e61e2d08390623fcf933fd06646ac91f81fb772 --- src/nvim/testdir/test_options.vim | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/nvim') diff --git a/src/nvim/testdir/test_options.vim b/src/nvim/testdir/test_options.vim index 41f1710faf..400af33c58 100644 --- a/src/nvim/testdir/test_options.vim +++ b/src/nvim/testdir/test_options.vim @@ -42,6 +42,13 @@ function Test_wildchar() set wildchar& endfunction +func Test_wildoptions() + set wildoptions= + set wildoptions+=tagfile + set wildoptions+=tagfile + call assert_equal('tagfile', &wildoptions) +endfunc + function! Test_options() let caught = 'ok' try -- cgit