aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/state.c
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-11-19 22:05:22 +0300
committerZyX <kp-pav@yandex.ru>2017-11-19 22:05:22 +0300
commit03a129aacf7e4b77ceaccc71251ecb5bf41d2a8f (patch)
treea3a05c99fe20de98aafbdea9314aa0d76f71aee9 /src/nvim/state.c
parent6ea3a08fdbb276fe64dda60c5fb934360327ed39 (diff)
parentde8b1fd1dee5a91b2893fccc53cfd11631ccba38 (diff)
downloadrneovim-03a129aacf7e4b77ceaccc71251ecb5bf41d2a8f.tar.gz
rneovim-03a129aacf7e4b77ceaccc71251ecb5bf41d2a8f.tar.bz2
rneovim-03a129aacf7e4b77ceaccc71251ecb5bf41d2a8f.zip
Merge branch 'master' into expression-parser
Diffstat (limited to 'src/nvim/state.c')
-rw-r--r--src/nvim/state.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/nvim/state.c b/src/nvim/state.c
index 4d9032b7a5..a4b394c9e4 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 {