mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #5261 from jbradaric/vim-7.4.1961
vim-patch:7.4.1961
This commit is contained in:
commit
36ffb6a7d8
@ -502,7 +502,7 @@ static int insert_check(VimState *state)
|
|||||||
Insstart_orig = Insstart;
|
Insstart_orig = Insstart;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stop_insert_mode) {
|
if (stop_insert_mode && !pum_visible()) {
|
||||||
// ":stopinsert" used or 'insertmode' reset
|
// ":stopinsert" used or 'insertmode' reset
|
||||||
s->count = 0;
|
s->count = 0;
|
||||||
return 0; // exit insert mode
|
return 0; // exit insert mode
|
||||||
|
@ -3658,14 +3658,16 @@ set_bool_option (
|
|||||||
/* when 'insertmode' is set from an autocommand need to do work here */
|
/* when 'insertmode' is set from an autocommand need to do work here */
|
||||||
else if ((int *)varp == &p_im) {
|
else if ((int *)varp == &p_im) {
|
||||||
if (p_im) {
|
if (p_im) {
|
||||||
if ((State & INSERT) == 0)
|
if ((State & INSERT) == 0) {
|
||||||
need_start_insertmode = TRUE;
|
need_start_insertmode = true;
|
||||||
stop_insert_mode = FALSE;
|
}
|
||||||
} else {
|
stop_insert_mode = false;
|
||||||
need_start_insertmode = FALSE;
|
} else if (old_value) { // only reset if it was set previously
|
||||||
stop_insert_mode = TRUE;
|
need_start_insertmode = false;
|
||||||
if (restart_edit != 0 && mode_displayed)
|
stop_insert_mode = true;
|
||||||
clear_cmdline = TRUE; /* remove "(insert)" */
|
if (restart_edit != 0 && mode_displayed) {
|
||||||
|
clear_cmdline = true; // remove "(insert)"
|
||||||
|
}
|
||||||
restart_edit = 0;
|
restart_edit = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,3 +28,38 @@ func Test_noinsert_complete()
|
|||||||
set completeopt-=noinsert
|
set completeopt-=noinsert
|
||||||
iunmap <F5>
|
iunmap <F5>
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
let g:months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
|
||||||
|
let g:setting = ''
|
||||||
|
|
||||||
|
func ListMonths()
|
||||||
|
if g:setting != ''
|
||||||
|
exe ":set" g:setting
|
||||||
|
endif
|
||||||
|
call complete(col('.'), g:months)
|
||||||
|
return ''
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func! Test_popup_completion_insertmode()
|
||||||
|
inoremap <F5> <C-R>=ListMonths()<CR>
|
||||||
|
new
|
||||||
|
call feedkeys("a\<F5>\<down>\<enter>\<esc>", 'tx')
|
||||||
|
call assert_equal('February', getline(1))
|
||||||
|
%d
|
||||||
|
let g:setting = 'noinsertmode'
|
||||||
|
call feedkeys("a\<F5>\<down>\<enter>\<esc>", 'tx')
|
||||||
|
call assert_equal('February', getline(1))
|
||||||
|
call assert_false(pumvisible())
|
||||||
|
%d
|
||||||
|
let g:setting = ''
|
||||||
|
call feedkeys("a\<F5>". repeat("\<c-n>",12)."\<enter>\<esc>", 'tx')
|
||||||
|
call assert_equal('', getline(1))
|
||||||
|
%d
|
||||||
|
call feedkeys("a\<F5>\<c-p>\<enter>\<esc>", 'tx')
|
||||||
|
call assert_equal('', getline(1))
|
||||||
|
%d
|
||||||
|
call feedkeys("a\<F5>\<c-p>\<c-p>\<enter>\<esc>", 'tx')
|
||||||
|
call assert_equal('December', getline(1))
|
||||||
|
bwipe!
|
||||||
|
iunmap <F5>
|
||||||
|
endfunc
|
||||||
|
@ -480,7 +480,7 @@ static int included_patches[] = {
|
|||||||
// 1964,
|
// 1964,
|
||||||
// 1963 NA
|
// 1963 NA
|
||||||
// 1962,
|
// 1962,
|
||||||
// 1961,
|
1961,
|
||||||
1960,
|
1960,
|
||||||
// 1959 NA
|
// 1959 NA
|
||||||
// 1958 NA
|
// 1958 NA
|
||||||
|
Loading…
Reference in New Issue
Block a user