feat(eval/method): partially port v8.1.1993

Problem:    More functions can be used as methods.
Solution:   Make various functions usable as a method.
196b466443

server2client requires +clientserver, which hasn't been ported yet.
The eval.txt docs and test_clientserver.vim tests for server2client already exist, so include those
changes.

test_bufline.vim: Test for setbufline requires v8.1.1189 (which was reverted in #10848).
This commit is contained in:
Sean Dewar
2021-10-31 16:41:39 +00:00
parent fa9076f276
commit 4efcb72bb7
13 changed files with 106 additions and 27 deletions

View File

@@ -5854,7 +5854,7 @@ histadd({history}, {item}) *histadd()*
Can also be used as a |method|, the base is used for the
second argument: >
GetPattern()->histadd('search')
GetHistory()->histadd('search')
histdel({history} [, {item}]) *histdel()*
Clear {history}, i.e. delete all its entries. See |hist-names|
@@ -8072,6 +8072,9 @@ screenattr({row}, {col}) *screenattr()*
arbitrary number that can only be used to compare to the
attribute at other positions.
Can also be used as a |method|: >
GetRow()->screenattr(col)
screenchar({row}, {col}) *screenchar()*
The result is a Number, which is the character at position
[row, col] on the screen. This works for every possible
@@ -8082,6 +8085,9 @@ screenchar({row}, {col}) *screenchar()*
This is mainly to be used for testing.
Returns -1 when row or col is out of range.
Can also be used as a |method|: >
GetRow()->screenchar(col)
screenchars({row}, {col}) *screenchars()*
The result is a List of Numbers. The first number is the same
as what |screenchar()| returns. Further numbers are
@@ -8089,6 +8095,9 @@ screenchars({row}, {col}) *screenchars()*
This is mainly to be used for testing.
Returns an empty List when row or col is out of range.
Can also be used as a |method|: >
GetRow()->screenchars(col)
screencol() *screencol()*
The result is a Number, which is the current screen column of
the cursor. The leftmost column has number 1.
@@ -8124,6 +8133,9 @@ screenpos({winid}, {lnum}, {col}) *screenpos()*
right position and use |screencol()| to get the value with
|conceal| taken into account.
Can also be used as a |method|: >
GetWinid()->screenpos(lnum, col)
screenrow() *screenrow()*
The result is a Number, which is the current screen row of the
cursor. The top line has number one.
@@ -8140,6 +8152,9 @@ screenstring({row}, {col}) *screenstring()*
This is mainly to be used for testing.
Returns an empty String when row or col is out of range.
Can also be used as a |method|: >
GetRow()->screenstring(col)
search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
Search for regexp pattern {pattern}. The search starts at the
cursor position (you can use |cursor()| to set it).
@@ -8230,6 +8245,8 @@ search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
without the 'e' flag if the cursor is on the "f" of "if".
The 'n' flag tells the function not to move the cursor.
Can also be used as a |method|: >
GetPattern()->search()
searchcount([{options}]) *searchcount()*
Get or update the last search count, like what is displayed
@@ -8368,6 +8385,9 @@ searchdecl({name} [, {global} [, {thisblock}]]) *searchdecl()*
if searchdecl('myvar') == 0
echo getline('.')
endif
<
Can also be used as a |method|: >
GetName()->searchdecl()
<
*searchpair()*
searchpair({start}, {middle}, {end} [, {flags} [, {skip}
@@ -8483,6 +8503,9 @@ searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *searchpos()*
< In this example "submatch" is 2 when a lowercase letter is
found |/\l|, 3 when an uppercase letter is found |/\u|.
Can also be used as a |method|: >
GetPattern()->searchpos()
server2client({clientid}, {string}) *server2client()*
Send a reply string to {clientid}. The most recent {clientid}
that sent a string can be retrieved with expand("<client>").
@@ -8494,6 +8517,9 @@ server2client({clientid}, {string}) *server2client()*
See also |clientserver|.
Example: >
:echo server2client(expand("<client>"), "HELLO")
< Can also be used as a |method|: >
GetClientId()->server2client(string)
<
serverlist() *serverlist()*
Returns a list of server addresses, or empty if all servers
@@ -8559,6 +8585,9 @@ setbufline({buf}, {lnum}, {text}) *setbufline()*
If {buf} is not a valid buffer or {lnum} is not valid, an
error message is given.
Can also be used as a |method|: >
GetText()->setbufline(buf, lnum)
setbufvar({buf}, {varname}, {val}) *setbufvar()*
Set option or local variable {varname} in buffer {buf} to
{val}.
@@ -8573,6 +8602,9 @@ setbufvar({buf}, {varname}, {val}) *setbufvar()*
:call setbufvar("todo", "myvar", "foobar")
< This function is not available in the |sandbox|.
Can also be used as a |method|: >
GetValue()->setbufvar(buf, varname)
setcharsearch({dict}) *setcharsearch()*
Set the current character search information to {dict},
which contains one or more of the following entries:
@@ -8593,6 +8625,9 @@ setcharsearch({dict}) *setcharsearch()*
:call setcharsearch(prevsearch)
< Also see |getcharsearch()|.
Can also be used as a |method|: >
SavedSearch()->setcharsearch()
setcmdpos({pos}) *setcmdpos()*
Set the cursor position in the command line to byte position
{pos}. The first position is 1.
@@ -8608,6 +8643,9 @@ setcmdpos({pos}) *setcmdpos()*
Returns FALSE when successful, TRUE when not editing the
command line.
Can also be used as a |method|: >
GetPos()->setcmdpos()
setenv({name}, {val}) *setenv()*
Set environment variable {name} to {val}. Example: >
call setenv('HOME', '/home/myhome')
@@ -8615,6 +8653,9 @@ setenv({name}, {val}) *setenv()*
< When {val} is |v:null| the environment variable is deleted.
See also |expr-env|.
Can also be used as a |method|, passing the value as the base: >
GetPath()->setenv('PATH')
setfperm({fname}, {mode}) *setfperm()* *chmod*
Set the file permissions for {fname} to {mode}.
{mode} must be a string with 9 characters. It is of the form
@@ -8660,6 +8701,9 @@ setline({lnum}, {text}) *setline()*
< Note: The '[ and '] marks are not set.
Can also be used as a |method|, passing the text as the base: >
GetText()->setline(lnum)
setloclist({nr}, {list}[, {action}[, {what}]]) *setloclist()*
Create or replace or add to the location list for window {nr}.
{nr} can be the window number or the |window-ID|.