aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorchemzqm <chemzqm@gmail.com>2016-11-26 07:39:33 +0800
committerchemzqm <chemzqm@gmail.com>2016-11-30 22:20:06 +0800
commit3cf4b14e966ec04371d38af6451bc69eaadb425b (patch)
tree5848aad84944276debad27d09af204b0ce7c6784 /src
parentecd7beb6e4876961075cc211d2b92f987d670dfa (diff)
downloadrneovim-3cf4b14e966ec04371d38af6451bc69eaadb425b.tar.gz
rneovim-3cf4b14e966ec04371d38af6451bc69eaadb425b.tar.bz2
rneovim-3cf4b14e966ec04371d38af6451bc69eaadb425b.zip
add cmdline mode to modechange of RPC and tests
use set_cursor_shape_bar for cmdline mode fix test of screen_basic_spec.lua & screen.lua comment fix
Diffstat (limited to 'src')
-rw-r--r--src/nvim/api/ui.c2
-rw-r--r--src/nvim/tui/tui.c4
-rw-r--r--src/nvim/ui.c11
3 files changed, 13 insertions, 4 deletions
diff --git a/src/nvim/api/ui.c b/src/nvim/api/ui.c
index 56b41f1eea..9178538110 100644
--- a/src/nvim/api/ui.c
+++ b/src/nvim/api/ui.c
@@ -271,6 +271,8 @@ static void remote_ui_mode_change(UI *ui, int mode)
ADD(args, STRING_OBJ(cstr_to_string("insert")));
} else if (mode == REPLACE) {
ADD(args, STRING_OBJ(cstr_to_string("replace")));
+ } else if (mode == CMDLINE) {
+ ADD(args, STRING_OBJ(cstr_to_string("cmdline")));
} else {
assert(mode == NORMAL);
ADD(args, STRING_OBJ(cstr_to_string("normal")));
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index 5e30517c5a..2171e580ba 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -461,6 +461,10 @@ static void tui_mode_change(UI *ui, int mode)
if (data->showing_mode != INSERT) {
unibi_out(ui, data->unibi_ext.set_cursor_shape_bar);
}
+ } else if (mode == CMDLINE) {
+ if (data->showing_mode != CMDLINE) {
+ unibi_out(ui, data->unibi_ext.set_cursor_shape_bar);
+ }
} else if (mode == REPLACE) {
if (data->showing_mode != REPLACE) {
unibi_out(ui, data->unibi_ext.set_cursor_shape_ul);
diff --git a/src/nvim/ui.c b/src/nvim/ui.c
index eb500414a7..cc0d2ad1b4 100644
--- a/src/nvim/ui.c
+++ b/src/nvim/ui.c
@@ -532,13 +532,16 @@ static void ui_mode_change(void)
if (!full_screen) {
return;
}
- /* Get a simple UI mode out of State. */
- if ((State & REPLACE) == REPLACE)
+ // Get a simple UI mode out of State.
+ if ((State & REPLACE) == REPLACE) {
mode = REPLACE;
- else if (State & INSERT)
+ } else if (State & INSERT) {
mode = INSERT;
- else
+ } else if (State & CMDLINE) {
+ mode = CMDLINE;
+ } else {
mode = NORMAL;
+ }
UI_CALL(mode_change, mode);
conceal_check_cursur_line();
}