mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge PR #1420 'Migrate legacy tests (2nd batch)'
This commit is contained in:
commit
bc1b9c1d90
@ -1,45 +0,0 @@
|
|||||||
Test for v:hlsearch vim: set ft=vim :
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:" Last abc: Q
|
|
||||||
:so small.vim
|
|
||||||
:new
|
|
||||||
:call setline(1, repeat(['aaa'], 10))
|
|
||||||
:set hlsearch nolazyredraw
|
|
||||||
:let r=[]
|
|
||||||
:command -nargs=0 -bar AddR :call add(r, [screenattr(1, 1), v:hlsearch])
|
|
||||||
/aaa
|
|
||||||
:AddR
|
|
||||||
:nohlsearch
|
|
||||||
:AddR
|
|
||||||
:let v:hlsearch=1
|
|
||||||
:AddR
|
|
||||||
:let v:hlsearch=0
|
|
||||||
:AddR
|
|
||||||
:set hlsearch
|
|
||||||
:AddR
|
|
||||||
:let v:hlsearch=0
|
|
||||||
:AddR
|
|
||||||
n:AddR
|
|
||||||
:let v:hlsearch=0
|
|
||||||
:AddR
|
|
||||||
/
|
|
||||||
:AddR
|
|
||||||
:let r1=r[0][0]
|
|
||||||
:" I guess it is not guaranteed that screenattr outputs always the same character
|
|
||||||
:call map(r, 'v:val[1].":".(v:val[0]==r1?"highlighted":"not highlighted")')
|
|
||||||
:try
|
|
||||||
: let v:hlsearch=[]
|
|
||||||
:catch
|
|
||||||
: call add(r, matchstr(v:exception,'^Vim(let):E\d\+:'))
|
|
||||||
:endtry
|
|
||||||
:bwipeout!
|
|
||||||
:$put=r
|
|
||||||
:call garbagecollect(1)
|
|
||||||
:"
|
|
||||||
:/^start:/,$wq! test.out
|
|
||||||
:" vim: et ts=4 isk-=\:
|
|
||||||
:call getchar()
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
start:
|
|
@ -1,11 +0,0 @@
|
|||||||
start:
|
|
||||||
1:highlighted
|
|
||||||
0:not highlighted
|
|
||||||
1:highlighted
|
|
||||||
0:not highlighted
|
|
||||||
1:highlighted
|
|
||||||
0:not highlighted
|
|
||||||
1:highlighted
|
|
||||||
0:not highlighted
|
|
||||||
1:highlighted
|
|
||||||
Vim(let):E706:
|
|
@ -1,30 +0,0 @@
|
|||||||
Tests for :let. vim: set ft=vim ts=8 :
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:set runtimepath+=./sautest
|
|
||||||
:" Test to not autoload when assigning. It causes internal error.
|
|
||||||
:try
|
|
||||||
: let Test104#numvar = function('tr')
|
|
||||||
: $put ='OK: ' . string(Test104#numvar)
|
|
||||||
:catch
|
|
||||||
: $put ='FAIL: ' . v:exception
|
|
||||||
:endtry
|
|
||||||
:let a = 1
|
|
||||||
:let b = 2
|
|
||||||
:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0 == 1 ? "a" : "b"}']
|
|
||||||
: try
|
|
||||||
: redir => messages
|
|
||||||
: execute 'let' letargs
|
|
||||||
: redir END
|
|
||||||
: $put ='OK:'
|
|
||||||
: $put =split(substitute(messages, '\n', '\0 ', 'g'), '\n')
|
|
||||||
: catch
|
|
||||||
: $put ='FAIL: ' . v:exception
|
|
||||||
: redir END
|
|
||||||
: endtry
|
|
||||||
:endfor
|
|
||||||
:/^Results/,$wq! test.out
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
Results of test104:
|
|
@ -1,13 +0,0 @@
|
|||||||
Results of test104:
|
|
||||||
OK: function('tr')
|
|
||||||
OK:
|
|
||||||
a #1
|
|
||||||
b #2
|
|
||||||
OK:
|
|
||||||
b #2
|
|
||||||
OK:
|
|
||||||
b #2
|
|
||||||
a #1
|
|
||||||
OK:
|
|
||||||
a #1
|
|
||||||
b #2
|
|
@ -1,45 +0,0 @@
|
|||||||
Test filename modifiers vim: set ft=vim :
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:source small.vim
|
|
||||||
:%delete _
|
|
||||||
:set shell=sh
|
|
||||||
:set shellslash
|
|
||||||
:let tab="\t"
|
|
||||||
:command -nargs=1 Put :let expr=<q-args> | $put =expr.tab.strtrans(string(eval(expr)))
|
|
||||||
:let $HOME=fnamemodify('.', ':p:h:h:h')
|
|
||||||
:Put fnamemodify('.', ':p' )[-1:]
|
|
||||||
:Put fnamemodify('.', ':p:h' )[-1:]
|
|
||||||
:Put fnamemodify('test.out', ':p' )[-1:]
|
|
||||||
:Put fnamemodify('test.out', ':.' )
|
|
||||||
:Put fnamemodify('../testdir/a', ':.' )
|
|
||||||
:Put fnamemodify('test.out', ':~' )
|
|
||||||
:Put fnamemodify('../testdir/a', ':~' )
|
|
||||||
:Put fnamemodify('../testdir/a', ':t' )
|
|
||||||
:Put fnamemodify('.', ':p:t' )
|
|
||||||
:Put fnamemodify('test.out', ':p:t' )
|
|
||||||
:Put fnamemodify('test.out', ':p:e' )
|
|
||||||
:Put fnamemodify('test.out', ':p:t:e' )
|
|
||||||
:Put fnamemodify('abc.fb2.tar.gz', ':r' )
|
|
||||||
:Put fnamemodify('abc.fb2.tar.gz', ':r:r' )
|
|
||||||
:Put fnamemodify('abc.fb2.tar.gz', ':r:r:r' )
|
|
||||||
:Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '')
|
|
||||||
:Put fnamemodify('abc.fb2.tar.gz', ':e' )
|
|
||||||
:Put fnamemodify('abc.fb2.tar.gz', ':e:e' )
|
|
||||||
:Put fnamemodify('abc.fb2.tar.gz', ':e:e:e' )
|
|
||||||
:Put fnamemodify('abc.fb2.tar.gz', ':e:e:e:e')
|
|
||||||
:Put fnamemodify('abc.fb2.tar.gz', ':e:e:r' )
|
|
||||||
:Put fnamemodify('abc def', ':S' )
|
|
||||||
:Put fnamemodify('abc" "def', ':S' )
|
|
||||||
:Put fnamemodify('abc"%"def', ':S' )
|
|
||||||
:Put fnamemodify('abc'' ''def', ':S' )
|
|
||||||
:Put fnamemodify('abc''%''def', ':S' )
|
|
||||||
:Put fnamemodify("abc\ndef", ':S' )
|
|
||||||
:set shell=tcsh
|
|
||||||
:Put fnamemodify("abc\ndef", ':S' )
|
|
||||||
:$put ='vim: ts=8'
|
|
||||||
:1 delete _
|
|
||||||
:w! test.out
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
fnamemodify('.', ':p' )[-1:] '/'
|
|
||||||
fnamemodify('.', ':p:h' )[-1:] 'r'
|
|
||||||
fnamemodify('test.out', ':p' )[-1:] 't'
|
|
||||||
fnamemodify('test.out', ':.' ) 'test.out'
|
|
||||||
fnamemodify('../testdir/a', ':.' ) 'a'
|
|
||||||
fnamemodify('test.out', ':~' ) '~/nvim/testdir/test.out'
|
|
||||||
fnamemodify('../testdir/a', ':~' ) '~/nvim/testdir/a'
|
|
||||||
fnamemodify('../testdir/a', ':t' ) 'a'
|
|
||||||
fnamemodify('.', ':p:t' ) ''
|
|
||||||
fnamemodify('test.out', ':p:t' ) 'test.out'
|
|
||||||
fnamemodify('test.out', ':p:e' ) 'out'
|
|
||||||
fnamemodify('test.out', ':p:t:e' ) 'out'
|
|
||||||
fnamemodify('abc.fb2.tar.gz', ':r' ) 'abc.fb2.tar'
|
|
||||||
fnamemodify('abc.fb2.tar.gz', ':r:r' ) 'abc.fb2'
|
|
||||||
fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) 'abc'
|
|
||||||
substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '') 'nvim/testdir/abc.fb2'
|
|
||||||
fnamemodify('abc.fb2.tar.gz', ':e' ) 'gz'
|
|
||||||
fnamemodify('abc.fb2.tar.gz', ':e:e' ) 'tar.gz'
|
|
||||||
fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) 'fb2.tar.gz'
|
|
||||||
fnamemodify('abc.fb2.tar.gz', ':e:e:e:e') 'fb2.tar.gz'
|
|
||||||
fnamemodify('abc.fb2.tar.gz', ':e:e:r' ) 'tar'
|
|
||||||
fnamemodify('abc def', ':S' ) '''abc def'''
|
|
||||||
fnamemodify('abc" "def', ':S' ) '''abc" "def'''
|
|
||||||
fnamemodify('abc"%"def', ':S' ) '''abc"%"def'''
|
|
||||||
fnamemodify('abc'' ''def', ':S' ) '''abc''\'''' ''\''''def'''
|
|
||||||
fnamemodify('abc''%''def', ':S' ) '''abc''\''''%''\''''def'''
|
|
||||||
fnamemodify("abc\ndef", ':S' ) '''abc^@def'''
|
|
||||||
fnamemodify("abc\ndef", ':S' ) '''abc\^@def'''
|
|
||||||
vim: ts=8
|
|
@ -1,19 +0,0 @@
|
|||||||
Tests for [ CTRL-I with a count and CTRL-W CTRL-I with a count
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
/start
|
|
||||||
6[ :.w! test.out
|
|
||||||
?start here
|
|
||||||
6 :.w >>test.out
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
#include test21.in
|
|
||||||
|
|
||||||
/* test text test tex start here
|
|
||||||
some text
|
|
||||||
test text
|
|
||||||
start OK if found this line
|
|
||||||
start found wrong line
|
|
||||||
test text
|
|
@ -1,2 +0,0 @@
|
|||||||
start OK if found this line
|
|
||||||
start OK if found this line
|
|
@ -1,31 +0,0 @@
|
|||||||
Test for jumping to a tag with 'hidden' set, with symbolic link in path of tag.
|
|
||||||
This only works for Unix, because of the symbolic link.
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:set hidden
|
|
||||||
:" Create a link from test25.dir to the current directory.
|
|
||||||
:!rm -f test25.dir
|
|
||||||
:!ln -s . test25.dir
|
|
||||||
:" Create tags.text, with the current directory name inserted.
|
|
||||||
/tags line
|
|
||||||
:r !pwd
|
|
||||||
d$/test
|
|
||||||
hP:.w! tags.test
|
|
||||||
:" Try jumping to a tag in the current file, but with a path that contains a
|
|
||||||
:" symbolic link. When wrong, this will give the ATTENTION message. The next
|
|
||||||
:" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
|
|
||||||
:set tags=tags.test
|
|
||||||
G x:.w! test.out
|
|
||||||
:!rm -f test25.dir tags.test
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
tags line:
|
|
||||||
SECTION_OFF /test25.dir/test25.in /^#define SECTION_OFF 3$/
|
|
||||||
|
|
||||||
/*tx.c*/
|
|
||||||
#define SECTION_OFF 3
|
|
||||||
#define NUM_SECTIONS 3
|
|
||||||
|
|
||||||
SECTION_OFF
|
|
@ -1 +0,0 @@
|
|||||||
#efine SECTION_OFF 3
|
|
@ -1,44 +0,0 @@
|
|||||||
Test for :execute, :while and :if
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
mt:let i = 0
|
|
||||||
:while i < 12
|
|
||||||
: let i = i + 1
|
|
||||||
: if has("ebcdic")
|
|
||||||
: execute "normal o" . i . "\047"
|
|
||||||
: else
|
|
||||||
: execute "normal o" . i . "\033"
|
|
||||||
: endif
|
|
||||||
: if i % 2
|
|
||||||
: normal Ax
|
|
||||||
: if i == 9
|
|
||||||
: break
|
|
||||||
: endif
|
|
||||||
: if i == 5
|
|
||||||
: continue
|
|
||||||
: else
|
|
||||||
: let j = 9
|
|
||||||
: while j > 0
|
|
||||||
: if has("ebcdic")
|
|
||||||
: execute "normal" j . "a" . j . "\x27"
|
|
||||||
: else
|
|
||||||
: execute "normal" j . "a" . j . "\x1b"
|
|
||||||
: endif
|
|
||||||
: let j = j - 1
|
|
||||||
: endwhile
|
|
||||||
: endif
|
|
||||||
: endif
|
|
||||||
: if i == 9
|
|
||||||
: if has("ebcdic")
|
|
||||||
: execute "normal Az\047"
|
|
||||||
: else
|
|
||||||
: execute "normal Az\033"
|
|
||||||
: endif
|
|
||||||
: endif
|
|
||||||
:endwhile
|
|
||||||
:unlet i j
|
|
||||||
:'t,$w! test.out
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
|||||||
|
|
||||||
1x999999999888888887777777666666555554444333221
|
|
||||||
2
|
|
||||||
3x999999999888888887777777666666555554444333221
|
|
||||||
4
|
|
||||||
5x
|
|
||||||
6
|
|
||||||
7x999999999888888887777777666666555554444333221
|
|
||||||
8
|
|
||||||
9x
|
|
@ -1,34 +0,0 @@
|
|||||||
Test for 'lisp'
|
|
||||||
If the lisp feature is not enabled, this will fail!
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:set lisp
|
|
||||||
/^(defun
|
|
||||||
=G:/^(defun/,$w! test.out
|
|
||||||
:q!
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
(defun html-file (base)
|
|
||||||
(format nil "~(~A~).html" base))
|
|
||||||
|
|
||||||
(defmacro page (name title &rest body)
|
|
||||||
(let ((ti (gensym)))
|
|
||||||
`(with-open-file (*standard-output*
|
|
||||||
(html-file ,name)
|
|
||||||
:direction :output
|
|
||||||
:if-exists :supersede)
|
|
||||||
(let ((,ti ,title))
|
|
||||||
(as title ,ti)
|
|
||||||
(with center
|
|
||||||
(as h2 (string-upcase ,ti)))
|
|
||||||
(brs 3)
|
|
||||||
,@body))))
|
|
||||||
|
|
||||||
;;; Utilities for generating links
|
|
||||||
|
|
||||||
(defmacro with-link (dest &rest body)
|
|
||||||
`(progn
|
|
||||||
(format t "<a href=\"~A\">" (html-file ,dest))
|
|
||||||
,@body
|
|
||||||
(princ "</a>")))
|
|
@ -1,23 +0,0 @@
|
|||||||
(defun html-file (base)
|
|
||||||
(format nil "~(~A~).html" base))
|
|
||||||
|
|
||||||
(defmacro page (name title &rest body)
|
|
||||||
(let ((ti (gensym)))
|
|
||||||
`(with-open-file (*standard-output*
|
|
||||||
(html-file ,name)
|
|
||||||
:direction :output
|
|
||||||
:if-exists :supersede)
|
|
||||||
(let ((,ti ,title))
|
|
||||||
(as title ,ti)
|
|
||||||
(with center
|
|
||||||
(as h2 (string-upcase ,ti)))
|
|
||||||
(brs 3)
|
|
||||||
,@body))))
|
|
||||||
|
|
||||||
;;; Utilities for generating links
|
|
||||||
|
|
||||||
(defmacro with-link (dest &rest body)
|
|
||||||
`(progn
|
|
||||||
(format t "<a href=\"~A\">" (html-file ,dest))
|
|
||||||
,@body
|
|
||||||
(princ "</a>")))
|
|
@ -1,34 +0,0 @@
|
|||||||
Tests for regexp with various magic settings.
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:set nocompatible viminfo+=nviminfo
|
|
||||||
/^1
|
|
||||||
/a*b\{2}c\+/e
|
|
||||||
x/\Md\*e\{2}f\+/e
|
|
||||||
x:set nomagic
|
|
||||||
/g\*h\{2}i\+/e
|
|
||||||
x/\mj*k\{2}l\+/e
|
|
||||||
x/\vm*n{2}o+/e
|
|
||||||
x/\V^aa$
|
|
||||||
x:set magic
|
|
||||||
/\v(a)(b)\2\1\1/e
|
|
||||||
x/\V[ab]\(\[xy]\)\1
|
|
||||||
x:$
|
|
||||||
:set undolevels=100
|
|
||||||
dv?bar?
|
|
||||||
Yup:"
|
|
||||||
:?^1?,$w! test.out
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
1 a aa abb abbccc
|
|
||||||
2 d dd dee deefff
|
|
||||||
3 g gg ghh ghhiii
|
|
||||||
4 j jj jkk jkklll
|
|
||||||
5 m mm mnn mnnooo
|
|
||||||
6 x ^aa$ x
|
|
||||||
7 (a)(b) abbaa
|
|
||||||
8 axx [ab]xx
|
|
||||||
9 foobar
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
1 a aa abb abbcc
|
|
||||||
2 d dd dee deeff
|
|
||||||
3 g gg ghh ghhii
|
|
||||||
4 j jj jkk jkkll
|
|
||||||
5 m mm mnn mnnoo
|
|
||||||
6 x aa$ x
|
|
||||||
7 (a)(b) abba
|
|
||||||
8 axx ab]xx
|
|
||||||
9 foobar
|
|
||||||
9 foo
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
Test for autocommand that deletes the current buffer on BufLeave event.
|
|
||||||
Also test deleting the last buffer, should give a new, empty buffer.
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:au BufLeave Xxx bwipe
|
|
||||||
/start of
|
|
||||||
:.,/end of/w! Xxx " write test file Xxx
|
|
||||||
:sp Xxx " split to Xxx
|
|
||||||
:bwipe " delete buffer Xxx, now we're back here
|
|
||||||
G?this is a
|
|
||||||
othis is some more text
|
|
||||||
: " Append some text to this file
|
|
||||||
:?start?,$w! test.out " Write current file contents
|
|
||||||
:bwipe test.out " delete alternate buffer
|
|
||||||
:au bufleave test5.in bwipe
|
|
||||||
:bwipe! " delete current buffer, get an empty one
|
|
||||||
ithis is another test line:w >>test.out
|
|
||||||
: " append an extra line to the output file
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
start of test file Xxx
|
|
||||||
vim: set noai :
|
|
||||||
this is a test
|
|
||||||
this is a test
|
|
||||||
this is a test
|
|
||||||
this is a test
|
|
||||||
end of test file Xxx
|
|
@ -1,9 +0,0 @@
|
|||||||
start of test file Xxx
|
|
||||||
vim: set noai :
|
|
||||||
this is a test
|
|
||||||
this is a test
|
|
||||||
this is a test
|
|
||||||
this is a test
|
|
||||||
this is some more text
|
|
||||||
end of test file Xxx
|
|
||||||
this is another test line
|
|
@ -1,36 +0,0 @@
|
|||||||
Tests for ":highlight". vim: set ft=vim :
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:" basic test if ":highlight" doesn't crash
|
|
||||||
:highlight
|
|
||||||
:hi Search
|
|
||||||
:" test setting colors.
|
|
||||||
:" test clearing one color and all doesn't generate error or warning
|
|
||||||
:hi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#00ff00 guibg=Cyan
|
|
||||||
:hi Group2 term= cterm=
|
|
||||||
:hi Group3 term=underline cterm=bold
|
|
||||||
:redir! >test.out
|
|
||||||
:hi NewGroup
|
|
||||||
:hi Group2
|
|
||||||
:hi Group3
|
|
||||||
:hi clear NewGroup
|
|
||||||
:hi NewGroup
|
|
||||||
:hi Group2
|
|
||||||
:hi Group2 NONE
|
|
||||||
:hi Group2
|
|
||||||
:hi clear
|
|
||||||
:hi Group3
|
|
||||||
:hi Crash term='asdf
|
|
||||||
:redir END
|
|
||||||
:" filter ctermfg and ctermbg, the numbers depend on the terminal
|
|
||||||
:e test.out
|
|
||||||
:%s/ctermfg=\d*/ctermfg=2/
|
|
||||||
:%s/ctermbg=\d*/ctermbg=3/
|
|
||||||
:" filter out possibly translated error message
|
|
||||||
:%s/E475: [^:]*:/E475:/
|
|
||||||
:" fix the fileformat
|
|
||||||
:set ff&
|
|
||||||
:wq!
|
|
||||||
ENDTEST
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
NewGroup xxx term=bold cterm=italic ctermfg=2 ctermbg=3
|
|
||||||
|
|
||||||
Group2 xxx cleared
|
|
||||||
|
|
||||||
Group3 xxx term=underline cterm=bold
|
|
||||||
|
|
||||||
|
|
||||||
NewGroup xxx cleared
|
|
||||||
|
|
||||||
Group2 xxx cleared
|
|
||||||
|
|
||||||
|
|
||||||
Group2 xxx cleared
|
|
||||||
|
|
||||||
|
|
||||||
Group3 xxx cleared
|
|
||||||
|
|
||||||
E475: term='asdf
|
|
@ -1,33 +0,0 @@
|
|||||||
|
|
||||||
Test for visual block shift and tab characters.
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
/^one
|
|
||||||
fe4jRugvr1:'<,'>w! test.out
|
|
||||||
/^abcdefgh
|
|
||||||
4jI j<<11|D
|
|
||||||
7|a
|
|
||||||
7|a
|
|
||||||
7|a 4k13|4j<
|
|
||||||
:$-5,$w >> test.out
|
|
||||||
:$-4,$s/\s\+//g
|
|
||||||
4kI j<<
|
|
||||||
7|a
|
|
||||||
7|a
|
|
||||||
7|a 4k13|4j3<
|
|
||||||
:$-4,$w >> test.out
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
one two three
|
|
||||||
one two three
|
|
||||||
one two three
|
|
||||||
one two three
|
|
||||||
one two three
|
|
||||||
|
|
||||||
abcdefghijklmnopqrstuvwxyz
|
|
||||||
abcdefghijklmnopqrstuvwxyz
|
|
||||||
abcdefghijklmnopqrstuvwxyz
|
|
||||||
abcdefghijklmnopqrstuvwxyz
|
|
||||||
abcdefghijklmnopqrstuvwxyz
|
|
@ -1,16 +0,0 @@
|
|||||||
on1 two three
|
|
||||||
on1 two three
|
|
||||||
on1 two three
|
|
||||||
on1 two three
|
|
||||||
on1 two three
|
|
||||||
|
|
||||||
abcdefghijklmnopqrstuvwxyz
|
|
||||||
abcdefghij
|
|
||||||
abc defghijklmnopqrstuvwxyz
|
|
||||||
abc defghijklmnopqrstuvwxyz
|
|
||||||
abc defghijklmnopqrstuvwxyz
|
|
||||||
abcdefghijklmnopqrstuvwxyz
|
|
||||||
abcdefghij
|
|
||||||
abc defghijklmnopqrstuvwxyz
|
|
||||||
abc defghijklmnopqrstuvwxyz
|
|
||||||
abc defghijklmnopqrstuvwxyz
|
|
@ -1,33 +0,0 @@
|
|||||||
Test that groups and patterns are tested correctly when calling exists() for
|
|
||||||
autocommands.
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:let results=[]
|
|
||||||
:augroup auexists
|
|
||||||
:augroup END
|
|
||||||
:call add(results, "##BufEnter: " . exists("##BufEnter"))
|
|
||||||
:call add(results, "#BufEnter: " . exists("#BufEnter"))
|
|
||||||
:au BufEnter * let g:entered=1
|
|
||||||
:call add(results, "#BufEnter: " . exists("#BufEnter"))
|
|
||||||
:call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
|
|
||||||
:augroup auexists
|
|
||||||
:au BufEnter * let g:entered=1
|
|
||||||
:augroup END
|
|
||||||
:call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))
|
|
||||||
:call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
|
|
||||||
:au BufEnter *.test let g:entered=1
|
|
||||||
:call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))
|
|
||||||
:edit testfile.test
|
|
||||||
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
|
|
||||||
:au BufEnter <buffer> let g:entered=1
|
|
||||||
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
|
|
||||||
:edit testfile2.test
|
|
||||||
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
|
|
||||||
:e test.out
|
|
||||||
:call append(0, results)
|
|
||||||
:$d
|
|
||||||
:w
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
|||||||
##BufEnter: 1
|
|
||||||
#BufEnter: 0
|
|
||||||
#BufEnter: 1
|
|
||||||
#auexists#BufEnter: 0
|
|
||||||
#auexists#BufEnter: 1
|
|
||||||
#BufEnter#*.test: 0
|
|
||||||
#BufEnter#*.test: 1
|
|
||||||
#BufEnter#<buffer>: 0
|
|
||||||
#BufEnter#<buffer>: 1
|
|
||||||
#BufEnter#<buffer>: 0
|
|
@ -1,41 +0,0 @@
|
|||||||
Tests for maparg().
|
|
||||||
Also test utf8 map with a 0x80 byte.
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:so mbyte.vim
|
|
||||||
:set cpo-=<
|
|
||||||
:set encoding=utf8
|
|
||||||
:" Test maparg() with a string result
|
|
||||||
:map foo<C-V> is<F4>foo
|
|
||||||
:vnoremap <script> <buffer> <expr> <silent> bar isbar
|
|
||||||
:call append('$', maparg('foo<C-V>'))
|
|
||||||
:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
|
|
||||||
:call append('$', string(maparg('bar', '', 0, 1)))
|
|
||||||
:map <buffer> <nowait> foo bar
|
|
||||||
:call append('$', string(maparg('foo', '', 0, 1)))
|
|
||||||
:"
|
|
||||||
:map abc x<char-114>x
|
|
||||||
:call append('$', maparg('abc'))
|
|
||||||
:map abc y<S-char-114>y
|
|
||||||
:call append('$', maparg('abc'))
|
|
||||||
:"
|
|
||||||
Go:"
|
|
||||||
:" Outside of the range, minimum
|
|
||||||
:inoremap <Char-0x1040> a
|
|
||||||
:execute "normal a\u1040\<Esc>"
|
|
||||||
:" Inside of the range, minimum
|
|
||||||
:inoremap <Char-0x103f> b
|
|
||||||
:execute "normal a\u103f\<Esc>"
|
|
||||||
:" Inside of the range, maximum
|
|
||||||
:inoremap <Char-0xf03f> c
|
|
||||||
:execute "normal a\uf03f\<Esc>"
|
|
||||||
:" Outside of the range, maximum
|
|
||||||
:inoremap <Char-0xf040> d
|
|
||||||
:execute "normal a\uf040\<Esc>"
|
|
||||||
:"
|
|
||||||
:/^eof/+1,$w! test.out
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
|
|
||||||
eof
|
|
@ -1,7 +0,0 @@
|
|||||||
is<F4>foo
|
|
||||||
{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
|
|
||||||
{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
|
|
||||||
{'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}
|
|
||||||
xrx
|
|
||||||
yRy
|
|
||||||
abcd
|
|
@ -182,6 +182,16 @@ local function execute(...)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function source(code)
|
||||||
|
local tmpname = os.tmpname()
|
||||||
|
local tmpfile = io.open(tmpname, "w")
|
||||||
|
tmpfile:write(code)
|
||||||
|
tmpfile:flush()
|
||||||
|
tmpfile:close()
|
||||||
|
nvim_command('source '..tmpname)
|
||||||
|
os.remove(tmpname)
|
||||||
|
end
|
||||||
|
|
||||||
local function eq(expected, actual)
|
local function eq(expected, actual)
|
||||||
return assert.are.same(expected, actual)
|
return assert.are.same(expected, actual)
|
||||||
end
|
end
|
||||||
@ -247,6 +257,7 @@ clear()
|
|||||||
return {
|
return {
|
||||||
clear = clear,
|
clear = clear,
|
||||||
dedent = dedent,
|
dedent = dedent,
|
||||||
|
source = source,
|
||||||
rawfeed = rawfeed,
|
rawfeed = rawfeed,
|
||||||
insert = insert,
|
insert = insert,
|
||||||
feed = feed,
|
feed = feed,
|
||||||
|
71
test/functional/legacy/005_bufleave_delete_buffer.lua
Normal file
71
test/functional/legacy/005_bufleave_delete_buffer.lua
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
-- Test for autocommand that deletes the current buffer on BufLeave event.
|
||||||
|
-- Also test deleting the last buffer, should give a new, empty buffer.
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('test5', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
insert([[
|
||||||
|
start of test file Xxx
|
||||||
|
vim: set noai :
|
||||||
|
this is a test
|
||||||
|
this is a test
|
||||||
|
this is a test
|
||||||
|
this is a test
|
||||||
|
end of test file Xxx]])
|
||||||
|
|
||||||
|
execute('w! Xxx0')
|
||||||
|
execute('au BufLeave Xxx bwipe')
|
||||||
|
execute('/start of')
|
||||||
|
|
||||||
|
-- Write test file Xxx.
|
||||||
|
execute('.,/end of/w! Xxx')
|
||||||
|
|
||||||
|
-- Split to Xxx.
|
||||||
|
execute('sp Xxx')
|
||||||
|
|
||||||
|
-- Delete buffer Xxx, now we're back here.
|
||||||
|
execute('bwipe')
|
||||||
|
feed('G?this is a<cr>')
|
||||||
|
feed('othis is some more text<esc>')
|
||||||
|
|
||||||
|
-- Append some text to this file.
|
||||||
|
|
||||||
|
-- Write current file contents.
|
||||||
|
execute('?start?,$yank A')
|
||||||
|
|
||||||
|
-- Delete alternate buffer.
|
||||||
|
execute('bwipe test.out')
|
||||||
|
execute('au bufleave test5.in bwipe')
|
||||||
|
|
||||||
|
-- Delete current buffer, get an empty one.
|
||||||
|
execute('bwipe!')
|
||||||
|
feed('ithis is another test line<esc>:yank A<cr>')
|
||||||
|
|
||||||
|
-- Output results
|
||||||
|
execute('%d')
|
||||||
|
execute('0put a')
|
||||||
|
execute('1d | $d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
start of test file Xxx
|
||||||
|
vim: set noai :
|
||||||
|
this is a test
|
||||||
|
this is a test
|
||||||
|
this is a test
|
||||||
|
this is a test
|
||||||
|
this is some more text
|
||||||
|
end of test file Xxx
|
||||||
|
this is another test line]])
|
||||||
|
end)
|
||||||
|
|
||||||
|
teardown(function()
|
||||||
|
os.remove('Xxx')
|
||||||
|
os.remove('Xxx0')
|
||||||
|
end)
|
||||||
|
end)
|
50
test/functional/legacy/025_jump_tag_hidden_spec.lua
Normal file
50
test/functional/legacy/025_jump_tag_hidden_spec.lua
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
-- Test for jumping to a tag with 'hidden' set, with symbolic link in path of tag.
|
||||||
|
-- This only works for Unix, because of the symbolic link.
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('jump to a tag with hidden set', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
insert([[
|
||||||
|
tags line:
|
||||||
|
SECTION_OFF /test25.dir/Xxx /^#define SECTION_OFF 3$/
|
||||||
|
|
||||||
|
/*tx.c*/
|
||||||
|
#define SECTION_OFF 3
|
||||||
|
#define NUM_SECTIONS 3
|
||||||
|
|
||||||
|
SECTION_OFF]])
|
||||||
|
|
||||||
|
execute('w! Xxx')
|
||||||
|
execute('set hidden')
|
||||||
|
|
||||||
|
-- Create a link from test25.dir to the current directory.
|
||||||
|
execute('!rm -f test25.dir')
|
||||||
|
execute('!ln -s . test25.dir')
|
||||||
|
|
||||||
|
-- Create tags.text, with the current directory name inserted.
|
||||||
|
execute('/tags line')
|
||||||
|
execute('r !pwd')
|
||||||
|
feed('d$/test<cr>')
|
||||||
|
feed('hP:.w! tags.test<cr>')
|
||||||
|
|
||||||
|
-- Try jumping to a tag in the current file, but with a path that contains a
|
||||||
|
-- symbolic link. When wrong, this will give the ATTENTION message. The next
|
||||||
|
-- space will then be eaten by hit-return, instead of moving the cursor to 'd'.
|
||||||
|
execute('set tags=tags.test')
|
||||||
|
feed('G<C-]> x:yank a<cr>')
|
||||||
|
execute('!rm -f Xxx test25.dir tags.test')
|
||||||
|
|
||||||
|
-- Put @a and remove empty line
|
||||||
|
execute('%d')
|
||||||
|
execute('0put a')
|
||||||
|
execute('$d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect("#efine SECTION_OFF 3")
|
||||||
|
end)
|
||||||
|
end)
|
66
test/functional/legacy/026_execute_while_if_spec.lua
Normal file
66
test/functional/legacy/026_execute_while_if_spec.lua
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
-- Test for :execute, :while and :if
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
local source = helpers.source
|
||||||
|
|
||||||
|
describe(':execute, :while and :if', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
source([[
|
||||||
|
let i = 0
|
||||||
|
while i < 12
|
||||||
|
let i = i + 1
|
||||||
|
if has("ebcdic")
|
||||||
|
execute "normal o" . i . "\047"
|
||||||
|
else
|
||||||
|
execute "normal o" . i . "\033"
|
||||||
|
endif
|
||||||
|
if i % 2
|
||||||
|
normal Ax
|
||||||
|
if i == 9
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
if i == 5
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
let j = 9
|
||||||
|
while j > 0
|
||||||
|
if has("ebcdic")
|
||||||
|
execute "normal" j . "a" . j . "\x27"
|
||||||
|
else
|
||||||
|
execute "normal" j . "a" . j . "\x1b"
|
||||||
|
endif
|
||||||
|
let j = j - 1
|
||||||
|
endwhile
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if i == 9
|
||||||
|
if has("ebcdic")
|
||||||
|
execute "normal Az\047"
|
||||||
|
else
|
||||||
|
execute "normal Az\033"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
unlet i j
|
||||||
|
]])
|
||||||
|
|
||||||
|
-- Remove empty line
|
||||||
|
execute('1d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
1x999999999888888887777777666666555554444333221
|
||||||
|
2
|
||||||
|
3x999999999888888887777777666666555554444333221
|
||||||
|
4
|
||||||
|
5x
|
||||||
|
6
|
||||||
|
7x999999999888888887777777666666555554444333221
|
||||||
|
8
|
||||||
|
9x]])
|
||||||
|
end)
|
||||||
|
end)
|
73
test/functional/legacy/033_lisp_indent_spec.lua
Normal file
73
test/functional/legacy/033_lisp_indent_spec.lua
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||||
|
-- Test for 'lisp'
|
||||||
|
-- If the lisp feature is not enabled, this will fail!
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('lisp indent', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
insert([[
|
||||||
|
(defun html-file (base)
|
||||||
|
(format nil "~(~A~).html" base))
|
||||||
|
|
||||||
|
(defmacro page (name title &rest body)
|
||||||
|
(let ((ti (gensym)))
|
||||||
|
`(with-open-file (*standard-output*
|
||||||
|
(html-file ,name)
|
||||||
|
:direction :output
|
||||||
|
:if-exists :supersede)
|
||||||
|
(let ((,ti ,title))
|
||||||
|
(as title ,ti)
|
||||||
|
(with center
|
||||||
|
(as h2 (string-upcase ,ti)))
|
||||||
|
(brs 3)
|
||||||
|
,@body))))
|
||||||
|
|
||||||
|
;;; Utilities for generating links
|
||||||
|
|
||||||
|
(defmacro with-link (dest &rest body)
|
||||||
|
`(progn
|
||||||
|
(format t "<a href=\"~A\">" (html-file ,dest))
|
||||||
|
,@body
|
||||||
|
(princ "</a>")))]])
|
||||||
|
|
||||||
|
execute('set lisp expandtab')
|
||||||
|
execute('/^(defun')
|
||||||
|
feed('=G:/^(defun/,$yank A<cr>')
|
||||||
|
|
||||||
|
-- Put @a and clean empty line
|
||||||
|
execute('%d')
|
||||||
|
execute('0put a')
|
||||||
|
execute('$d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
(defun html-file (base)
|
||||||
|
(format nil "~(~A~).html" base))
|
||||||
|
|
||||||
|
(defmacro page (name title &rest body)
|
||||||
|
(let ((ti (gensym)))
|
||||||
|
`(with-open-file (*standard-output*
|
||||||
|
(html-file ,name)
|
||||||
|
:direction :output
|
||||||
|
:if-exists :supersede)
|
||||||
|
(let ((,ti ,title))
|
||||||
|
(as title ,ti)
|
||||||
|
(with center
|
||||||
|
(as h2 (string-upcase ,ti)))
|
||||||
|
(brs 3)
|
||||||
|
,@body))))
|
||||||
|
|
||||||
|
;;; Utilities for generating links
|
||||||
|
|
||||||
|
(defmacro with-link (dest &rest body)
|
||||||
|
`(progn
|
||||||
|
(format t "<a href=\"~A\">" (html-file ,dest))
|
||||||
|
,@body
|
||||||
|
(princ "</a>")))]])
|
||||||
|
end)
|
||||||
|
end)
|
61
test/functional/legacy/043_magic_settings_spec.lua
Normal file
61
test/functional/legacy/043_magic_settings_spec.lua
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||||
|
-- Tests for regexp with various magic settings.
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('regexp with magic settings', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
insert([[
|
||||||
|
1 a aa abb abbccc
|
||||||
|
2 d dd dee deefff
|
||||||
|
3 g gg ghh ghhiii
|
||||||
|
4 j jj jkk jkklll
|
||||||
|
5 m mm mnn mnnooo
|
||||||
|
6 x ^aa$ x
|
||||||
|
7 (a)(b) abbaa
|
||||||
|
8 axx [ab]xx
|
||||||
|
9 foobar
|
||||||
|
]])
|
||||||
|
|
||||||
|
execute('set nocompatible viminfo+=nviminfo')
|
||||||
|
execute('/^1')
|
||||||
|
execute([[/a*b\{2}c\+/e]])
|
||||||
|
feed([[x/\Md\*e\{2}f\+/e<cr>]])
|
||||||
|
feed('x:set nomagic<cr>')
|
||||||
|
execute([[/g\*h\{2}i\+/e]])
|
||||||
|
feed([[x/\mj*k\{2}l\+/e<cr>]])
|
||||||
|
feed([[x/\vm*n{2}o+/e<cr>]])
|
||||||
|
feed([[x/\V^aa$<cr>]])
|
||||||
|
feed('x:set magic<cr>')
|
||||||
|
execute([[/\v(a)(b)\2\1\1/e]])
|
||||||
|
feed([[x/\V[ab]\(\[xy]\)\1<cr>]])
|
||||||
|
feed('x:$<cr>')
|
||||||
|
execute('set undolevels=100')
|
||||||
|
feed('dv?bar?<cr>')
|
||||||
|
feed('Yup:<cr>')
|
||||||
|
execute('?^1?,$yank A')
|
||||||
|
|
||||||
|
-- Put @a and clean empty line
|
||||||
|
execute('%d')
|
||||||
|
execute('0put a')
|
||||||
|
execute('$d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
1 a aa abb abbcc
|
||||||
|
2 d dd dee deeff
|
||||||
|
3 g gg ghh ghhii
|
||||||
|
4 j jj jkk jkkll
|
||||||
|
5 m mm mnn mnnoo
|
||||||
|
6 x aa$ x
|
||||||
|
7 (a)(b) abba
|
||||||
|
8 axx ab]xx
|
||||||
|
9 foobar
|
||||||
|
9 foo
|
||||||
|
]])
|
||||||
|
end)
|
||||||
|
end)
|
70
test/functional/legacy/051_highlight_spec.lua
Normal file
70
test/functional/legacy/051_highlight_spec.lua
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||||
|
-- Tests for ":highlight".
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe(':highlight', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
-- Basic test if ":highlight" doesn't crash
|
||||||
|
execute('highlight')
|
||||||
|
execute('hi Search')
|
||||||
|
|
||||||
|
-- Test setting colors.
|
||||||
|
-- Test clearing one color and all doesn't generate error or warning
|
||||||
|
execute('hi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#00ff00 guibg=Cyan')
|
||||||
|
execute('hi Group2 term= cterm=')
|
||||||
|
execute('hi Group3 term=underline cterm=bold')
|
||||||
|
execute('redir! @a')
|
||||||
|
execute('hi NewGroup')
|
||||||
|
execute('hi Group2')
|
||||||
|
execute('hi Group3')
|
||||||
|
execute('hi clear NewGroup')
|
||||||
|
execute('hi NewGroup')
|
||||||
|
execute('hi Group2')
|
||||||
|
execute('hi Group2 NONE')
|
||||||
|
execute('hi Group2')
|
||||||
|
execute('hi clear')
|
||||||
|
execute('hi Group3')
|
||||||
|
execute([[hi Crash term='asdf]])
|
||||||
|
execute('redir END')
|
||||||
|
|
||||||
|
-- Filter ctermfg and ctermbg, the numbers depend on the terminal
|
||||||
|
execute('0put a')
|
||||||
|
execute([[%s/ctermfg=\d*/ctermfg=2/]])
|
||||||
|
execute([[%s/ctermbg=\d*/ctermbg=3/]])
|
||||||
|
|
||||||
|
-- Filter out possibly translated error message
|
||||||
|
execute('%s/E475: [^:]*:/E475:/')
|
||||||
|
|
||||||
|
-- Fix the fileformat
|
||||||
|
execute('set ff&')
|
||||||
|
execute('$d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
|
||||||
|
|
||||||
|
NewGroup xxx term=bold cterm=italic ctermfg=2 ctermbg=3
|
||||||
|
|
||||||
|
Group2 xxx cleared
|
||||||
|
|
||||||
|
Group3 xxx term=underline cterm=bold
|
||||||
|
|
||||||
|
|
||||||
|
NewGroup xxx cleared
|
||||||
|
|
||||||
|
Group2 xxx cleared
|
||||||
|
|
||||||
|
|
||||||
|
Group2 xxx cleared
|
||||||
|
|
||||||
|
|
||||||
|
Group3 xxx cleared
|
||||||
|
|
||||||
|
E475: term='asdf]])
|
||||||
|
end)
|
||||||
|
end)
|
64
test/functional/legacy/066_visual_block_tab_spec.lua
Normal file
64
test/functional/legacy/066_visual_block_tab_spec.lua
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
-- vim: set foldmethod=marker foldmarker=[[,]] :
|
||||||
|
-- Test for visual block shift and tab characters.
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('visual block shift and tab characters', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
insert([[
|
||||||
|
one two three
|
||||||
|
one two three
|
||||||
|
one two three
|
||||||
|
one two three
|
||||||
|
one two three
|
||||||
|
|
||||||
|
abcdefghijklmnopqrstuvwxyz
|
||||||
|
abcdefghijklmnopqrstuvwxyz
|
||||||
|
abcdefghijklmnopqrstuvwxyz
|
||||||
|
abcdefghijklmnopqrstuvwxyz
|
||||||
|
abcdefghijklmnopqrstuvwxyz]])
|
||||||
|
|
||||||
|
feed('gg')
|
||||||
|
feed([[fe<C-v>4jR<esc>ugvr1:'<,'>yank A<cr>]])
|
||||||
|
execute('/^abcdefgh')
|
||||||
|
feed('<C-v>4jI <esc>j<<11|D')
|
||||||
|
feed('j7|a <esc>')
|
||||||
|
feed('j7|a <esc>')
|
||||||
|
feed('j7|a <esc>4k13|<C-v>4j<')
|
||||||
|
execute('$-5,$yank A')
|
||||||
|
execute([[$-4,$s/\s\+//g]])
|
||||||
|
feed('<C-v>4kI <esc>j<<')
|
||||||
|
feed('j7|a <esc>')
|
||||||
|
feed('j7|a <esc>')
|
||||||
|
feed('j7|a <esc>4k13|<C-v>4j3<')
|
||||||
|
execute('$-4,$yank A')
|
||||||
|
|
||||||
|
-- Put @a and clean empty lines
|
||||||
|
execute('%d')
|
||||||
|
execute('0put a')
|
||||||
|
execute('$d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
on1 two three
|
||||||
|
on1 two three
|
||||||
|
on1 two three
|
||||||
|
on1 two three
|
||||||
|
on1 two three
|
||||||
|
|
||||||
|
abcdefghijklmnopqrstuvwxyz
|
||||||
|
abcdefghij
|
||||||
|
abc defghijklmnopqrstuvwxyz
|
||||||
|
abc defghijklmnopqrstuvwxyz
|
||||||
|
abc defghijklmnopqrstuvwxyz
|
||||||
|
abcdefghijklmnopqrstuvwxyz
|
||||||
|
abcdefghij
|
||||||
|
abc defghijklmnopqrstuvwxyz
|
||||||
|
abc defghijklmnopqrstuvwxyz
|
||||||
|
abc defghijklmnopqrstuvwxyz]])
|
||||||
|
end)
|
||||||
|
end)
|
46
test/functional/legacy/067_augroup_exists_spec.lua
Normal file
46
test/functional/legacy/067_augroup_exists_spec.lua
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
-- Test that groups and patterns are tested correctly when calling exists() for
|
||||||
|
-- autocommands.
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('augroup when calling exists()', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
execute('let results=[]')
|
||||||
|
execute('call add(results, "##BufEnter: " . exists("##BufEnter"))')
|
||||||
|
execute('call add(results, "#BufEnter: " . exists("#BufEnter"))')
|
||||||
|
execute('au BufEnter * let g:entered=1')
|
||||||
|
execute('call add(results, "#BufEnter: " . exists("#BufEnter"))')
|
||||||
|
execute('call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))')
|
||||||
|
execute('augroup auexists', 'au BufEnter * let g:entered=1', 'augroup END')
|
||||||
|
execute('call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))')
|
||||||
|
execute('call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))')
|
||||||
|
execute('au BufEnter *.test let g:entered=1')
|
||||||
|
execute('call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))')
|
||||||
|
execute('edit testfile.test')
|
||||||
|
execute('call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))')
|
||||||
|
execute('au BufEnter <buffer> let g:entered=1')
|
||||||
|
execute('call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))')
|
||||||
|
execute('edit testfile2.test')
|
||||||
|
execute('call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))')
|
||||||
|
execute('bf')
|
||||||
|
execute('call append(0, results)')
|
||||||
|
execute('$d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
##BufEnter: 1
|
||||||
|
#BufEnter: 0
|
||||||
|
#BufEnter: 1
|
||||||
|
#auexists#BufEnter: 0
|
||||||
|
#auexists#BufEnter: 1
|
||||||
|
#BufEnter#*.test: 0
|
||||||
|
#BufEnter#*.test: 1
|
||||||
|
#BufEnter#<buffer>: 0
|
||||||
|
#BufEnter#<buffer>: 1
|
||||||
|
#BufEnter#<buffer>: 0]])
|
||||||
|
end)
|
||||||
|
end)
|
58
test/functional/legacy/075_maparg_spec.lua
Normal file
58
test/functional/legacy/075_maparg_spec.lua
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
-- Tests for maparg().
|
||||||
|
-- Also test utf8 map with a 0x80 byte.
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('maparg()', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
execute('set cpo-=<')
|
||||||
|
execute('set encoding=utf8')
|
||||||
|
|
||||||
|
-- Test maparg() with a string result
|
||||||
|
execute('map foo<C-V> is<F4>foo')
|
||||||
|
execute('vnoremap <script> <buffer> <expr> <silent> bar isbar')
|
||||||
|
execute([[call append('$', maparg('foo<C-V>'))]])
|
||||||
|
execute([[call append('$', string(maparg('foo<C-V>', '', 0, 1)))]])
|
||||||
|
execute([[call append('$', string(maparg('bar', '', 0, 1)))]])
|
||||||
|
execute('map <buffer> <nowait> foo bar')
|
||||||
|
execute([[call append('$', string(maparg('foo', '', 0, 1)))]])
|
||||||
|
execute('map abc x<char-114>x')
|
||||||
|
execute([[call append('$', maparg('abc'))]])
|
||||||
|
execute('map abc y<S-char-114>y')
|
||||||
|
execute([[call append('$', maparg('abc'))]])
|
||||||
|
feed('Go<esc>:<cr>')
|
||||||
|
|
||||||
|
-- Outside of the range, minimum
|
||||||
|
execute('inoremap <Char-0x1040> a')
|
||||||
|
execute([[execute "normal a\u1040\<Esc>"]])
|
||||||
|
|
||||||
|
-- Inside of the range, minimum
|
||||||
|
execute('inoremap <Char-0x103f> b')
|
||||||
|
execute([[execute "normal a\u103f\<Esc>"]])
|
||||||
|
|
||||||
|
-- Inside of the range, maximum
|
||||||
|
execute('inoremap <Char-0xf03f> c')
|
||||||
|
execute([[execute "normal a\uf03f\<Esc>"]])
|
||||||
|
|
||||||
|
-- Outside of the range, maximum
|
||||||
|
execute('inoremap <Char-0xf040> d')
|
||||||
|
execute([[execute "normal a\uf040\<Esc>"]])
|
||||||
|
|
||||||
|
-- Remove empty line
|
||||||
|
execute('1d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
is<F4>foo
|
||||||
|
{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
|
||||||
|
{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
|
||||||
|
{'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}
|
||||||
|
xrx
|
||||||
|
yRy
|
||||||
|
abcd]])
|
||||||
|
end)
|
||||||
|
end)
|
62
test/functional/legacy/101_hlsearch_spec.lua
Normal file
62
test/functional/legacy/101_hlsearch_spec.lua
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
-- Test for v:hlsearch
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('v:hlsearch', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
-- Last abc: Q
|
||||||
|
execute('new')
|
||||||
|
execute([[call setline(1, repeat(['aaa'], 10))]])
|
||||||
|
execute('set hlsearch nolazyredraw')
|
||||||
|
execute('let r=[]')
|
||||||
|
execute('command -nargs=0 -bar AddR :call add(r, [screenattr(1, 1), v:hlsearch])')
|
||||||
|
execute('/aaa')
|
||||||
|
execute('AddR')
|
||||||
|
execute('nohlsearch')
|
||||||
|
execute('AddR')
|
||||||
|
execute('let v:hlsearch=1')
|
||||||
|
execute('AddR')
|
||||||
|
execute('let v:hlsearch=0')
|
||||||
|
execute('AddR')
|
||||||
|
execute('set hlsearch')
|
||||||
|
execute('AddR')
|
||||||
|
execute('let v:hlsearch=0')
|
||||||
|
execute('AddR')
|
||||||
|
feed('n:AddR<cr>')
|
||||||
|
execute('let v:hlsearch=0')
|
||||||
|
execute('AddR')
|
||||||
|
execute('/')
|
||||||
|
execute('AddR')
|
||||||
|
execute('let r1=r[0][0]')
|
||||||
|
|
||||||
|
-- I guess it is not guaranteed that screenattr outputs always the same character
|
||||||
|
execute([[call map(r, 'v:val[1].":".(v:val[0]==r1?"highlighted":"not highlighted")')]])
|
||||||
|
execute('try')
|
||||||
|
execute(' let v:hlsearch=[]')
|
||||||
|
execute('catch')
|
||||||
|
execute([[ call add(r, matchstr(v:exception,'^Vim(let):E\d\+:'))]])
|
||||||
|
execute('endtry')
|
||||||
|
execute('bwipeout!')
|
||||||
|
execute('$put=r')
|
||||||
|
execute('call garbagecollect(1)')
|
||||||
|
execute('call getchar()')
|
||||||
|
execute('1d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
1:highlighted
|
||||||
|
0:not highlighted
|
||||||
|
1:highlighted
|
||||||
|
0:not highlighted
|
||||||
|
1:highlighted
|
||||||
|
0:not highlighted
|
||||||
|
1:highlighted
|
||||||
|
0:not highlighted
|
||||||
|
1:highlighted
|
||||||
|
Vim(let):E706:]])
|
||||||
|
end)
|
||||||
|
end)
|
54
test/functional/legacy/104_let_assignment.lua
Normal file
54
test/functional/legacy/104_let_assignment.lua
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
-- Tests for :let.
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, source = helpers.clear, helpers.source
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe(':let', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
execute('set runtimepath+=test/functional/fixtures')
|
||||||
|
|
||||||
|
-- Test to not autoload when assigning. It causes internal error.
|
||||||
|
source([[
|
||||||
|
try
|
||||||
|
let Test104#numvar = function('tr')
|
||||||
|
$put ='OK: ' . string(Test104#numvar)
|
||||||
|
catch
|
||||||
|
$put ='FAIL: ' . v:exception
|
||||||
|
endtry
|
||||||
|
let a = 1
|
||||||
|
let b = 2
|
||||||
|
for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0 == 1 ? "a" : "b"}']
|
||||||
|
try
|
||||||
|
redir => messages
|
||||||
|
execute 'let' letargs
|
||||||
|
redir END
|
||||||
|
$put ='OK:'
|
||||||
|
$put =split(substitute(messages, '\n', '\0 ', 'g'), '\n')
|
||||||
|
catch
|
||||||
|
$put ='FAIL: ' . v:exception
|
||||||
|
redir END
|
||||||
|
endtry
|
||||||
|
endfor]])
|
||||||
|
|
||||||
|
-- Remove empty line
|
||||||
|
execute('1d')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
OK: function('tr')
|
||||||
|
OK:
|
||||||
|
a #1
|
||||||
|
b #2
|
||||||
|
OK:
|
||||||
|
b #2
|
||||||
|
OK:
|
||||||
|
b #2
|
||||||
|
a #1
|
||||||
|
OK:
|
||||||
|
a #1
|
||||||
|
b #2]])
|
||||||
|
end)
|
||||||
|
end)
|
79
test/functional/legacy/105_filename_modifiers_spec.lua
Normal file
79
test/functional/legacy/105_filename_modifiers_spec.lua
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
-- Test filename modifiers.
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
|
||||||
|
local execute, expect = helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('filename modifiers', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
execute('cd /tmp')
|
||||||
|
execute([=[set shell=sh]=])
|
||||||
|
execute([=[set shellslash]=])
|
||||||
|
execute([=[let tab="\t"]=])
|
||||||
|
execute([=[command -nargs=1 Put :let expr=<q-args> | $put =expr.tab.strtrans(string(eval(expr)))]=])
|
||||||
|
execute([=[let $HOME=fnamemodify('.', ':p:h:h:h')]=])
|
||||||
|
execute([=[Put fnamemodify('.', ':p' )[-1:]]=])
|
||||||
|
execute([=[Put fnamemodify('.', ':p:h' )[-1:]]=])
|
||||||
|
execute([=[Put fnamemodify('test.out', ':p' )[-1:]]=])
|
||||||
|
execute([=[Put fnamemodify('test.out', ':.' )]=])
|
||||||
|
execute([=[Put fnamemodify('../testdir/a', ':.' )]=])
|
||||||
|
execute([=[Put fnamemodify('test.out', ':~' )]=])
|
||||||
|
execute([=[Put fnamemodify('../testdir/a', ':~' )]=])
|
||||||
|
execute([=[Put fnamemodify('../testdir/a', ':t' )]=])
|
||||||
|
execute([=[Put fnamemodify('.', ':p:t' )]=])
|
||||||
|
execute([=[Put fnamemodify('test.out', ':p:t' )]=])
|
||||||
|
execute([=[Put fnamemodify('test.out', ':p:e' )]=])
|
||||||
|
execute([=[Put fnamemodify('test.out', ':p:t:e' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r:r' )]=])
|
||||||
|
execute([=[Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '')]=])
|
||||||
|
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e:e')]=])
|
||||||
|
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:r' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc def', ':S' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc" "def', ':S' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc"%"def', ':S' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc'' ''def', ':S' )]=])
|
||||||
|
execute([=[Put fnamemodify('abc''%''def', ':S' )]=])
|
||||||
|
execute([=[Put fnamemodify("abc\ndef", ':S' )]=])
|
||||||
|
execute([=[set shell=tcsh]=])
|
||||||
|
execute([=[Put fnamemodify("abc\ndef", ':S' )]=])
|
||||||
|
execute([=[1 delete _]=])
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([=[
|
||||||
|
fnamemodify('.', ':p' )[-1:] '/'
|
||||||
|
fnamemodify('.', ':p:h' )[-1:] 'p'
|
||||||
|
fnamemodify('test.out', ':p' )[-1:] 't'
|
||||||
|
fnamemodify('test.out', ':.' ) 'test.out'
|
||||||
|
fnamemodify('../testdir/a', ':.' ) '../testdir/a'
|
||||||
|
fnamemodify('test.out', ':~' ) 'test.out'
|
||||||
|
fnamemodify('../testdir/a', ':~' ) '../testdir/a'
|
||||||
|
fnamemodify('../testdir/a', ':t' ) 'a'
|
||||||
|
fnamemodify('.', ':p:t' ) ''
|
||||||
|
fnamemodify('test.out', ':p:t' ) 'test.out'
|
||||||
|
fnamemodify('test.out', ':p:e' ) 'out'
|
||||||
|
fnamemodify('test.out', ':p:t:e' ) 'out'
|
||||||
|
fnamemodify('abc.fb2.tar.gz', ':r' ) 'abc.fb2.tar'
|
||||||
|
fnamemodify('abc.fb2.tar.gz', ':r:r' ) 'abc.fb2'
|
||||||
|
fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) 'abc'
|
||||||
|
substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '') '/tmp/abc.fb2'
|
||||||
|
fnamemodify('abc.fb2.tar.gz', ':e' ) 'gz'
|
||||||
|
fnamemodify('abc.fb2.tar.gz', ':e:e' ) 'tar.gz'
|
||||||
|
fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) 'fb2.tar.gz'
|
||||||
|
fnamemodify('abc.fb2.tar.gz', ':e:e:e:e') 'fb2.tar.gz'
|
||||||
|
fnamemodify('abc.fb2.tar.gz', ':e:e:r' ) 'tar'
|
||||||
|
fnamemodify('abc def', ':S' ) '''abc def'''
|
||||||
|
fnamemodify('abc" "def', ':S' ) '''abc" "def'''
|
||||||
|
fnamemodify('abc"%"def', ':S' ) '''abc"%"def'''
|
||||||
|
fnamemodify('abc'' ''def', ':S' ) '''abc''\'''' ''\''''def'''
|
||||||
|
fnamemodify('abc''%''def', ':S' ) '''abc''\''''%''\''''def'''
|
||||||
|
fnamemodify("abc\ndef", ':S' ) '''abc^@def'''
|
||||||
|
fnamemodify("abc\ndef", ':S' ) '''abc\^@def''']=])
|
||||||
|
end)
|
||||||
|
end)
|
Loading…
Reference in New Issue
Block a user