From 6f2435f77a58142e9e410f5e796f7eedb55e70ed Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 20 Mar 2020 15:46:11 +0900 Subject: Check pumvisible() Closes #41 --- plugin/sonictemplate.vim | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/plugin/sonictemplate.vim b/plugin/sonictemplate.vim index 311c3ae..b26733a 100644 --- a/plugin/sonictemplate.vim +++ b/plugin/sonictemplate.vim @@ -20,36 +20,41 @@ let g:loaded_sonictemplate_vim = 1 let s:save_cpo = &cpo set cpo&vim -exe "command!" "-nargs=1" "-complete=customlist,sonictemplate#complete" get(g:, 'sonictemplate_commandname', 'Template') "call sonictemplate#apply(, 'n')" +exe 'command!' '-nargs=1' '-complete=customlist,sonictemplate#complete' get(g:, 'sonictemplate_commandname', 'Template') 'call sonictemplate#apply(, "n")' nnoremap (sonictemplate) :call sonictemplate#select('n') inoremap (sonictemplate) =sonictemplate#select('i') - -if get(g:, 'sonictemplate_key', '') == '' - nmap t (sonictemplate) - imap t (sonictemplate) - nmap (sonictemplate) - imap (sonictemplate) -else - exe "nmap" g:sonictemplate_key "(sonictemplate)" - exe "imap" g:sonictemplate_key "(sonictemplate)" +if !hasmapto('(sonictemplate)') + if get(g:, 'sonictemplate_key', '') == '' + nmap t (sonictemplate) + imap t pumvisible()?'(sonictemplate)':'(sonictemplate)' + nmap t + imap t + else + exe 'nmap' g:sonictemplate_key '(sonictemplate)' + exe 'imap' g:sonictemplate_key '(sonictemplate)' + endif endif nnoremap (sonictemplate-intelligent) :call sonictemplate#select_intelligent('n') inoremap (sonictemplate-intelligent) =sonictemplate#select_intelligent('i') -if get(g:, 'sonictemplate_intelligent_key', '') == '' - nmap T (sonictemplate-intelligent) - imap T (sonictemplate-intelligent) -else - exe "nmap" g:sonictemplate_intelligent_key "(sonictemplate-intelligent)" - exe "imap" g:sonictemplate_intelligent_key "(sonictemplate-intelligent)" +if !hasmapto('(sonictemplate-intelligent)') + if get(g:, 'sonictemplate_intelligent_key') == '' + nmap T (sonictemplate-intelligent) + imap T pumvisible()?'(sonictemplate-intelligent)':'(sonictemplate-intelligent)' + else + exe 'nmap' g:sonictemplate_intelligent_key '(sonictemplate-intelligent)' + exe 'imap' g:sonictemplate_intelligent_key '(sonictemplate-intelligent)' + endif endif inoremap (sonictemplate-postfix) =sonictemplate#postfix() -if get(g:, 'sonictemplate_postfix_key', '') == '' - imap (sonictemplate-postfix) -else - exe "imap" g:sonictemplate_postfix_key "(sonictemplate-postfix)" +if !hasmapto('(sonictemplate-postfix)') + if get(g:, 'sonictemplate_postfix_key', '') == '' + imap pumvisible()?'(sonictemplate-postfix)':'(sonictemplate-postfix)' + else + exe 'imap' g:sonictemplate_postfix_key '(sonictemplate-postfix)' + endif endif let &cpo = s:save_cpo -- cgit v1.2.3-54-g00ecf