Merge pull request #12327 from janlazo/vim-8.2.0766

vim-patch:8.1.2228,8.2.{36,37,766,810}
This commit is contained in:
Matthieu Coudron
2020-05-23 14:33:33 +02:00
committed by GitHub
6 changed files with 109 additions and 1 deletions

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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', [{}])", 'E5031:')
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'

View File

@@ -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