mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.1.1984: more functions can be used as methods
Problem: More functions can be used as methods.
Solution: Make various functions usable as a method.
3f4f3d8e7e
test_prompt_buffer.vim already had all the changes, except
Test_prompt_garbage_collect().
This commit is contained in:
parent
d23d37b212
commit
c5583df3c0
@ -7246,6 +7246,9 @@ nextnonblank({lnum}) *nextnonblank()*
|
||||
{lnum} is used like with |getline()|.
|
||||
See also |prevnonblank()|.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetLnum()->nextnonblank()
|
||||
|
||||
nr2char({expr} [, {utf8}]) *nr2char()*
|
||||
Return a string with a single character, which has the number
|
||||
value {expr}. Examples: >
|
||||
@ -7260,6 +7263,9 @@ nr2char({expr} [, {utf8}]) *nr2char()*
|
||||
characters. nr2char(0) is a real NUL and terminates the
|
||||
string, thus results in an empty string.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetNumber()->nr2char()
|
||||
|
||||
nvim_...({...}) *E5555* *nvim_...()* *eval-api*
|
||||
Call nvim |api| functions. The type checking of arguments will
|
||||
be stricter than for most other builtins. For instance,
|
||||
@ -7288,6 +7294,9 @@ pathshorten({path}) *pathshorten()*
|
||||
< ~/.c/n/a/file1.vim ~
|
||||
It doesn't matter if the path exists or not.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetDirectories()->pathshorten()
|
||||
|
||||
perleval({expr}) *perleval()*
|
||||
Evaluate |perl| expression {expr} and return its result
|
||||
converted to Vim data structures.
|
||||
@ -7303,6 +7312,9 @@ perleval({expr}) *perleval()*
|
||||
:echo perleval('[1 .. 4]')
|
||||
< [1, 2, 3, 4]
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetExpr()->perleval()
|
||||
|
||||
pow({x}, {y}) *pow()*
|
||||
Return the power of {x} to the exponent {y} as a |Float|.
|
||||
{x} and {y} must evaluate to a |Float| or a |Number|.
|
||||
@ -7326,6 +7338,8 @@ prevnonblank({lnum}) *prevnonblank()*
|
||||
{lnum} is used like with |getline()|.
|
||||
Also see |nextnonblank()|.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetLnum()->prevnonblank()
|
||||
|
||||
printf({fmt}, {expr1} ...) *printf()*
|
||||
Return a String with {fmt}, where "%" items are replaced by
|
||||
@ -7558,6 +7572,9 @@ prompt_setcallback({buf}, {expr}) *prompt_setcallback()*
|
||||
endif
|
||||
endfunc
|
||||
|
||||
< Can also be used as a |method|: >
|
||||
GetBuffer()->prompt_setcallback(callback)
|
||||
|
||||
prompt_setinterrupt({buf}, {expr}) *prompt_setinterrupt()*
|
||||
Set a callback for buffer {buf} to {expr}. When {expr} is an
|
||||
empty string the callback is removed. This has only effect if
|
||||
@ -7567,12 +7584,18 @@ prompt_setinterrupt({buf}, {expr}) *prompt_setinterrupt()*
|
||||
mode. Without setting a callback Vim will exit Insert mode,
|
||||
as in any buffer.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetBuffer()->prompt_setinterrupt(callback)
|
||||
|
||||
prompt_setprompt({buf}, {text}) *prompt_setprompt()*
|
||||
Set prompt for buffer {buf} to {text}. You most likely want
|
||||
{text} to end in a space.
|
||||
The result is only visible if {buf} has 'buftype' set to
|
||||
"prompt". Example: >
|
||||
call prompt_setprompt(bufnr(''), 'command: ')
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetBuffer()->prompt_setprompt('command: ')
|
||||
|
||||
pum_getpos() *pum_getpos()*
|
||||
If the popup menu (see |ins-completion-menu|) is not visible,
|
||||
@ -7603,6 +7626,9 @@ py3eval({expr}) *py3eval()*
|
||||
Dictionaries are represented as Vim |Dictionary| type with
|
||||
keys converted to strings.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetExpr()->py3eval()
|
||||
<
|
||||
*E858* *E859*
|
||||
pyeval({expr}) *pyeval()*
|
||||
Evaluate Python expression {expr} and return its result
|
||||
@ -7613,12 +7639,18 @@ pyeval({expr}) *pyeval()*
|
||||
Dictionaries are represented as Vim |Dictionary| type,
|
||||
non-string keys result in error.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetExpr()->pyeval()
|
||||
|
||||
pyxeval({expr}) *pyxeval()*
|
||||
Evaluate Python expression {expr} and return its result
|
||||
converted to Vim data structures.
|
||||
Uses Python 2 or 3, see |python_x| and 'pyxversion'.
|
||||
See also: |pyeval()|, |py3eval()|
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetExpr()->pyxeval()
|
||||
<
|
||||
*E726* *E727*
|
||||
range({expr} [, {max} [, {stride}]]) *range()*
|
||||
Returns a |List| with Numbers:
|
||||
|
@ -254,23 +254,23 @@ return {
|
||||
mode={args={0, 1}, base=1},
|
||||
msgpackdump={args={1, 2}},
|
||||
msgpackparse={args=1},
|
||||
nextnonblank={args=1},
|
||||
nr2char={args={1, 2}},
|
||||
nextnonblank={args=1, base=1},
|
||||
nr2char={args={1, 2}, base=1},
|
||||
['or']={args=2, base=1},
|
||||
pathshorten={args=1},
|
||||
pathshorten={args=1, base=1},
|
||||
pow={args=2, base=1},
|
||||
prevnonblank={args=1},
|
||||
prevnonblank={args=1, base=1},
|
||||
printf={args=varargs(1), base=2},
|
||||
prompt_getprompt={args=1},
|
||||
prompt_setcallback={args={2, 2}},
|
||||
prompt_setinterrupt={args={2, 2}},
|
||||
prompt_setprompt={args={2, 2}},
|
||||
prompt_setcallback={args={2, 2}, base=1},
|
||||
prompt_setinterrupt={args={2, 2}, base=1},
|
||||
prompt_setprompt={args={2, 2}, base=1},
|
||||
pum_getpos={},
|
||||
pumvisible={},
|
||||
py3eval={args=1},
|
||||
pyeval={args=1},
|
||||
pyxeval={args=1},
|
||||
perleval={args=1},
|
||||
py3eval={args=1, base=1},
|
||||
pyeval={args=1, base=1},
|
||||
pyxeval={args=1, base=1},
|
||||
perleval={args=1, base=1},
|
||||
range={args={1, 3}},
|
||||
readdir={args={1, 2}},
|
||||
readfile={args={1, 3}},
|
||||
|
@ -360,10 +360,10 @@ endfunc
|
||||
func Test_pathshorten()
|
||||
call assert_equal('', pathshorten(''))
|
||||
call assert_equal('foo', pathshorten('foo'))
|
||||
call assert_equal('/foo', pathshorten('/foo'))
|
||||
call assert_equal('/foo', '/foo'->pathshorten())
|
||||
call assert_equal('f/', pathshorten('foo/'))
|
||||
call assert_equal('f/bar', pathshorten('foo/bar'))
|
||||
call assert_equal('f/b/foobar', pathshorten('foo/bar/foobar'))
|
||||
call assert_equal('f/b/foobar', 'foo/bar/foobar'->pathshorten())
|
||||
call assert_equal('/f/b/foobar', pathshorten('/foo/bar/foobar'))
|
||||
call assert_equal('.f/bar', pathshorten('.foo/bar'))
|
||||
call assert_equal('~f/bar', pathshorten('~foo/bar'))
|
||||
@ -869,21 +869,21 @@ Test
|
||||
call assert_equal(0, nextnonblank(-1))
|
||||
call assert_equal(0, nextnonblank(0))
|
||||
call assert_equal(1, nextnonblank(1))
|
||||
call assert_equal(4, nextnonblank(2))
|
||||
call assert_equal(4, 2->nextnonblank())
|
||||
call assert_equal(4, nextnonblank(3))
|
||||
call assert_equal(4, nextnonblank(4))
|
||||
call assert_equal(6, nextnonblank(5))
|
||||
call assert_equal(6, nextnonblank(6))
|
||||
call assert_equal(7, nextnonblank(7))
|
||||
call assert_equal(0, nextnonblank(8))
|
||||
call assert_equal(0, 8->nextnonblank())
|
||||
|
||||
call assert_equal(0, prevnonblank(-1))
|
||||
call assert_equal(0, prevnonblank(0))
|
||||
call assert_equal(1, prevnonblank(1))
|
||||
call assert_equal(1, 1->prevnonblank())
|
||||
call assert_equal(1, prevnonblank(2))
|
||||
call assert_equal(1, prevnonblank(3))
|
||||
call assert_equal(4, prevnonblank(4))
|
||||
call assert_equal(4, prevnonblank(5))
|
||||
call assert_equal(4, 5->prevnonblank())
|
||||
call assert_equal(6, prevnonblank(6))
|
||||
call assert_equal(7, prevnonblank(7))
|
||||
call assert_equal(0, prevnonblank(8))
|
||||
@ -1292,7 +1292,7 @@ func Test_trim()
|
||||
call assert_fails('call trim(" vim ", " ", -1)', 'E475:')
|
||||
call assert_fails('call trim(" vim ", " ", 3)', 'E475:')
|
||||
|
||||
let chars = join(map(range(1, 0x20) + [0xa0], {n -> nr2char(n)}), '')
|
||||
let chars = join(map(range(1, 0x20) + [0xa0], {n -> n->nr2char()}), '')
|
||||
call assert_equal("x", trim(chars . "x" . chars))
|
||||
endfunc
|
||||
|
||||
|
@ -32,7 +32,7 @@ endfunc
|
||||
|
||||
funct Test_VIM_Blob()
|
||||
call assert_equal('0z', perleval('VIM::Blob("")'))
|
||||
call assert_equal('0z31326162', perleval('VIM::Blob("12ab")'))
|
||||
call assert_equal('0z31326162', 'VIM::Blob("12ab")'->perleval())
|
||||
call assert_equal('0z00010203', perleval('VIM::Blob("\x00\x01\x02\x03")'))
|
||||
call assert_equal('0z8081FEFF', perleval('VIM::Blob("\x80\x81\xfe\xff")'))
|
||||
endfunc
|
||||
|
@ -110,11 +110,8 @@ func Test_prompt_garbage_collect()
|
||||
|
||||
new
|
||||
set buftype=prompt
|
||||
" Nvim doesn't support method call syntax yet.
|
||||
" eval bufnr('')->prompt_setcallback(function('MyPromptCallback', [{}]))
|
||||
" eval bufnr('')->prompt_setinterrupt(function('MyPromptInterrupt', [{}]))
|
||||
eval prompt_setcallback(bufnr(''), function('MyPromptCallback', [{}]))
|
||||
eval prompt_setinterrupt(bufnr(''), function('MyPromptInterrupt', [{}]))
|
||||
eval bufnr('')->prompt_setcallback(function('MyPromptCallback', [{}]))
|
||||
eval bufnr('')->prompt_setinterrupt(function('MyPromptInterrupt', [{}]))
|
||||
call test_garbagecollect_now()
|
||||
" Must not crash
|
||||
call feedkeys("\<CR>\<C-C>", 'xt')
|
||||
|
@ -59,7 +59,7 @@ func Test_vim_function()
|
||||
|
||||
try
|
||||
py f = vim.Function('\x80\xfdR' + vim.eval('s:foo()'))
|
||||
call assert_equal(name, pyeval('f.name'))
|
||||
call assert_equal(name, 'f.name'->pyeval())
|
||||
catch
|
||||
call assert_false(v:exception)
|
||||
endtry
|
||||
|
@ -59,7 +59,7 @@ func Test_vim_function()
|
||||
|
||||
try
|
||||
py3 f = vim.Function(b'\x80\xfdR' + vim.eval('s:foo()').encode())
|
||||
call assert_equal(name, py3eval('f.name'))
|
||||
call assert_equal(name, 'f.name'->py3eval())
|
||||
catch
|
||||
call assert_false(v:exception)
|
||||
endtry
|
||||
|
@ -35,7 +35,7 @@ endfunc
|
||||
|
||||
func Test_pyxeval()
|
||||
pyx import sys
|
||||
call assert_match(s:py2pattern, split(pyxeval('sys.version'))[0])
|
||||
call assert_match(s:py2pattern, split('sys.version'->pyxeval())[0])
|
||||
endfunc
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user