Last active
February 3, 2017 06:12
-
-
Save ichizok/4d177e3bf8cc9d47d47243577c8d847b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/Makefile b/src/Makefile | |
index 65c7881e5..6f815b948 100644 | |
--- a/src/Makefile | |
+++ b/src/Makefile | |
@@ -2162,6 +2162,7 @@ test_arglist \ | |
test_nested_function \ | |
test_netbeans \ | |
test_normal \ | |
+ test_number \ | |
test_options \ | |
test_packadd \ | |
test_partial \ | |
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak | |
index c42aae63b..60ee6131f 100644 | |
--- a/src/testdir/Make_all.mak | |
+++ b/src/testdir/Make_all.mak | |
@@ -173,6 +173,7 @@ NEW_TESTS = test_arglist.res \ | |
test_nested_function.res \ | |
test_netbeans.res \ | |
test_normal.res \ | |
+ test_number.res \ | |
test_packadd.res \ | |
test_paste.res \ | |
test_perl.res \ | |
diff --git a/src/testdir/test_breakindent.vim b/src/testdir/test_breakindent.vim | |
index bf363dcf8..be1f2464f 100644 | |
--- a/src/testdir/test_breakindent.vim | |
+++ b/src/testdir/test_breakindent.vim | |
@@ -8,165 +8,203 @@ if !exists('+breakindent') | |
finish | |
endif | |
+source view_util.vim | |
+ | |
let s:input ="\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP" | |
-function s:screenline(lnum, width) abort | |
- " always get 4 screen lines | |
- redraw! | |
- let line = [] | |
- for j in range(3) | |
- for c in range(1, a:width) | |
- call add(line, nr2char(screenchar(a:lnum+j, c))) | |
- endfor | |
- call add(line, "\n") | |
- endfor | |
- return join(line, '') | |
-endfunction | |
- | |
-function s:testwindows(...) | |
- 10new | |
- vsp | |
- vert resize 20 | |
- setl ts=4 sw=4 sts=4 breakindent | |
+function s:screen_lines(lnum, width) abort | |
+ return ScreenLines([a:lnum, a:lnum + 2], a:width) | |
+endfunction | |
+ | |
+function! s:compare_lines(expect, actual) | |
+ call assert_equal(join(a:expect, "\n"), join(a:actual, "\n")) | |
+endfunction | |
+ | |
+function s:test_windows(...) | |
+ call NewWindow(10, 20) | |
+ setl ts=4 sw=4 sts=4 breakindent | |
put =s:input | |
- if a:0 | |
- exe a:1 | |
- endif | |
+ exe get(a:000, 0, '') | |
endfunction | |
function s:close_windows(...) | |
- bw! | |
- if a:0 | |
- exe a:1 | |
- endif | |
- unlet! g:line g:expect | |
+ call CloseWindow() | |
+ exe get(a:000, 0, '') | |
endfunction | |
function Test_breakindent01() | |
" simple breakindent test | |
- call s:testwindows('setl briopt=min:0') | |
- let g:line=s:screenline(line('.'),8) | |
- let g:expect=" abcd\n qrst\n GHIJ\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl briopt=min:0') | |
+ let lines=s:screen_lines(line('.'),8) | |
+ let expect=[ | |
+\ " abcd", | |
+\ " qrst", | |
+\ " GHIJ", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows() | |
endfunction | |
function Test_breakindent02() | |
" simple breakindent test with showbreak set | |
- call s:testwindows('setl briopt=min:0 sbr=>>') | |
- let g:line=s:screenline(line('.'),8) | |
- let g:expect=" abcd\n >>qr\n >>EF\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl briopt=min:0 sbr=>>') | |
+ let lines=s:screen_lines(line('.'),8) | |
+ let expect=[ | |
+\ " abcd", | |
+\ " >>qr", | |
+\ " >>EF", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows('set sbr=') | |
endfunction | |
function Test_breakindent03() | |
" simple breakindent test with showbreak set and briopt including sbr | |
- call s:testwindows('setl briopt=sbr,min:0 sbr=++') | |
- let g:line=s:screenline(line('.'),8) | |
- let g:expect=" abcd\n++ qrst\n++ GHIJ\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl briopt=sbr,min:0 sbr=++') | |
+ let lines=s:screen_lines(line('.'),8) | |
+ let expect=[ | |
+\ " abcd", | |
+\ "++ qrst", | |
+\ "++ GHIJ", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
" clean up | |
call s:close_windows('set sbr=') | |
endfunction | |
function Test_breakindent04() | |
" breakindent set with min width 18 | |
- call s:testwindows('setl sbr= briopt=min:18') | |
- let g:line=s:screenline(line('.'),8) | |
- let g:expect=" abcd\n qrstuv\n IJKLMN\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl sbr= briopt=min:18') | |
+ let lines=s:screen_lines(line('.'),8) | |
+ let expect=[ | |
+\ " abcd", | |
+\ " qrstuv", | |
+\ " IJKLMN", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
" clean up | |
call s:close_windows('set sbr=') | |
endfunction | |
function Test_breakindent05() | |
" breakindent set and shift by 2 | |
- call s:testwindows('setl briopt=shift:2,min:0') | |
- let g:line=s:screenline(line('.'),8) | |
- let g:expect=" abcd\n qr\n EF\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl briopt=shift:2,min:0') | |
+ let lines=s:screen_lines(line('.'),8) | |
+ let expect=[ | |
+\ " abcd", | |
+\ " qr", | |
+\ " EF", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows() | |
endfunction | |
function Test_breakindent06() | |
" breakindent set and shift by -1 | |
- call s:testwindows('setl briopt=shift:-1,min:0') | |
- let g:line=s:screenline(line('.'),8) | |
- let g:expect=" abcd\n qrstu\n HIJKL\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl briopt=shift:-1,min:0') | |
+ let lines=s:screen_lines(line('.'),8) | |
+ let expect=[ | |
+\ " abcd", | |
+\ " qrstu", | |
+\ " HIJKL", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows() | |
endfunction | |
function Test_breakindent07() | |
" breakindent set and shift by 1, Number set sbr=? and briopt:sbr | |
- call s:testwindows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4 cpo+=n') | |
- let g:line=s:screenline(line('.'),10) | |
- let g:expect=" 2 ab\n? m\n? x\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4 cpo+=n') | |
+ let lines=s:screen_lines(line('.'),10) | |
+ let expect=[ | |
+\ " 2 ab", | |
+\ "? m", | |
+\ "? x", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
" clean up | |
call s:close_windows('set sbr= cpo-=n') | |
endfunction | |
function Test_breakindent07a() | |
" breakindent set and shift by 1, Number set sbr=? and briopt:sbr | |
- call s:testwindows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4') | |
- let g:line=s:screenline(line('.'),10) | |
- let g:expect=" 2 ab\n ? m\n ? x\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl briopt=shift:1,sbr,min:0 nu sbr=? nuw=4') | |
+ let lines=s:screen_lines(line('.'),10) | |
+ let expect=[ | |
+\ " 2 ab", | |
+\ " ? m", | |
+\ " ? x", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
" clean up | |
call s:close_windows('set sbr=') | |
endfunction | |
function Test_breakindent08() | |
" breakindent set and shift by 1, Number and list set sbr=# and briopt:sbr | |
- call s:testwindows('setl briopt=shift:1,sbr,min:0 nu nuw=4 sbr=# list cpo+=n ts=4') | |
+ call s:test_windows('setl briopt=shift:1,sbr,min:0 nu nuw=4 sbr=# list cpo+=n ts=4') | |
" make sure, cache is invalidated! | |
set ts=8 | |
redraw! | |
set ts=4 | |
redraw! | |
- let g:line=s:screenline(line('.'),10) | |
- let g:expect=" 2 ^Iabcd\n# opq\n# BCD\n" | |
- call assert_equal(g:expect, g:line) | |
+ let lines=s:screen_lines(line('.'),10) | |
+ let expect=[ | |
+\ " 2 ^Iabcd", | |
+\ "# opq", | |
+\ "# BCD", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows('set sbr= cpo-=n') | |
endfunction | |
function Test_breakindent08a() | |
" breakindent set and shift by 1, Number and list set sbr=# and briopt:sbr | |
- call s:testwindows('setl briopt=shift:1,sbr,min:0 nu nuw=4 sbr=# list') | |
- let g:line=s:screenline(line('.'),10) | |
- let g:expect=" 2 ^Iabcd\n # opq\n # BCD\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl briopt=shift:1,sbr,min:0 nu nuw=4 sbr=# list') | |
+ let lines=s:screen_lines(line('.'),10) | |
+ let expect=[ | |
+\ " 2 ^Iabcd", | |
+\ " # opq", | |
+\ " # BCD", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows('set sbr=') | |
endfunction | |
function Test_breakindent09() | |
" breakindent set and shift by 1, Number and list set sbr=# | |
- call s:testwindows('setl briopt=shift:1,min:0 nu nuw=4 sbr=# list') | |
- let g:line=s:screenline(line('.'),10) | |
- let g:expect=" 2 ^Iabcd\n #op\n #AB\n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl briopt=shift:1,min:0 nu nuw=4 sbr=# list') | |
+ let lines=s:screen_lines(line('.'),10) | |
+ let expect=[ | |
+\ " 2 ^Iabcd", | |
+\ " #op", | |
+\ " #AB", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows('set sbr=') | |
endfunction | |
function Test_breakindent10() | |
" breakindent set, Number set sbr=~ | |
- call s:testwindows('setl cpo+=n sbr=~ nu nuw=4 nolist briopt=sbr,min:0') | |
+ call s:test_windows('setl cpo+=n sbr=~ nu nuw=4 nolist briopt=sbr,min:0') | |
" make sure, cache is invalidated! | |
set ts=8 | |
redraw! | |
set ts=4 | |
redraw! | |
- let g:line=s:screenline(line('.'),10) | |
- let g:expect=" 2 ab\n~ mn\n~ yz\n" | |
- call assert_equal(g:expect, g:line) | |
+ let lines=s:screen_lines(line('.'),10) | |
+ let expect=[ | |
+\ " 2 ab", | |
+\ "~ mn", | |
+\ "~ yz", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows('set sbr= cpo-=n') | |
endfunction | |
function Test_breakindent11() | |
" test strdisplaywidth() | |
- call s:testwindows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4') | |
+ call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4') | |
let text=getline(2) | |
let width = strlen(text[1:])+indent(2)+strlen(&sbr)*3 " text wraps 3 times | |
call assert_equal(width, strdisplaywidth(text)) | |
@@ -176,16 +214,20 @@ endfunction | |
function Test_breakindent12() | |
" test breakindent with long indent | |
let s:input="\t\t\t\t\t{" | |
- call s:testwindows('setl breakindent linebreak briopt=min:10 nu numberwidth=3 ts=4 list listchars=tab:>-') | |
- let g:line=s:screenline(2,16) | |
- let g:expect=" 2 >--->--->--->\n ---{ \n~ \n" | |
- call assert_equal(g:expect, g:line) | |
+ call s:test_windows('setl breakindent linebreak briopt=min:10 nu numberwidth=3 ts=4 list listchars=tab:>-') | |
+ let lines=s:screen_lines(2,16) | |
+ let expect=[ | |
+\ " 2 >--->--->--->", | |
+\ " ---{ ", | |
+\ "~ ", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows('set nuw=4 listchars=') | |
endfunction | |
function Test_breakindent13() | |
let s:input="" | |
- call s:testwindows('setl breakindent briopt=min:10 ts=8') | |
+ call s:test_windows('setl breakindent briopt=min:10 ts=8') | |
vert resize 20 | |
call setline(1, [" a\tb\tc\td\te", " z y x w v"]) | |
1 | |
@@ -199,26 +241,34 @@ endfunction | |
function Test_breakindent14() | |
let s:input="" | |
- call s:testwindows('setl breakindent briopt= ts=8') | |
+ call s:test_windows('setl breakindent briopt= ts=8') | |
vert resize 30 | |
norm! 3a1234567890 | |
norm! a abcde | |
exec "norm! 0\<C-V>tex" | |
- let g:line=s:screenline(line('.'),8) | |
- let g:expect="e \n~ \n~ \n" | |
- call assert_equal(g:expect, g:line) | |
+ let lines=s:screen_lines(line('.'),8) | |
+ let expect=[ | |
+\ "e ", | |
+\ "~ ", | |
+\ "~ ", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows() | |
endfunction | |
function Test_breakindent15() | |
let s:input="" | |
- call s:testwindows('setl breakindent briopt= ts=8 sw=8') | |
+ call s:test_windows('setl breakindent briopt= ts=8 sw=8') | |
vert resize 30 | |
norm! 4a1234567890 | |
exe "normal! >>\<C-V>3f0x" | |
- let g:line=s:screenline(line('.'),20) | |
- let g:expect=" 1234567890 \n~ \n~ \n" | |
- call assert_equal(g:expect, g:line) | |
+ let lines=s:screen_lines(line('.'),20) | |
+ let expect=[ | |
+\ " 1234567890 ", | |
+\ "~ ", | |
+\ "~ ", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows() | |
endfunction | |
@@ -226,16 +276,24 @@ function Test_breakindent16() | |
" Check that overlong lines are indented correctly. | |
" TODO: currently it does not fail even when the bug is not fixed. | |
let s:input="" | |
- call s:testwindows('setl breakindent briopt=min:0 ts=4') | |
+ call s:test_windows('setl breakindent briopt=min:0 ts=4') | |
call setline(1, "\t".repeat("1234567890", 10)) | |
resize 6 | |
norm! 1gg$ | |
redraw! | |
- let g:line=s:screenline(1,10) | |
- let g:expect=" 123456\n 789012\n 345678\n" | |
- call assert_equal(g:expect, g:line) | |
- let g:line=s:screenline(4,10) | |
- let g:expect=" 901234\n 567890\n 123456\n" | |
- call assert_equal(g:expect, g:line) | |
+ let lines=s:screen_lines(1,10) | |
+ let expect=[ | |
+\ " 123456", | |
+\ " 789012", | |
+\ " 345678", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
+ let lines=s:screen_lines(4,10) | |
+ let expect=[ | |
+\ " 901234", | |
+\ " 567890", | |
+\ " 123456", | |
+\ ] | |
+ call s:compare_lines(expect, lines) | |
call s:close_windows() | |
endfunction | |
diff --git a/src/testdir/test_number.vim b/src/testdir/test_number.vim | |
new file mode 100644 | |
index 000000000..298041a47 | |
--- /dev/null | |
+++ b/src/testdir/test_number.vim | |
@@ -0,0 +1,197 @@ | |
+" Test for number and relativenumber | |
+" | |
+ | |
+source view_util.vim | |
+ | |
+let s:input = ["abcdefghij", "klmnopqrst", "uvwxyzABCD", "EFGHIJKLMN", "OPQRSTUVWX", "YZ"] | |
+ | |
+function! s:screen_lines(start, end) abort | |
+ return ScreenLines([a:start, a:end], 8) | |
+endfunction | |
+ | |
+function! s:compare_lines(expect, actual) | |
+ call assert_equal(join(a:expect, "\n"), join(a:actual, "\n")) | |
+endfunction | |
+ | |
+function! s:test_windows(h, w) abort | |
+ call NewWindow(a:h, a:w) | |
+endfunction | |
+ | |
+function! s:close_windows() abort | |
+ call CloseWindow() | |
+endfunction | |
+ | |
+function! s:validate_cursor() abort | |
+ " update skipcol. | |
+ " wincol(): | |
+ " f_wincol | |
+ " -> validate_cursor | |
+ " -> curs_columns | |
+ call wincol() | |
+endfunction | |
+ | |
+func Test_set_number() | |
+ call s:test_windows(10, 20) | |
+ call setline(1, s:input) | |
+ setl number | |
+ let lines = s:screen_lines(1, 4) | |
+ let expect = [ | |
+ \ " 1 abcd", | |
+ \ " 2 klmn", | |
+ \ " 3 uvwx", | |
+ \ " 4 EFGH", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ call s:close_windows() | |
+endfunc | |
+ | |
+func Test_set_relativenumber() | |
+ call s:test_windows(10, 20) | |
+ call setline(1, s:input) | |
+ 3 | |
+ setl relativenumber | |
+ let lines = s:screen_lines(1, 6) | |
+ let expect = [ | |
+ \ " 2 abcd", | |
+ \ " 1 klmn", | |
+ \ " 0 uvwx", | |
+ \ " 1 EFGH", | |
+ \ " 2 OPQR", | |
+ \ " 3 YZ ", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ call s:close_windows() | |
+endfunc | |
+ | |
+func Test_number_with_relativenumber() | |
+ call s:test_windows(10, 20) | |
+ call setline(1, s:input) | |
+ 4 | |
+ setl number relativenumber | |
+ let lines = s:screen_lines(1, 6) | |
+ let expect = [ | |
+ \ " 3 abcd", | |
+ \ " 2 klmn", | |
+ \ " 1 uvwx", | |
+ \ "4 EFGH", | |
+ \ " 1 OPQR", | |
+ \ " 2 YZ ", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ call s:close_windows() | |
+endfunc | |
+ | |
+func Test_number_with_linewrap01() | |
+ call s:test_windows(3, 20) | |
+ normal! 61ia | |
+ setl number wrap | |
+ call s:validate_cursor() | |
+ let lines = s:screen_lines(1, 3) | |
+ let expect = [ | |
+ \ "--1 aaaa", | |
+ \ " aaaa", | |
+ \ " aaaa", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ 0 | |
+ call s:validate_cursor() | |
+ let lines = s:screen_lines(1, 3) | |
+ let expect = [ | |
+ \ " 1 aaaa", | |
+ \ " aaaa", | |
+ \ " aaaa", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ call s:close_windows() | |
+endfunc | |
+ | |
+func Test_number_with_linewrap02() | |
+ call s:test_windows(4, 20) | |
+ normal! 81ia | |
+ setl number wrap | |
+ call s:validate_cursor() | |
+ setl nonumber | |
+ call s:validate_cursor() | |
+ let lines = s:screen_lines(1, 4) | |
+ let expect = [ | |
+ \ "aaaaaaaa", | |
+ \ "aaaaaaaa", | |
+ \ "aaaaaaaa", | |
+ \ "a ", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ call s:close_windows() | |
+endfunc | |
+ | |
+func Test_number_with_numberwidth() | |
+ call s:test_windows(10, 20) | |
+ call setline(1, repeat(['aaaa'], 10)) | |
+ setl number numberwidth=6 | |
+ let lines = s:screen_lines(1, 3) | |
+ let expect = [ | |
+ \ " 1 aa", | |
+ \ " 2 aa", | |
+ \ " 3 aa", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ | |
+ set relativenumber | |
+ let lines = s:screen_lines(1, 3) | |
+ let expect = [ | |
+ \ "1 aa", | |
+ \ " 1 aa", | |
+ \ " 2 aa", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ | |
+ set nonumber | |
+ let lines = s:screen_lines(1, 3) | |
+ let expect = [ | |
+ \ " 0 aa", | |
+ \ " 1 aa", | |
+ \ " 2 aa", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ call s:close_windows() | |
+endfunction | |
+ | |
+func Test_number_with_numberwidth_adjusted() | |
+ call s:test_windows(10, 20) | |
+ call setline(1, repeat(['aaaa'], 10000)) | |
+ setl number numberwidth=4 | |
+ let lines = s:screen_lines(1, 3) | |
+ let expect = [ | |
+ \ " 1 aa", | |
+ \ " 2 aa", | |
+ \ " 3 aa", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ | |
+ normal! G | |
+ let lines = s:screen_lines(8, 10) | |
+ let expect = [ | |
+ \ " 9998 aa", | |
+ \ " 9999 aa", | |
+ \ "10000 aa", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ | |
+ setl relativenumber | |
+ let lines = s:screen_lines(8, 10) | |
+ let expect = [ | |
+ \ " 2 aa", | |
+ \ " 1 aa", | |
+ \ "10000 aa", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ | |
+ setl nonumber | |
+ let lines = s:screen_lines(8, 10) | |
+ let expect = [ | |
+ \ " 2 aaaa", | |
+ \ " 1 aaaa", | |
+ \ " 0 aaaa", | |
+ \ ] | |
+ call s:compare_lines(expect, lines) | |
+ call s:close_windows() | |
+endfunc | |
diff --git a/src/testdir/view_util.vim b/src/testdir/view_util.vim | |
new file mode 100644 | |
index 000000000..eb9263076 | |
--- /dev/null | |
+++ b/src/testdir/view_util.vim | |
@@ -0,0 +1,30 @@ | |
+" Functions about view shared by several tests | |
+ | |
+" ScreenLines(lnum, width) or | |
+" ScreenLines([start, end], width) | |
+function! ScreenLines(lnum, width) abort | |
+ redraw! | |
+ if type(a:lnum) == v:t_list | |
+ let start = a:lnum[0] | |
+ let end = a:lnum[1] | |
+ else | |
+ let start = a:lnum | |
+ let end = a:lnum | |
+ endif | |
+ let lines = [] | |
+ for l in range(start, end) | |
+ let lines += [join(map(range(1, a:width), 'nr2char(screenchar(l, v:val))'), '')] | |
+ endfor | |
+ return lines | |
+endfunction | |
+ | |
+function! NewWindow(height, width) abort | |
+ exe a:height . 'new' | |
+ exe a:width . 'vsp' | |
+ redraw! | |
+endfunction | |
+ | |
+function! CloseWindow() abort | |
+ bw! | |
+ redraw! | |
+endfunction |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment