aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2017-08-16 13:57:58 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2017-10-26 20:28:49 +0200
commita68817f56517a31943806bd0b5a0030cdd35e182 (patch)
tree2d61152a77c18a56768fa1bf073142322e1131fe /src/nvim/eval.c
parentddfc077da468450d1fab81fe3b3f594bb6ebf6dd (diff)
downloadrneovim-a68817f56517a31943806bd0b5a0030cdd35e182.tar.gz
rneovim-a68817f56517a31943806bd0b5a0030cdd35e182.tar.bz2
rneovim-a68817f56517a31943806bd0b5a0030cdd35e182.zip
ext_cmdline: extend "function" to generic "block" mechanism
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 5f655cdc7b..50044718b6 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -19643,6 +19643,7 @@ void ex_function(exarg_T *eap)
int todo;
hashitem_T *hi;
int sourcing_lnum_off;
+ bool show_block = false;
/*
* ":function" without argument: list functions.
@@ -19816,8 +19817,9 @@ void ex_function(exarg_T *eap)
goto errret_2;
}
- if (ui_is_external(kUICmdline)) {
- ui_call_cmdline_function_show();
+ if (KeyTyped && ui_is_external(kUICmdline)) {
+ show_block = true;
+ ui_ext_cmdline_block_append(0, (const char *)eap->cmd);
}
// find extra arguments "range", "dict", "abort" and "closure"
@@ -19908,6 +19910,9 @@ void ex_function(exarg_T *eap)
EMSG(_("E126: Missing :endfunction"));
goto erret;
}
+ if (show_block) {
+ ui_ext_cmdline_block_append(indent, (const char *)theline);
+ }
/* Detect line continuation: sourcing_lnum increased more than one. */
if (sourcing_lnum > sourcing_lnum_off + 1)
@@ -20200,8 +20205,8 @@ ret_free:
xfree(name);
did_emsg |= saved_did_emsg;
need_wait_return |= saved_wait_return;
- if (ui_is_external(kUICmdline)) {
- ui_call_cmdline_function_hide();
+ if (show_block) {
+ ui_ext_cmdline_block_leave();
}
}