diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2017-08-16 13:57:58 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2017-10-26 20:28:49 +0200 |
commit | a68817f56517a31943806bd0b5a0030cdd35e182 (patch) | |
tree | 2d61152a77c18a56768fa1bf073142322e1131fe /src/nvim/eval.c | |
parent | ddfc077da468450d1fab81fe3b3f594bb6ebf6dd (diff) | |
download | rneovim-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.c | 13 |
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(); } } |