mirror of
https://github.com/Raimondi/delimitMate.git
synced 2025-12-06 20:54:31 +08:00
Fix flushing of char buffer.
This commit is contained in:
@@ -187,6 +187,10 @@ function! delimitMate#FlushBuffer() " {{{
|
|||||||
return ''
|
return ''
|
||||||
endfunction " }}}
|
endfunction " }}}
|
||||||
|
|
||||||
|
function! delimitMate#AddToBuffer(c) "{{{
|
||||||
|
call insert(b:_l_delimitMate_buffer, a:c)
|
||||||
|
endfunction "delimitMate#AddToBuffer }}}
|
||||||
|
|
||||||
function! delimitMate#BalancedParens(char) "{{{
|
function! delimitMate#BalancedParens(char) "{{{
|
||||||
" Returns:
|
" Returns:
|
||||||
" = 0 => Parens balanced.
|
" = 0 => Parens balanced.
|
||||||
@@ -256,7 +260,7 @@ function! delimitMate#SkipDelim(char) "{{{
|
|||||||
return a:char . delimitMate#Del()
|
return a:char . delimitMate#Del()
|
||||||
elseif delimitMate#IsEmptyPair( pre . a:char )
|
elseif delimitMate#IsEmptyPair( pre . a:char )
|
||||||
" Add closing delimiter and jump back to the middle.
|
" Add closing delimiter and jump back to the middle.
|
||||||
call insert(b:_l_delimitMate_buffer, a:char)
|
call delimitMate#AddToBuffer(a:char)
|
||||||
return delimitMate#WriteAfter(a:char)
|
return delimitMate#WriteAfter(a:char)
|
||||||
else
|
else
|
||||||
" Nothing special here, return the same character.
|
" Nothing special here, return the same character.
|
||||||
@@ -284,11 +288,11 @@ function! delimitMate#ParenDelim(char) " {{{
|
|||||||
return ''
|
return ''
|
||||||
elseif (col) < 0
|
elseif (col) < 0
|
||||||
call setline('.',a:char.line)
|
call setline('.',a:char.line)
|
||||||
call insert(b:_l_delimitMate_buffer, a:char)
|
call delimitMate#AddToBuffer(a:char)
|
||||||
else
|
else
|
||||||
"echom string(col).':'.line[:(col)].'|'.line[(col+1):]
|
"echom string(col).':'.line[:(col)].'|'.line[(col+1):]
|
||||||
call setline('.',line[:(col)].a:char.line[(col+1):])
|
call setline('.',line[:(col)].a:char.line[(col+1):])
|
||||||
call insert(b:_l_delimitMate_buffer, a:char)
|
call delimitMate#AddToBuffer(a:char)
|
||||||
endif
|
endif
|
||||||
return ''
|
return ''
|
||||||
endfunction " }}}
|
endfunction " }}}
|
||||||
@@ -313,11 +317,11 @@ function! delimitMate#QuoteDelim(char) "{{{
|
|||||||
return a:char
|
return a:char
|
||||||
elseif (delimitMate#GetCharFromCursor(-1) == a:char && delimitMate#GetCharFromCursor(0) != a:char) && b:_l_delimitMate_smart_quotes
|
elseif (delimitMate#GetCharFromCursor(-1) == a:char && delimitMate#GetCharFromCursor(0) != a:char) && b:_l_delimitMate_smart_quotes
|
||||||
" Seems like we have an unbalanced quote, insert one quotation mark and jump to the middle.
|
" Seems like we have an unbalanced quote, insert one quotation mark and jump to the middle.
|
||||||
call insert(b:_l_delimitMate_buffer, a:char)
|
call delimitMate#AddToBuffer(a:char)
|
||||||
return delimitMate#WriteAfter(a:char)
|
return delimitMate#WriteAfter(a:char)
|
||||||
else
|
else
|
||||||
" Insert a pair and jump to the middle.
|
" Insert a pair and jump to the middle.
|
||||||
call insert(b:_l_delimitMate_buffer, a:char)
|
call delimitMate#AddToBuffer(a:char)
|
||||||
call delimitMate#WriteAfter(a:char)
|
call delimitMate#WriteAfter(a:char)
|
||||||
return a:char
|
return a:char
|
||||||
endif
|
endif
|
||||||
@@ -351,7 +355,7 @@ function! delimitMate#JumpAny(key) " {{{
|
|||||||
elseif char == ""
|
elseif char == ""
|
||||||
" CR expansion.
|
" CR expansion.
|
||||||
"let char = "\<CR>" . getline(line('.') + 1)[0] . "\<Del>"
|
"let char = "\<CR>" . getline(line('.') + 1)[0] . "\<Del>"
|
||||||
let b:_l_delimitMate_buffer = []
|
call delimitMate#FlushBuffer()
|
||||||
return "\<CR>" . getline(line('.') + 1)[0] . delimitMate#Del() . "\<Del>"
|
return "\<CR>" . getline(line('.') + 1)[0] . delimitMate#Del() . "\<Del>"
|
||||||
else
|
else
|
||||||
"call delimitMate#RmBuffer(1)
|
"call delimitMate#RmBuffer(1)
|
||||||
@@ -404,7 +408,7 @@ function! delimitMate#ExpandSpace() "{{{
|
|||||||
endif
|
endif
|
||||||
if delimitMate#WithinEmptyPair()
|
if delimitMate#WithinEmptyPair()
|
||||||
" Expand:
|
" Expand:
|
||||||
call insert(b:_l_delimitMate_buffer, 's')
|
call delimitMate#AddToBuffer('s')
|
||||||
return delimitMate#WriteAfter(' ') . "\<Space>"
|
return delimitMate#WriteAfter(' ') . "\<Space>"
|
||||||
else
|
else
|
||||||
return "\<Space>"
|
return "\<Space>"
|
||||||
@@ -460,7 +464,6 @@ function! delimitMate#Finish(move_back) " {{{
|
|||||||
let i += 1
|
let i += 1
|
||||||
endwhile
|
endwhile
|
||||||
let result = substitute(buffer, "s", "\<Space>", 'g') . lefts
|
let result = substitute(buffer, "s", "\<Space>", 'g') . lefts
|
||||||
echo 'buffer: '.result
|
|
||||||
return result
|
return result
|
||||||
endif
|
endif
|
||||||
return ''
|
return ''
|
||||||
|
|||||||
@@ -260,14 +260,14 @@ function! s:DelimitMateSwitch() "{{{
|
|||||||
endfunction "}}}
|
endfunction "}}}
|
||||||
|
|
||||||
function! s:Finish() " {{{
|
function! s:Finish() " {{{
|
||||||
if exists('g:delimitMate_loaded')
|
if exists('b:delimitMate_enabled')
|
||||||
return delimitMate#Finish(1)
|
return delimitMate#Finish(1)
|
||||||
endif
|
endif
|
||||||
return ''
|
return ''
|
||||||
endfunction " }}}
|
endfunction " }}}
|
||||||
|
|
||||||
function! s:FlushBuffer() " {{{
|
function! s:FlushBuffer() " {{{
|
||||||
if exists('g:delimitMate_loaded')
|
if exists('b:delimitMate_enabled')
|
||||||
return delimitMate#FlushBuffer()
|
return delimitMate#FlushBuffer()
|
||||||
endif
|
endif
|
||||||
return ''
|
return ''
|
||||||
|
|||||||
Reference in New Issue
Block a user