aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir
diff options
context:
space:
mode:
authorJurica Bradaric <jbradaric@gmail.com>2016-08-27 21:24:46 +0200
committerJurica Bradaric <jbradaric@gmail.com>2016-09-25 21:29:12 +0200
commite74c2334f2bf7dccee337df20817b3351dbff3ec (patch)
tree544077ff8a32c1b43590a1fd39f6144d70a4c57d /src/nvim/testdir
parent68bcb32ec43e2fab30dc05439fc77cf28793922c (diff)
downloadrneovim-e74c2334f2bf7dccee337df20817b3351dbff3ec.tar.gz
rneovim-e74c2334f2bf7dccee337df20817b3351dbff3ec.tar.bz2
rneovim-e74c2334f2bf7dccee337df20817b3351dbff3ec.zip
vim-patch:7.4.1961
Problem: When 'insertmode' is reset while doing completion the popup menu remains even though Vim is in Normal mode. Solution: Ignore stop_insert_mode when the popup menu is visible. Don't set stop_insert_mode when 'insertmode' was already off. (Christian Brabandt) https://github.com/vim/vim/commit/00672e1d3f59dbff91a18d418b2984be96f89ee5
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r--src/nvim/testdir/test_popup.vim35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_popup.vim b/src/nvim/testdir/test_popup.vim
index 78fc81e3d2..63be8bf609 100644
--- a/src/nvim/testdir/test_popup.vim
+++ b/src/nvim/testdir/test_popup.vim
@@ -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