Only try to expand abbreviations when supported. Close #151.

This commit is contained in:
Israel Chauca Fuentes
2013-12-20 18:21:34 -05:00
parent 5db098e953
commit 0528bdac15

View File

@@ -255,13 +255,26 @@ endfunction "}}}
"}}}
" Mappers: {{{
function! s:TriggerAbb(expr) "{{{
if v:version < 703 || v:version == 703 && !has('patch489')
return ''
endif
if a:expr == 1
return '"\<C-]>".'
endif
if a:expr == 2
return "\<C-]>"
endif
return '<C-]>'
endfunction "}}}
function! s:NoAutoClose() "{{{
" inoremap <buffer> ) <C-R>=delimitMate#SkipDelim('\)')<CR>
for delim in s:g('right_delims') + s:g('quotes_list')
if delim == '|'
let delim = '<Bar>'
endif
exec 'inoremap <silent> <Plug>delimitMate' . delim . ' <C-]><C-R>=delimitMate#SkipDelim("' . escape(delim,'"') . '")<CR>'
exec 'inoremap <silent> <Plug>delimitMate' . delim . ' '.s:TriggerAbb(0).'<C-R>=delimitMate#SkipDelim("' . escape(delim,'"') . '")<CR>'
exec 'silent! imap <unique> <buffer> '.delim.' <Plug>delimitMate'.delim
endfor
endfunction "}}}
@@ -274,7 +287,7 @@ function! s:AutoClose() "{{{
let ld = s:g('left_delims')[i] == '|' ? '<bar>' : s:g('left_delims')[i]
let rd = s:g('right_delims')[i] == '|' ? '<bar>' : s:g('right_delims')[i]
exec 'inoremap <expr><silent> <Plug>delimitMate' . ld
\. ' "\<C-]>".delimitMate#ParenDelim("' . escape(rd, '|') . '")'
\. ' '.s:TriggerAbb(1).'delimitMate#ParenDelim("' . escape(rd, '|') . '")'
exec 'silent! imap <unique> <buffer> '.ld
\.' <Plug>delimitMate'.ld
let i += 1
@@ -283,7 +296,7 @@ function! s:AutoClose() "{{{
" Exit from inside the matching pair:
for delim in s:g('right_delims')
exec 'inoremap <expr><silent> <Plug>delimitMate' . delim
\. ' "\<C-]>".delimitMate#JumpOut("\' . delim . '")'
\. ' '.s:TriggerAbb(1).'delimitMate#JumpOut("\' . delim . '")'
exec 'silent! imap <unique> <buffer> ' . delim
\. ' <Plug>delimitMate'. delim
endfor
@@ -294,8 +307,10 @@ function! s:AutoClose() "{{{
if delim == '|'
let delim = '<Bar>'
endif
exec 'inoremap <silent> <Plug>delimitMate' . delim . ' <C-]><C-R>=delimitMate#QuoteDelim("\' . delim . '")<CR>'
exec 'silent! imap <unique> <buffer> ' . delim . ' <Plug>delimitMate' . delim
exec 'inoremap <silent> <Plug>delimitMate' . delim
\. ' '.s:TriggerAbb(0).'<C-R>=delimitMate#QuoteDelim("\' . delim . '")<CR>'
exec 'silent! imap <unique> <buffer> ' . delim
\. ' <Plug>delimitMate' . delim
endfor
" Try to fix the use of apostrophes (kept for backward compatibility):
@@ -323,22 +338,22 @@ function! s:ExtraMappings() "{{{
silent! imap <unique> <buffer> <S-BS> <Plug>delimitMateS-BS
endif
" Expand return if inside an empty pair:
inoremap <silent> <Plug>delimitMateCR <C-]><C-R>=delimitMate#ExpandReturn()<CR>
inoremap <expr><silent> <Plug>delimitMateCR <SID>TriggerAbb(2)."\<C-R>=delimitMate#ExpandReturn()\<CR>"
if s:g('expand_cr') && !hasmapto('<Plug>delimitMateCR', 'i') && maparg('<CR>', 'i') == ''
silent! imap <unique> <buffer> <CR> <Plug>delimitMateCR
endif
" Expand space if inside an empty pair:
inoremap <silent> <Plug>delimitMateSpace <C-]><C-R>=delimitMate#ExpandSpace()<CR>
inoremap <expr><silent> <Plug>delimitMateSpace <SID>TriggerAbb(2)."\<C-R>=delimitMate#ExpandSpace()\<CR>"
if s:g('expand_space') && !hasmapto('<Plug>delimitMateSpace', 'i') && maparg('<Space>', 'i') == ''
silent! imap <unique> <buffer> <Space> <Plug>delimitMateSpace
endif
" Jump over any delimiter:
inoremap <silent> <Plug>delimitMateS-Tab <C-]><C-R>=delimitMate#JumpAny()<CR>
inoremap <expr><silent> <Plug>delimitMateS-Tab <SID>TriggerAbb(2)."\<C-R>=delimitMate#JumpAny()\<CR>"
if s:g('tab2exit') && !hasmapto('<Plug>delimitMateS-Tab', 'i') && maparg('<S-Tab>', 'i') == ''
silent! imap <unique> <buffer> <S-Tab> <Plug>delimitMateS-Tab
endif
" Jump over next delimiters
inoremap <buffer> <Plug>delimitMateJumpMany <C-]><C-R>=delimitMate#JumpMany()<CR>
inoremap <expr><buffer> <Plug>delimitMateJumpMany <SID>TriggerAbb(2)."\<C-R>=delimitMate#JumpMany()\<CR>"
if !hasmapto('<Plug>delimitMateJumpMany', 'i') && maparg("<C-G>g", 'i') == ''
imap <silent> <buffer> <C-G>g <Plug>delimitMateJumpMany
endif