mirror of
https://github.com/neovim/neovim.git
synced 2026-04-26 17:24:18 +00:00
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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user