vimwiki

Personal wiki for vim
git clone https://github.com/vimwiki/vimwiki.git
Log | Files | Refs | README | LICENSE

commit e4186adc3df6c464643dd5c364a8b42e75fc844a
parent 8cc99c00c2fa03b263d137cdb841bb335a909c60
Author: Tinmarino <tinmarino@gmail.com>
Date:   Wed,  5 Aug 2020 12:05:39 -0400

Fix: iMap <Cr> Interfere in completion (alias popup-menu, pum) (Issue: #813)

Problem: When pum opened, the mapping of <CR> is triggered but user
want the default behaviour: to choose a completion item

Solution: Conditional mapping:
inoremap <expr><silent><buffer> <CR> pumvisible() ? '<CR>' : ':<Esc>:VimwikiReturn 1 5<Cr>'
                         The previous mapping  -----------------^

Diffstat:
Mdoc/vimwiki.txt | 2+-
Mftplugin/vimwiki.vim | 9+++++----
Mtest/independent_runs/map.vader | 20++++++++++++++++++++
3 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt @@ -3717,7 +3717,6 @@ http://code.google.com/p/vimwiki/issues/list. They may be accessible from https://github.com/vimwiki-backup/vimwiki/issues. New:~ - * Issue #209: Feature: Markdown: Support SetExt Heading * Issue #847 #640: Feature: Markdown anchor normalize and unormalize: better follow_link and |VimwikiTOC| @@ -3744,6 +3743,7 @@ Changed:~ Removed:~ Fixed:~ + * Issue #813: iMap <Cr> interfere with completion (pum) * Issue #709: Support inline code spans inside emphasis Refactoring code, del, eq, sup, sub as regions * Issue #847 #640: Refactor: Syntax highlighting typeface: match -> region diff --git a/ftplugin/vimwiki.vim b/ftplugin/vimwiki.vim @@ -501,17 +501,18 @@ if str2nr(vimwiki#vars#get_global('key_mappings').lists) call vimwiki#u#map_key('n', 'o', '<Plug>VimwikiListo') call vimwiki#u#map_key('n', 'O', '<Plug>VimwikiListO') - " handle case of existing VimwikiReturn mappings outside the <Plug> definition + " Handle case of existing VimwikiReturn mappings outside the <Plug> definition + " Note: Avoid interfering with popup/completion menu if it's active (#813) if maparg('<CR>', 'i') !~# '.*VimwikiReturn*.' if has('patch-7.3.489') " expand iabbrev on enter - inoremap <silent><buffer> <CR> <C-]><Esc>:VimwikiReturn 1 5<CR> + inoremap <expr><silent><buffer> <CR> pumvisible() ? '<CR>' : '<C-]><Esc>:VimwikiReturn 1 5<CR>' else - inoremap <silent><buffer> <CR> <Esc>:VimwikiReturn 1 5<CR> + inoremap <expr><silent><buffer> <CR> pumvisible() ? '<CR>' : '<Esc>:VimwikiReturn 1 5<CR>' endif endif if maparg('<S-CR>', 'i') !~# '.*VimwikiReturn*.' - inoremap <silent><buffer> <S-CR> <Esc>:VimwikiReturn 2 2<CR> + inoremap <expr><silent><buffer> <S-CR> pumvisible() ? '<CR>' : '<Esc>:VimwikiReturn 2 2<CR>' endif " change symbol for bulleted lists diff --git a/test/independent_runs/map.vader b/test/independent_runs/map.vader @@ -114,9 +114,11 @@ Do (,w,m -> open tomorrow [Assert]): Execute (===========================================================): Log "Checking local map" + # 2.1 Heading {{{2 ############## + Do (,wn -> Create new wiki [Assert]): ,wn new_file1 @@ -293,6 +295,24 @@ Expect (Dec header level): # 2.2 List {{{2 ############## + + +Given vimwiki (Completion list #813 {{{3): + complete1 + complete2 + complete3 + +Do (Insert a list item and complete): + Go + * comp\<C-n>\<Down>\<Cr> + +Expect (With a completion but no new item): + complete1 + complete2 + complete3 + * complete2 + + Given (Number list): 1. I 1. Relly