mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 13:15:09 -07: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;
|
||||
}
|
||||
|
||||
if (stop_insert_mode) {
|
||||
if (stop_insert_mode && !pum_visible()) {
|
||||
// ":stopinsert" used or 'insertmode' reset
|
||||
s->count = 0;
|
||||
return 0; // exit insert mode
|
||||
|
@ -3658,14 +3658,16 @@ set_bool_option (
|
||||
/* when 'insertmode' is set from an autocommand need to do work here */
|
||||
else if ((int *)varp == &p_im) {
|
||||
if (p_im) {
|
||||
if ((State & INSERT) == 0)
|
||||
need_start_insertmode = TRUE;
|
||||
stop_insert_mode = FALSE;
|
||||
} else {
|
||||
need_start_insertmode = FALSE;
|
||||
stop_insert_mode = TRUE;
|
||||
if (restart_edit != 0 && mode_displayed)
|
||||
clear_cmdline = TRUE; /* remove "(insert)" */
|
||||
if ((State & INSERT) == 0) {
|
||||
need_start_insertmode = true;
|
||||
}
|
||||
stop_insert_mode = false;
|
||||
} else if (old_value) { // only reset if it was set previously
|
||||
need_start_insertmode = false;
|
||||
stop_insert_mode = true;
|
||||
if (restart_edit != 0 && mode_displayed) {
|
||||
clear_cmdline = true; // remove "(insert)"
|
||||
}
|
||||
restart_edit = 0;
|
||||
}
|
||||
}
|
||||
|
@ -28,3 +28,38 @@ func Test_noinsert_complete()
|
||||
set completeopt-=noinsert
|
||||
iunmap <F5>
|
||||
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,
|
||||
// 1963 NA
|
||||
// 1962,
|
||||
// 1961,
|
||||
1961,
|
||||
1960,
|
||||
// 1959 NA
|
||||
// 1958 NA
|
||||
|
Loading…
Reference in New Issue
Block a user