mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.0.1302: still too many old style tests
Problem: Still too many old style tests.
Solution: Convert a few more tests to new style. (Yegappan Lakshmanan,
closes vim/vim#2326)
209d3874c1
This commit is contained in:
parent
04993f220a
commit
ef39f854d7
@ -23,7 +23,6 @@ SCRIPTS_DEFAULT = \
|
||||
test49.out \
|
||||
test52.out \
|
||||
test64.out \
|
||||
test73.out \
|
||||
|
||||
ifneq ($(OS),Windows_NT)
|
||||
SCRIPTS_DEFAULTS := $(SCRIPTS_DEFAULT) \
|
||||
@ -42,17 +41,21 @@ NEW_TESTS ?= \
|
||||
test_changedtick.res \
|
||||
test_charsearch.res \
|
||||
test_cindent.res \
|
||||
test_close_count.res \
|
||||
test_cmdline.res \
|
||||
test_command_count.res \
|
||||
test_cscope.res \
|
||||
test_curswant.res \
|
||||
test_digraph.res \
|
||||
test_edit.res \
|
||||
test_erasebackword.res \
|
||||
test_exists.res \
|
||||
test_diffmode.res \
|
||||
test_farsi.res \
|
||||
test_file_size.res \
|
||||
test_filter_map.res \
|
||||
test_find_complete.res \
|
||||
test_fixeol.res \
|
||||
test_findfile.res \
|
||||
test_fnameescape.res \
|
||||
test_fold.res \
|
||||
@ -73,6 +76,7 @@ NEW_TESTS ?= \
|
||||
test_listlbr.res \
|
||||
test_let.res \
|
||||
test_lineending.res \
|
||||
test_listchars.res \
|
||||
test_makeencoding.res \
|
||||
test_marks.res \
|
||||
test_match.res \
|
||||
|
@ -95,6 +95,10 @@ func RunTheTest(test)
|
||||
" buffers.
|
||||
%bwipe!
|
||||
|
||||
" The test may change the current directory. Save and restore the
|
||||
" directory after executing the test.
|
||||
let save_cwd = getcwd()
|
||||
|
||||
if exists("*SetUp")
|
||||
try
|
||||
call SetUp()
|
||||
@ -149,6 +153,8 @@ func RunTheTest(test)
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
|
||||
exe 'cd ' . save_cwd
|
||||
endfunc
|
||||
|
||||
func AfterTheTest()
|
||||
|
@ -1,168 +0,0 @@
|
||||
Tests for find completion.
|
||||
|
||||
STARTTEST
|
||||
:set wildmode=full
|
||||
:" Do all test in a separate window to avoid E211 when we recursively
|
||||
:" delete the Xfind directory during cleanup
|
||||
:"
|
||||
:" This will cause a few errors, do it silently.
|
||||
:set visualbell
|
||||
:"
|
||||
:" On windows a stale "Xfind" directory may exist, remove it so that
|
||||
:" we start from a clean state.
|
||||
:call delete("Xfind", "rf")
|
||||
:new
|
||||
:let cwd=getcwd()
|
||||
:let test_out = cwd . '/test.out'
|
||||
:call mkdir('Xfind')
|
||||
:cd Xfind
|
||||
:set path=
|
||||
:find
|
||||
:exec "w! " . test_out
|
||||
:close
|
||||
:new
|
||||
:set path=.
|
||||
:find
|
||||
:exec "w >>" . test_out
|
||||
:close
|
||||
:new
|
||||
:set path=.,,
|
||||
:find
|
||||
:exec "w >>" . test_out
|
||||
:close
|
||||
:new
|
||||
:set path=./**
|
||||
:find
|
||||
:exec "w >>" . test_out
|
||||
:close
|
||||
:new
|
||||
:" We shouldn't find any file at this point, test.out must be empty.
|
||||
:call mkdir('in')
|
||||
:cd in
|
||||
:call mkdir('path')
|
||||
:exec "cd " . cwd
|
||||
:e Xfind/file.txt
|
||||
SHoly Grail:w
|
||||
:e Xfind/in/file.txt
|
||||
SJimmy Hoffa:w
|
||||
:e Xfind/in/stuff.txt
|
||||
SAnother Holy Grail:w
|
||||
:e Xfind/in/path/file.txt
|
||||
SE.T.:w
|
||||
:set path=Xfind/**
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:" Rerun the previous three find completions, using fullpath in 'path'
|
||||
:exec "set path=" . cwd . "/Xfind/**"
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:" Same steps again, using relative and fullpath items that point to the same
|
||||
:" recursive location.
|
||||
:" This is to test that there are no duplicates in the completion list.
|
||||
:exec "set path+=Xfind/**"
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:find file
|
||||
:" Test find completion for directory of current buffer, which at this point
|
||||
:" is Xfind/in/file.txt.
|
||||
:set path=.
|
||||
:find st
|
||||
:exec "w >>" . test_out
|
||||
:" Test find completion for empty path item ",," which is the current directory
|
||||
:cd Xfind
|
||||
:set path=,,
|
||||
:find f
|
||||
:exec "w >>" . test_out
|
||||
:" Test shortening of
|
||||
:"
|
||||
:" foo/x/bar/voyager.txt
|
||||
:" foo/y/bar/voyager.txt
|
||||
:"
|
||||
:" When current directory is above foo/ they should be shortened to (in order
|
||||
:" of appearance):
|
||||
:"
|
||||
:" x/bar/voyager.txt
|
||||
:" y/bar/voyager.txt
|
||||
:call mkdir('foo')
|
||||
:cd foo
|
||||
:call mkdir('x')
|
||||
:call mkdir('y')
|
||||
:cd x
|
||||
:call mkdir('bar')
|
||||
:cd ..
|
||||
:cd y
|
||||
:call mkdir('bar')
|
||||
:cd ..
|
||||
:cd ..
|
||||
:" We should now be in the Xfind directory
|
||||
:e foo/x/bar/voyager.txt
|
||||
SVoyager 1:w
|
||||
:e foo/y/bar/voyager.txt
|
||||
SVoyager 2:w
|
||||
:exec "set path=" . cwd . "/Xfind/**"
|
||||
:find voyager
|
||||
:exec "w >>" . test_out
|
||||
:find voyager
|
||||
:exec "w >>" . test_out
|
||||
:"
|
||||
:" When current directory is .../foo/y/bar they should be shortened to (in
|
||||
:" order of appearance):
|
||||
:"
|
||||
:" ./voyager.txt
|
||||
:" x/bar/voyager.txt
|
||||
:cd foo
|
||||
:cd y
|
||||
:cd bar
|
||||
:find voyager
|
||||
:exec "w >> " . test_out
|
||||
:find voyager
|
||||
:exec "w >> " . test_out
|
||||
:" Check the opposite too:
|
||||
:cd ..
|
||||
:cd ..
|
||||
:cd x
|
||||
:cd bar
|
||||
:find voyager
|
||||
:exec "w >> " . test_out
|
||||
:find voyager
|
||||
:exec "w >> " . test_out
|
||||
:" Check for correct handling of shorten_fname()'s behavior on windows
|
||||
:exec "cd " . cwd . "/Xfind/in"
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:" Test for relative to current buffer 'path' item
|
||||
:exec "cd " . cwd . "/Xfind/"
|
||||
:set path=./path
|
||||
:" Open the file where Jimmy Hoffa is found
|
||||
:e in/file.txt
|
||||
:" Find the file containing 'E.T.' in the Xfind/in/path directory
|
||||
:find file
|
||||
:exec "w >>" . test_out
|
||||
:"
|
||||
:" Test that completion works when path=.,,
|
||||
:"
|
||||
:set path=.,,
|
||||
:" Open Jimmy Hoffa file
|
||||
:e in/file.txt
|
||||
:exec "w >>" . test_out
|
||||
:" Search for the file containing Holy Grail in same directory as in/path.txt
|
||||
:find stu
|
||||
:exec "w >>" . test_out
|
||||
:q
|
||||
:exec "cd " . cwd
|
||||
:call delete("Xfind", "rf")
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
@ -1,21 +0,0 @@
|
||||
Holy Grail
|
||||
Jimmy Hoffa
|
||||
E.T.
|
||||
Holy Grail
|
||||
Jimmy Hoffa
|
||||
E.T.
|
||||
Holy Grail
|
||||
Jimmy Hoffa
|
||||
E.T.
|
||||
Another Holy Grail
|
||||
Holy Grail
|
||||
Voyager 1
|
||||
Voyager 2
|
||||
Voyager 2
|
||||
Voyager 1
|
||||
Voyager 1
|
||||
Voyager 2
|
||||
Jimmy Hoffa
|
||||
E.T.
|
||||
Jimmy Hoffa
|
||||
Another Holy Grail
|
174
src/nvim/testdir/test_close_count.vim
Normal file
174
src/nvim/testdir/test_close_count.vim
Normal file
@ -0,0 +1,174 @@
|
||||
|
||||
" Tests for :[count]close! command
|
||||
func Test_close_count()
|
||||
enew! | only
|
||||
|
||||
let wids = [win_getid()]
|
||||
for i in range(5)
|
||||
new
|
||||
call add(wids, win_getid())
|
||||
endfor
|
||||
|
||||
4wincmd w
|
||||
close!
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids)
|
||||
|
||||
1close!
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids)
|
||||
|
||||
$close!
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[4], wids[3], wids[1]], ids)
|
||||
|
||||
1wincmd w
|
||||
2close!
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[4], wids[1]], ids)
|
||||
|
||||
1wincmd w
|
||||
new
|
||||
call add(wids, win_getid())
|
||||
new
|
||||
call add(wids, win_getid())
|
||||
2wincmd w
|
||||
-1close!
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[6], wids[4], wids[1]], ids)
|
||||
|
||||
2wincmd w
|
||||
+1close!
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[6], wids[4]], ids)
|
||||
|
||||
only!
|
||||
endfunc
|
||||
|
||||
" Tests for :[count]hide command
|
||||
func Test_hide_count()
|
||||
enew! | only
|
||||
|
||||
let wids = [win_getid()]
|
||||
for i in range(5)
|
||||
new
|
||||
call add(wids, win_getid())
|
||||
endfor
|
||||
|
||||
4wincmd w
|
||||
.hide
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids)
|
||||
|
||||
1hide
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids)
|
||||
|
||||
$hide
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[4], wids[3], wids[1]], ids)
|
||||
|
||||
1wincmd w
|
||||
2hide
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[4], wids[1]], ids)
|
||||
|
||||
1wincmd w
|
||||
new
|
||||
call add(wids, win_getid())
|
||||
new
|
||||
call add(wids, win_getid())
|
||||
3wincmd w
|
||||
-hide
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[7], wids[4], wids[1]], ids)
|
||||
|
||||
2wincmd w
|
||||
+hide
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[7], wids[4]], ids)
|
||||
|
||||
only!
|
||||
endfunc
|
||||
|
||||
" Tests for :[count]close! command with 'hidden'
|
||||
func Test_hidden_close_count()
|
||||
enew! | only
|
||||
|
||||
let wids = [win_getid()]
|
||||
for i in range(5)
|
||||
new
|
||||
call add(wids, win_getid())
|
||||
endfor
|
||||
|
||||
set hidden
|
||||
|
||||
$ hide
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[5], wids[4], wids[3], wids[2], wids[1]], ids)
|
||||
|
||||
$-1 close!
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[5], wids[4], wids[3], wids[1]], ids)
|
||||
|
||||
1wincmd w
|
||||
.+close!
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[5], wids[3], wids[1]], ids)
|
||||
|
||||
set nohidden
|
||||
only!
|
||||
endfunc
|
||||
|
||||
" Tests for 'CTRL-W c' command to close windows.
|
||||
func Test_winclose_command()
|
||||
enew! | only
|
||||
|
||||
let wids = [win_getid()]
|
||||
for i in range(5)
|
||||
new
|
||||
call add(wids, win_getid())
|
||||
endfor
|
||||
|
||||
set hidden
|
||||
|
||||
4wincmd w
|
||||
exe "normal \<C-W>c"
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids)
|
||||
|
||||
exe "normal 1\<C-W>c"
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids)
|
||||
|
||||
exe "normal 9\<C-W>c"
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[4], wids[3], wids[1]], ids)
|
||||
|
||||
1wincmd w
|
||||
exe "normal 2\<C-W>c"
|
||||
let ids = []
|
||||
windo call add(ids, win_getid())
|
||||
call assert_equal([wids[4], wids[1]], ids)
|
||||
|
||||
set nohidden
|
||||
only!
|
||||
endfunc
|
25
src/nvim/testdir/test_erasebackword.vim
Normal file
25
src/nvim/testdir/test_erasebackword.vim
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
func Test_erasebackword()
|
||||
if !has('multi_byte')
|
||||
return
|
||||
endif
|
||||
|
||||
set encoding=utf-8
|
||||
enew
|
||||
|
||||
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>"
|
||||
call assert_equal(' wwwこんにちわ世界ワールド', getline('.'))
|
||||
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>"
|
||||
call assert_equal(' wwwこんにちわ世界', getline('.'))
|
||||
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>\<C-W>"
|
||||
call assert_equal(' wwwこんにちわ', getline('.'))
|
||||
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>\<C-W>\<C-W>"
|
||||
call assert_equal(' www', getline('.'))
|
||||
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>\<C-W>\<C-W>\<C-W>"
|
||||
call assert_equal(' ', getline('.'))
|
||||
exe "normal o wwwこんにちわ世界ワールドvim \<C-W>\<C-W>\<C-W>\<C-W>\<C-W>\<C-W>"
|
||||
call assert_equal('', getline('.'))
|
||||
|
||||
enew!
|
||||
set encoding&
|
||||
endfunc
|
157
src/nvim/testdir/test_find_complete.vim
Normal file
157
src/nvim/testdir/test_find_complete.vim
Normal file
@ -0,0 +1,157 @@
|
||||
" Tests for the 'find' command completion.
|
||||
|
||||
" Do all the tests in a separate window to avoid E211 when we recursively
|
||||
" delete the Xfind directory during cleanup
|
||||
func Test_find_complete()
|
||||
set belloff=all
|
||||
|
||||
" On windows a stale "Xfind" directory may exist, remove it so that
|
||||
" we start from a clean state.
|
||||
call delete("Xfind", "rf")
|
||||
let cwd = getcwd()
|
||||
let test_out = cwd . '/test.out'
|
||||
call mkdir('Xfind')
|
||||
cd Xfind
|
||||
|
||||
new
|
||||
set path=
|
||||
call assert_fails('call feedkeys(":find\t\n", "xt")', 'E345:')
|
||||
close
|
||||
|
||||
new
|
||||
set path=.
|
||||
call assert_fails('call feedkeys(":find\t\n", "xt")', 'E32:')
|
||||
close
|
||||
|
||||
new
|
||||
set path=.,,
|
||||
call assert_fails('call feedkeys(":find\t\n", "xt")', 'E32:')
|
||||
close
|
||||
|
||||
new
|
||||
set path=./**
|
||||
call assert_fails('call feedkeys(":find\t\n", "xt")', 'E32:')
|
||||
close
|
||||
|
||||
" We shouldn't find any file till this point
|
||||
|
||||
call mkdir('in/path', 'p')
|
||||
exe 'cd ' . cwd
|
||||
call writefile(['Holy Grail'], 'Xfind/file.txt')
|
||||
call writefile(['Jimmy Hoffa'], 'Xfind/in/file.txt')
|
||||
call writefile(['Another Holy Grail'], 'Xfind/in/stuff.txt')
|
||||
call writefile(['E.T.'], 'Xfind/in/path/file.txt')
|
||||
|
||||
new
|
||||
set path=Xfind/**
|
||||
call feedkeys(":find file\t\n", "xt")
|
||||
call assert_equal('Holy Grail', getline(1))
|
||||
call feedkeys(":find file\t\t\n", "xt")
|
||||
call assert_equal('Jimmy Hoffa', getline(1))
|
||||
call feedkeys(":find file\t\t\t\n", "xt")
|
||||
call assert_equal('E.T.', getline(1))
|
||||
|
||||
" Rerun the previous three find completions, using fullpath in 'path'
|
||||
exec "set path=" . cwd . "/Xfind/**"
|
||||
|
||||
call feedkeys(":find file\t\n", "xt")
|
||||
call assert_equal('Holy Grail', getline(1))
|
||||
call feedkeys(":find file\t\t\n", "xt")
|
||||
call assert_equal('Jimmy Hoffa', getline(1))
|
||||
call feedkeys(":find file\t\t\t\n", "xt")
|
||||
call assert_equal('E.T.', getline(1))
|
||||
|
||||
" Same steps again, using relative and fullpath items that point to the same
|
||||
" recursive location.
|
||||
" This is to test that there are no duplicates in the completion list.
|
||||
set path+=Xfind/**
|
||||
call feedkeys(":find file\t\n", "xt")
|
||||
call assert_equal('Holy Grail', getline(1))
|
||||
call feedkeys(":find file\t\t\n", "xt")
|
||||
call assert_equal('Jimmy Hoffa', getline(1))
|
||||
call feedkeys(":find file\t\t\t\n", "xt")
|
||||
call assert_equal('E.T.', getline(1))
|
||||
call feedkeys(":find file\t\t\n", "xt")
|
||||
|
||||
" Test find completion for directory of current buffer, which at this point
|
||||
" is Xfind/in/file.txt.
|
||||
set path=.
|
||||
call feedkeys(":find st\t\n", "xt")
|
||||
call assert_equal('Another Holy Grail', getline(1))
|
||||
|
||||
" Test find completion for empty path item ",," which is the current
|
||||
" directory
|
||||
cd Xfind
|
||||
set path=,,
|
||||
call feedkeys(":find f\t\n", "xt")
|
||||
call assert_equal('Holy Grail', getline(1))
|
||||
|
||||
" Test shortening of
|
||||
"
|
||||
" foo/x/bar/voyager.txt
|
||||
" foo/y/bar/voyager.txt
|
||||
"
|
||||
" When current directory is above foo/ they should be shortened to (in order
|
||||
" of appearance):
|
||||
"
|
||||
" x/bar/voyager.txt
|
||||
" y/bar/voyager.txt
|
||||
call mkdir('foo/x/bar', 'p')
|
||||
call mkdir('foo/y/bar', 'p')
|
||||
call writefile(['Voyager 1'], 'foo/x/bar/voyager.txt')
|
||||
call writefile(['Voyager 2'], 'foo/y/bar/voyager.txt')
|
||||
|
||||
exec "set path=" . cwd . "/Xfind/**"
|
||||
call feedkeys(":find voyager\t\n", "xt")
|
||||
call assert_equal('Voyager 1', getline(1))
|
||||
call feedkeys(":find voyager\t\t\n", "xt")
|
||||
call assert_equal('Voyager 2', getline(1))
|
||||
|
||||
"
|
||||
" When current directory is .../foo/y/bar they should be shortened to (in
|
||||
" order of appearance):
|
||||
"
|
||||
" ./voyager.txt
|
||||
" x/bar/voyager.txt
|
||||
cd foo/y/bar
|
||||
call feedkeys(":find voyager\t\n", "xt")
|
||||
call assert_equal('Voyager 2', getline(1))
|
||||
call feedkeys(":find voyager\t\t\n", "xt")
|
||||
call assert_equal('Voyager 1', getline(1))
|
||||
|
||||
" Check the opposite too:
|
||||
cd ../../x/bar
|
||||
call feedkeys(":find voyager\t\n", "xt")
|
||||
call assert_equal('Voyager 1', getline(1))
|
||||
call feedkeys(":find voyager\t\t\n", "xt")
|
||||
call assert_equal('Voyager 2', getline(1))
|
||||
|
||||
" Check for correct handling of shorten_fname()'s behavior on windows
|
||||
exec "cd " . cwd . "/Xfind/in"
|
||||
call feedkeys(":find file\t\n", "xt")
|
||||
call assert_equal('Jimmy Hoffa', getline(1))
|
||||
|
||||
" Test for relative to current buffer 'path' item
|
||||
exec "cd " . cwd . "/Xfind/"
|
||||
set path=./path
|
||||
" Open the file where Jimmy Hoffa is found
|
||||
e in/file.txt
|
||||
" Find the file containing 'E.T.' in the Xfind/in/path directory
|
||||
call feedkeys(":find file\t\n", "xt")
|
||||
call assert_equal('E.T.', getline(1))
|
||||
|
||||
" Test that completion works when path=.,,
|
||||
set path=.,,
|
||||
" Open Jimmy Hoffa file
|
||||
e in/file.txt
|
||||
call assert_equal('Jimmy Hoffa', getline(1))
|
||||
|
||||
" Search for the file containing Holy Grail in same directory as in/path.txt
|
||||
call feedkeys(":find stu\t\n", "xt")
|
||||
call assert_equal('Another Holy Grail', getline(1))
|
||||
|
||||
enew | only
|
||||
exe 'cd ' . cwd
|
||||
call delete('Xfind', 'rf')
|
||||
set path&
|
||||
endfunc
|
48
src/nvim/testdir/test_fixeol.vim
Normal file
48
src/nvim/testdir/test_fixeol.vim
Normal file
@ -0,0 +1,48 @@
|
||||
" Tests for 'fixeol' and 'eol'
|
||||
func Test_fixeol()
|
||||
" first write two test files – with and without trailing EOL
|
||||
" use Unix fileformat for consistency
|
||||
set ff=unix
|
||||
enew!
|
||||
call setline('.', 'with eol')
|
||||
w! XXEol
|
||||
enew!
|
||||
set noeol nofixeol
|
||||
call setline('.', 'without eol')
|
||||
w! XXNoEol
|
||||
set eol fixeol
|
||||
bwipe XXEol XXNoEol
|
||||
|
||||
" try editing files with 'fixeol' disabled
|
||||
e! XXEol
|
||||
normal ostays eol
|
||||
set nofixeol
|
||||
w! XXTestEol
|
||||
e! XXNoEol
|
||||
normal ostays without
|
||||
set nofixeol
|
||||
w! XXTestNoEol
|
||||
bwipe! XXEol XXNoEol XXTestEol XXTestNoEol
|
||||
set fixeol
|
||||
|
||||
" Append "END" to each file so that we can see what the last written char
|
||||
" was.
|
||||
normal ggdGaEND
|
||||
w >>XXEol
|
||||
w >>XXNoEol
|
||||
w >>XXTestEol
|
||||
w >>XXTestNoEol
|
||||
|
||||
call assert_equal(['with eol', 'END'], readfile('XXEol'))
|
||||
call assert_equal(['without eolEND'], readfile('XXNoEol'))
|
||||
call assert_equal(['with eol', 'stays eol', 'END'], readfile('XXTestEol'))
|
||||
call assert_equal(['without eol', 'stays withoutEND'],
|
||||
\ readfile('XXTestNoEol'))
|
||||
|
||||
call delete('XXEol')
|
||||
call delete('XXNoEol')
|
||||
call delete('XXTestEol')
|
||||
call delete('XXTestNoEol')
|
||||
set ff& fixeol& eol&
|
||||
enew!
|
||||
endfunc
|
63
src/nvim/testdir/test_listchars.vim
Normal file
63
src/nvim/testdir/test_listchars.vim
Normal file
@ -0,0 +1,63 @@
|
||||
" Tests for 'listchars' display with 'list' and :list
|
||||
|
||||
source view_util.vim
|
||||
|
||||
func Test_listchars()
|
||||
enew!
|
||||
set ff=unix
|
||||
set list
|
||||
|
||||
set listchars+=tab:>-,space:.,trail:<
|
||||
call append(0, [
|
||||
\ ' aa ',
|
||||
\ ' bb ',
|
||||
\ ' cccc ',
|
||||
\ 'dd ee ',
|
||||
\ ' '
|
||||
\ ])
|
||||
let expected = [
|
||||
\ '>-------aa>-----$',
|
||||
\ '..bb>---<<$',
|
||||
\ '...cccc><$',
|
||||
\ 'dd........ee<<>-$',
|
||||
\ '<$'
|
||||
\ ]
|
||||
redraw!
|
||||
for i in range(1, 5)
|
||||
call cursor(i, 1)
|
||||
call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
|
||||
endfor
|
||||
|
||||
set listchars-=trail:<
|
||||
let expected = [
|
||||
\ '>-------aa>-----$',
|
||||
\ '..bb>---..$',
|
||||
\ '...cccc>.$',
|
||||
\ 'dd........ee..>-$',
|
||||
\ '.$'
|
||||
\ ]
|
||||
redraw!
|
||||
for i in range(1, 5)
|
||||
call cursor(i, 1)
|
||||
call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
|
||||
endfor
|
||||
|
||||
set listchars+=trail:<
|
||||
set nolist
|
||||
normal ggdG
|
||||
call append(0, [
|
||||
\ ' fff ',
|
||||
\ ' gg ',
|
||||
\ ' h ',
|
||||
\ 'iii ',
|
||||
\ ])
|
||||
let l = split(execute("%list"), "\n")
|
||||
call assert_equal([
|
||||
\ '..fff>--<<$',
|
||||
\ '>-------gg>-----$',
|
||||
\ '.....h>-$',
|
||||
\ 'iii<<<<><<$', '$'], l)
|
||||
|
||||
enew!
|
||||
set listchars& ff&
|
||||
endfunc
|
168
src/nvim/testdir/test_textformat.vim
Normal file
168
src/nvim/testdir/test_textformat.vim
Normal file
@ -0,0 +1,168 @@
|
||||
" Tests for the various 'formatoptions' settings
|
||||
func Test_text_format()
|
||||
enew!
|
||||
|
||||
setl noai tw=2 fo=t
|
||||
call append('$', [
|
||||
\ '{',
|
||||
\ ' ',
|
||||
\ '',
|
||||
\ '}'])
|
||||
exe "normal /^{/+1\n0"
|
||||
normal gRa b
|
||||
let lnum = line('.')
|
||||
call assert_equal([
|
||||
\ 'a',
|
||||
\ 'b'], getline(lnum - 1, lnum))
|
||||
|
||||
normal ggdG
|
||||
setl ai tw=2 fo=tw
|
||||
call append('$', [
|
||||
\ '{',
|
||||
\ 'a b ',
|
||||
\ '',
|
||||
\ 'a ',
|
||||
\ '}'])
|
||||
exe "normal /^{/+1\n0"
|
||||
normal gqgqjjllab
|
||||
let lnum = line('.')
|
||||
call assert_equal([
|
||||
\ 'a ',
|
||||
\ 'b ',
|
||||
\ '',
|
||||
\ 'a ',
|
||||
\ 'b'], getline(lnum - 4, lnum))
|
||||
|
||||
normal ggdG
|
||||
setl tw=3 fo=t
|
||||
call append('$', [
|
||||
\ '{',
|
||||
\ "a \<C-A>",
|
||||
\ '}'])
|
||||
exe "normal /^{/+1\n0"
|
||||
exe "normal gqgqo\na \<C-V>\<C-A>"
|
||||
let lnum = line('.')
|
||||
call assert_equal([
|
||||
\ 'a',
|
||||
\ "\<C-A>",
|
||||
\ '',
|
||||
\ 'a',
|
||||
\ "\<C-A>"], getline(lnum - 4, lnum))
|
||||
|
||||
normal ggdG
|
||||
setl tw=2 fo=tcq1 comments=:#
|
||||
call append('$', [
|
||||
\ '{',
|
||||
\ 'a b',
|
||||
\ '#a b',
|
||||
\ '}'])
|
||||
exe "normal /^{/+1\n0"
|
||||
exe "normal gqgqjgqgqo\na b\n#a b"
|
||||
let lnum = line('.')
|
||||
call assert_equal([
|
||||
\ 'a b',
|
||||
\ '#a b',
|
||||
\ '',
|
||||
\ 'a b',
|
||||
\ '#a b'], getline(lnum - 4, lnum))
|
||||
|
||||
normal ggdG
|
||||
setl tw=5 fo=tcn comments=:#
|
||||
call append('$', [
|
||||
\ '{',
|
||||
\ ' 1 a',
|
||||
\ '# 1 a',
|
||||
\ '}'])
|
||||
exe "normal /^{/+1\n0"
|
||||
exe "normal A b\<Esc>jA b"
|
||||
let lnum = line('.')
|
||||
call assert_equal([
|
||||
\ ' 1 a',
|
||||
\ ' b',
|
||||
\ '# 1 a',
|
||||
\ '# b'], getline(lnum - 3, lnum))
|
||||
|
||||
normal ggdG
|
||||
setl tw=5 fo=t2a si
|
||||
call append('$', [
|
||||
\ '{',
|
||||
\ '',
|
||||
\ ' x a',
|
||||
\ ' b',
|
||||
\ ' c',
|
||||
\ '',
|
||||
\ '}'])
|
||||
exe "normal /^{/+3\n0"
|
||||
exe "normal i \<Esc>A_"
|
||||
let lnum = line('.')
|
||||
call assert_equal([
|
||||
\ '',
|
||||
\ ' x a',
|
||||
\ ' b_',
|
||||
\ ' c',
|
||||
\ ''], getline(lnum - 2, lnum + 2))
|
||||
|
||||
normal ggdG
|
||||
setl tw=5 fo=qn comments=:#
|
||||
call append('$', [
|
||||
\ '{',
|
||||
\ '# 1 a b',
|
||||
\ '}'])
|
||||
exe "normal /^{/+1\n5|"
|
||||
normal gwap
|
||||
call assert_equal(5, col('.'))
|
||||
let lnum = line('.')
|
||||
call assert_equal([
|
||||
\ '# 1 a',
|
||||
\ '# b'], getline(lnum, lnum + 1))
|
||||
|
||||
normal ggdG
|
||||
setl tw=5 fo=q2 comments=:#
|
||||
call append('$', [
|
||||
\ '{',
|
||||
\ '# x',
|
||||
\ '# a b',
|
||||
\ '}'])
|
||||
exe "normal /^{/+1\n0"
|
||||
normal gwap
|
||||
let lnum = line('.')
|
||||
call assert_equal([
|
||||
\ '# x a',
|
||||
\ '# b'], getline(lnum, lnum + 1))
|
||||
|
||||
normal ggdG
|
||||
setl tw& fo=a
|
||||
call append('$', [
|
||||
\ '{',
|
||||
\ ' 1aa',
|
||||
\ ' 2bb',
|
||||
\ '}'])
|
||||
exe "normal /^{/+2\n0"
|
||||
normal I^^
|
||||
call assert_equal('{ 1aa ^^2bb }', getline('.'))
|
||||
|
||||
normal ggdG
|
||||
setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
|
||||
call append('$', [
|
||||
\ '/* abc def ghi jkl ',
|
||||
\ ' * mno pqr stu',
|
||||
\ ' */'])
|
||||
exe "normal /mno pqr/\n"
|
||||
normal A vwx yz
|
||||
let lnum = line('.')
|
||||
call assert_equal([
|
||||
\ ' * mno pqr stu ',
|
||||
\ ' * vwx yz',
|
||||
\ ' */'], getline(lnum - 1, lnum + 1))
|
||||
|
||||
normal ggdG
|
||||
setl tw=12 fo=tqnc comments=:#
|
||||
call setline('.', '# 1 xxxxx')
|
||||
normal A foobar
|
||||
call assert_equal([
|
||||
\ '# 1 xxxxx',
|
||||
\ '# foobar'], getline(1, 2))
|
||||
|
||||
setl ai& tw& fo& si& comments&
|
||||
enew!
|
||||
endfunc
|
Loading…
Reference in New Issue
Block a user