mirror of
https://github.com/Raimondi/delimitMate.git
synced 2025-12-06 04:34:29 +08:00
Add string next to the closing matchpair when at the eol. Closes #77.
This commit is contained in:
@@ -194,8 +194,8 @@ function! delimitMate#FlushBuffer() " {{{
|
||||
return ''
|
||||
endfunction " }}}
|
||||
|
||||
function! delimitMate#AddToBuffer(c) "{{{
|
||||
call insert(b:_l_delimitMate_buffer, a:c)
|
||||
function! delimitMate#AddToBuffer(str) "{{{
|
||||
call insert(b:_l_delimitMate_buffer, a:str)
|
||||
endfunction "delimitMate#AddToBuffer }}}
|
||||
|
||||
function! delimitMate#BalancedParens(char) "{{{
|
||||
@@ -300,6 +300,7 @@ function! delimitMate#ParenDelim(char) " {{{
|
||||
endif
|
||||
let line = getline('.')
|
||||
let col = col('.')-2
|
||||
let tail = len(line) == (col + 1) ? b:_l_delimitMate_eol_marker : ''
|
||||
let left = b:_l_delimitMate_left_delims[index(b:_l_delimitMate_right_delims,a:char)]
|
||||
let smart_matchpairs = substitute(b:_l_delimitMate_smart_matchpairs, '\\!', left, 'g')
|
||||
let smart_matchpairs = substitute(smart_matchpairs, '\\#', a:char, 'g')
|
||||
@@ -312,8 +313,8 @@ function! delimitMate#ParenDelim(char) " {{{
|
||||
call delimitMate#AddToBuffer(a:char)
|
||||
else
|
||||
"echom string(col).':'.line[:(col)].'|'.line[(col+1):]
|
||||
call setline('.',line[:(col)].a:char.line[(col+1):])
|
||||
call delimitMate#AddToBuffer(a:char)
|
||||
call setline('.',line[:(col)].a:char.tail.line[(col+1):])
|
||||
call delimitMate#AddToBuffer(a:char . tail)
|
||||
endif
|
||||
return ''
|
||||
endfunction " }}}
|
||||
@@ -439,21 +440,29 @@ endfunction "}}}
|
||||
|
||||
function! delimitMate#BS() " {{{
|
||||
if delimitMate#IsForbidden("")
|
||||
return "\<BS>"
|
||||
let extra = ''
|
||||
elseif &backspace !~ 'start\|2' && empty(b:_l_delimitMate_buffer)
|
||||
let extra = ''
|
||||
elseif delimitMate#WithinEmptyPair()
|
||||
let extra = delimitMate#Del()
|
||||
elseif delimitMate#IsSpaceExpansion()
|
||||
let extra = delimitMate#Del()
|
||||
elseif delimitMate#IsCRExpansion()
|
||||
let extra = repeat("\<Del>", len(matchstr(getline(line('.') + 1), '^\s*\S')))
|
||||
else
|
||||
let extra = ''
|
||||
endif
|
||||
if &backspace !~ 'start\|2' && empty(b:_l_delimitMate_buffer)
|
||||
return "\<BS>"
|
||||
if search('\m\C\%#\%('
|
||||
\ . join(b:_l_delimitMate_right_delims, '\|')
|
||||
\ . '\)'
|
||||
\ . escape(b:_l_delimitMate_eol_marker, '\*.')
|
||||
\ . '$',
|
||||
\ 'cWn')
|
||||
for c in range(len(split(b:_l_delimitMate_eol_marker, '\zs')))
|
||||
let extra .= delimitMate#Del()
|
||||
endfor
|
||||
endif
|
||||
if delimitMate#WithinEmptyPair()
|
||||
return "\<BS>" . delimitMate#Del()
|
||||
endif
|
||||
if delimitMate#IsSpaceExpansion()
|
||||
return "\<BS>" . delimitMate#Del()
|
||||
endif
|
||||
if delimitMate#IsCRExpansion()
|
||||
return "\<BS>" . repeat("\<Del>", len(matchstr(getline(line('.') + 1), '^\s*\S')))
|
||||
endif
|
||||
return "\<BS>"
|
||||
return "\<BS>" . extra
|
||||
endfunction " }}} delimitMate#BS()
|
||||
|
||||
function! delimitMate#Del() " {{{
|
||||
|
||||
Reference in New Issue
Block a user