diff options
author | Shougo Matsushita <Shougo.Matsu@gmail.com> | 2016-04-21 06:00:55 +0900 |
---|---|---|
committer | Shougo Matsushita <Shougo.Matsu@gmail.com> | 2016-04-22 07:19:25 +0900 |
commit | e57238a644cf24f3130caf7d557a081bbd89df4a (patch) | |
tree | 9f09cef5cbbc7f4b7cbec762bc7b99b589db35d9 /src | |
parent | cef624ee9e14bf15598219d96f65a6e4932eb935 (diff) | |
download | rneovim-e57238a644cf24f3130caf7d557a081bbd89df4a.tar.gz rneovim-e57238a644cf24f3130caf7d557a081bbd89df4a.tar.bz2 rneovim-e57238a644cf24f3130caf7d557a081bbd89df4a.zip |
vim-patch:7.4.1753
Problem: "noinsert" in 'completeopt' is sometimes ignored.
Solution: Set the variables when the 'completeopt' was set. (Ozaki Kiichi)
https://github.com/vim/vim/commit/c020042083b9c0a4e932b562c3bef97c76328e18
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/edit.c | 27 | ||||
-rw-r--r-- | src/nvim/option.c | 5 | ||||
-rw-r--r-- | src/nvim/version.c | 1 |
3 files changed, 21 insertions, 12 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 3a4b475bc8..bca8b9bff0 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -2319,6 +2319,22 @@ static int ins_compl_make_cyclic(void) return count; } + +// Set variables that store noselect and noinsert behavior from the +// 'completeopt' value. +void completeopt_was_set(void) +{ + compl_no_insert = false; + compl_no_select = false; + if (strstr((char *)p_cot, "noselect") != NULL) { + compl_no_select = true; + } + if (strstr((char *)p_cot, "noinsert") != NULL) { + compl_no_insert = true; + } +} + + /* * Start completion for the complete() function. * "startcol" is where the matched text starts (1 is first column). @@ -3097,17 +3113,6 @@ static bool ins_compl_prep(int c) } - if (strstr((char *)p_cot, "noselect") != NULL) { - compl_no_insert = FALSE; - compl_no_select = TRUE; - } else if (strstr((char *)p_cot, "noinsert") != NULL) { - compl_no_insert = TRUE; - compl_no_select = FALSE; - } else { - compl_no_insert = FALSE; - compl_no_select = FALSE; - } - if (ctrl_x_mode == CTRL_X_NOT_DEFINED_YET) { /* * We have just typed CTRL-X and aren't quite sure which CTRL-X mode diff --git a/src/nvim/option.c b/src/nvim/option.c index f9d1cdbaec..816900d2aa 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -2957,8 +2957,11 @@ did_set_string_option ( } /* 'completeopt' */ else if (varp == &p_cot) { - if (check_opt_strings(p_cot, p_cot_values, TRUE) != OK) + if (check_opt_strings(p_cot, p_cot_values, true) != OK) { errmsg = e_invarg; + } else { + completeopt_was_set(); + } } /* 'pastetoggle': translate key codes like in a mapping */ else if (varp == &p_pt) { diff --git a/src/nvim/version.c b/src/nvim/version.c index 5ead7cecbe..d6d22ef3f4 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -70,6 +70,7 @@ static char *features[] = { // clang-format off static int included_patches[] = { 1755, + 1753, 1654, 1652, 1643, |