mirror of
https://github.com/neovim/neovim.git
synced 2025-09-14 23:38:17 +00:00
ex_cmds: port :eval
Cherry-picked from patch v8.1.1807. Required for patch v8.2.2761.
This commit is contained in:
@@ -10099,6 +10099,8 @@ This function can then be called with: >
|
||||
The recursiveness of user functions is restricted with the |'maxfuncdepth'|
|
||||
option.
|
||||
|
||||
It is also possible to use `:eval`. It does not support a range.
|
||||
|
||||
|
||||
AUTOMATICALLY LOADING FUNCTIONS ~
|
||||
*autoload-functions*
|
||||
@@ -10532,6 +10534,20 @@ text...
|
||||
Unlock the internal variable {name}. Does the
|
||||
opposite of |:lockvar|.
|
||||
|
||||
*:eval*
|
||||
:eval {expr} Evaluate {expr} and discard the result. Example: >
|
||||
:eval append(Filter(Getlist()), '$')
|
||||
|
||||
< The expression is supposed to have a side effect,
|
||||
since the resulting value is not used. In the example
|
||||
the `append()` call appends the List with text to the
|
||||
buffer. This is similar to `:call` but works with any
|
||||
expression.
|
||||
|
||||
The command can be shortened to `:ev` or `:eva`, but
|
||||
these are hard to recognize and therefore not to be
|
||||
used.
|
||||
|
||||
|
||||
:if {expr1} *:if* *:end* *:endif* *:en* *E171* *E579* *E580*
|
||||
:en[dif] Execute the commands until the next matching ":else"
|
||||
|
@@ -927,6 +927,12 @@ module.cmds = {
|
||||
addr_type='ADDR_NONE',
|
||||
func='ex_edit',
|
||||
},
|
||||
{
|
||||
command='eval',
|
||||
flags=bit.bor(EXTRA, NOTRLCOM, SBOXOK, CMDWIN),
|
||||
addr_type='ADDR_NONE',
|
||||
func='ex_eval',
|
||||
},
|
||||
{
|
||||
command='ex',
|
||||
flags=bit.bor(BANG, FILE1, CMDARG, ARGOPT, TRLBAR),
|
||||
|
@@ -788,6 +788,15 @@ void report_discard_pending(int pending, void *value)
|
||||
}
|
||||
}
|
||||
|
||||
// ":eval".
|
||||
void ex_eval(exarg_T *eap)
|
||||
{
|
||||
typval_T tv;
|
||||
|
||||
if (eval0(eap->arg, &tv, &eap->nextcmd, !eap->skip) == OK) {
|
||||
tv_clear(&tv);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* ":if".
|
||||
|
Reference in New Issue
Block a user