diff options
author | ckelsel <ckelsel@hotmail.com> | 2017-11-19 19:15:03 +0800 |
---|---|---|
committer | ckelsel <ckelsel@hotmail.com> | 2017-11-19 19:53:47 +0800 |
commit | 540ed646358f9e3910681add39aa96a937074668 (patch) | |
tree | 576c64d25c10ed882eae85f50241e437ba0092a3 /src/nvim/state.c | |
parent | d6f9d1df04cfae3d73496b2cd99408d5344d0ad4 (diff) | |
download | rneovim-540ed646358f9e3910681add39aa96a937074668.tar.gz rneovim-540ed646358f9e3910681add39aa96a937074668.tar.bz2 rneovim-540ed646358f9e3910681add39aa96a937074668.zip |
vim-patch:8.0.0283
Problem: The return value of mode() does not indicate that completion is
active in Replace and Insert mode. (Zhen-Huan (Kenny) Hu)
Solution: Add "c" or "x" for two kinds of completion. (Yegappan Lakshmanan,
closes vim/vim#1397) Test some more modes.
https://github.com/vim/vim/commit/e90858d0229444b3cd16b1cd3a8d61a24c435705
Diffstat (limited to 'src/nvim/state.c')
-rw-r--r-- | src/nvim/state.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/nvim/state.c b/src/nvim/state.c index 4d9032b7a5..44a4de8abb 100644 --- a/src/nvim/state.c +++ b/src/nvim/state.c @@ -14,6 +14,8 @@ #include "nvim/option_defs.h" #include "nvim/ui.h" #include "nvim/os/input.h" +#include "nvim/ex_docmd.h" +#include "nvim/edit.h" #ifdef INCLUDE_GENERATED_DECLARATIONS # include "state.c.generated.h" @@ -127,19 +129,25 @@ char *get_mode(void) if (State & VREPLACE_FLAG) { buf[0] = 'R'; buf[1] = 'v'; - } else if (State & REPLACE_FLAG) { - buf[0] = 'R'; } else { - buf[0] = 'i'; + if (State & REPLACE_FLAG) { + buf[0] = 'R'; + } else { + buf[0] = 'i'; + } + if (ins_compl_active()) { + buf[1] = 'c'; + } else if (ctrl_x_mode == 1) { + buf[1] = 'x'; + } } - } else if (State & CMDLINE) { + } else if (State & CMDLINE || exmode_active) { buf[0] = 'c'; - if (exmode_active) { + if (exmode_active == EXMODE_VIM) { buf[1] = 'v'; + } else if (exmode_active == EXMODE_NORMAL) { + buf[1] = 'e'; } - } else if (exmode_active) { - buf[0] = 'c'; - buf[1] = 'e'; } else if (State & TERM_FOCUS) { buf[0] = 't'; } else { |