diff options
Diffstat (limited to 'src/nvim/testdir/test17.in')
-rw-r--r-- | src/nvim/testdir/test17.in | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/src/nvim/testdir/test17.in b/src/nvim/testdir/test17.in new file mode 100644 index 0000000000..bc542c7625 --- /dev/null +++ b/src/nvim/testdir/test17.in @@ -0,0 +1,141 @@ +Tests for: +- "gf" on ${VAR}, +- ":checkpath!" with various 'include' settings. + +STARTTEST +:so small.vim +:if has("ebcdic") +: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,} +:else +: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} +:endif +:function! DeleteDirectory(dir) +: if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32") +: exec "silent !rmdir /Q /S " . a:dir +: else +: exec "silent !rm -rf " . a:dir +: endif +:endfun +:if has("unix") +:let $CDIR = "." +/CDIR +:else +:if has("amiga") +:let $TDIR = "/testdir" +:else +:let $TDIR = "." +:endif +/TDIR +:endif +:" Dummy writing for making that sure gf doesn't fail even if the current +:" file is modified. It can be occurred when executing the following command +:" directly on Windows without fixing the 'fileformat': +:" > nmake -f Make_dos.mak test17.out +:w! test.out +gf +:set ff=unix +:w! test.out +:brewind +ENDTEST + + ${CDIR}/test17a.in + $TDIR/test17a.in + +STARTTEST +:" check for 'include' without \zs or \ze +:lang C +:call delete("./Xbase.a") +:call DeleteDirectory("Xdir1") +:!mkdir Xdir1 +:!mkdir "Xdir1/dir2" +:e! Xdir1/dir2/foo.a +i#include "bar.a" +:w +:e Xdir1/dir2/bar.a +i#include "baz.a" +:w +:e Xdir1/dir2/baz.a +i#include "foo.a" +:w +:e Xbase.a +:set path=Xdir1/dir2 +i#include <foo.a> +:w +:redir! >>test.out +:checkpath! +:redir END +:brewind +ENDTEST + +STARTTEST +:" check for 'include' with \zs and \ze +:call delete("./Xbase.b") +:call DeleteDirectory("Xdir1") +:!mkdir Xdir1 +:!mkdir "Xdir1/dir2" +:let &include='^\s*%inc\s*/\zs[^/]\+\ze' +:function! DotsToSlashes() +: return substitute(v:fname, '\.', '/', 'g') . '.b' +:endfunction +:let &includeexpr='DotsToSlashes()' +:e! Xdir1/dir2/foo.b +i%inc /bar/ +:w +:e Xdir1/dir2/bar.b +i%inc /baz/ +:w +:e Xdir1/dir2/baz.b +i%inc /foo/ +:w +:e Xbase.b +:set path=Xdir1/dir2 +i%inc /foo/ +:w +:redir! >>test.out +:checkpath! +:redir END +:brewind +ENDTEST + +STARTTEST +:" check for 'include' with \zs and no \ze +:call delete("./Xbase.c") +:call DeleteDirectory("Xdir1") +:!mkdir Xdir1 +:!mkdir "Xdir1/dir2" +:let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze' +:function! StripNewlineChar() +: if v:fname =~ '\n$' +: return v:fname[:-2] +: endif +: return v:fname +:endfunction +:let &includeexpr='StripNewlineChar()' +:e! Xdir1/dir2/foo.c +i%inc bar.c +:w +:e Xdir1/dir2/bar.c +i%inc baz.c +:w +:e Xdir1/dir2/baz.c +i%inc foo.c +:w +:e Xdir1/dir2/FALSE.c +i%inc foo.c +:w +:e Xbase.c +:set path=Xdir1/dir2 +i%inc FALSE.c foo.c +:w +:redir! >>test.out +:checkpath! +:redir END +:brewind +:" change "\" to "/" for Windows and fix 'fileformat' +:e test.out +:%s#\\#/#g +:set ff& +:w +:q +ENDTEST + |