Skip to content

Commit

Permalink
Merge pull request #125 from tommcdo/master
Browse files Browse the repository at this point in the history
Add repeat.vim support to surround with function
  • Loading branch information
tpope committed Jun 5, 2014
2 parents 42e9b46 + 4e73eeb commit f85cb4e
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions plugin/surround.vim
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ endfunction
function! s:wrap(string,char,type,...)
let keeper = a:string
let newchar = a:char
let s:tag = ""
let s:input = ""
let type = a:type
let linemode = type ==# 'V' ? 1 : 0
let special = a:0 ? a:1 : 0
Expand Down Expand Up @@ -185,10 +185,10 @@ function! s:wrap(string,char,type,...)
if dounmapb
silent! cunmap >
endif
let s:tag = tag
let s:input = tag
if tag != ""
let tag = substitute(tag,'>*$','','')
let s:tag = tag . '>'
let s:input = tag . '>'
let before = '<'.tag.'>'
if tag =~ '/$'
let after = ''
Expand Down Expand Up @@ -217,6 +217,7 @@ function! s:wrap(string,char,type,...)
elseif newchar ==# 'f' || newchar ==# 'F'
let fnc = input('function: ')
if fnc != ""
let s:input = fnc."\<CR>"
let before = substitute(fnc,'($','','').'('
let after = ')'
if newchar ==# 'F'
Expand All @@ -226,6 +227,7 @@ function! s:wrap(string,char,type,...)
endif
elseif newchar ==# "\<C-F>"
let fnc = input('function: ')
let s:input = fnc."\<CR>"
let before = '('.fnc.' '
let after = ')'
elseif idx >= 0
Expand Down Expand Up @@ -454,7 +456,7 @@ function! s:dosurround(...) " {{{1
if newchar == ""
silent! call repeat#set("\<Plug>Dsurround".char,scount)
else
silent! call repeat#set("\<Plug>Csurround".char.newchar.s:tag,scount)
silent! call repeat#set("\<Plug>Csurround".char.newchar.s:input,scount)
endif
endfunction " }}}1

Expand Down Expand Up @@ -527,9 +529,9 @@ function! s:opfunc(type,...) " {{{1
let &selection = sel_save
let &clipboard = cb_save
if a:type =~ '^\d\+$'
silent! call repeat#set("\<Plug>Y".(a:0 && a:1 ? "S" : "s")."surround".char.s:tag,a:type)
silent! call repeat#set("\<Plug>Y".(a:0 && a:1 ? "S" : "s")."surround".char.s:input,a:type)
else
silent! call repeat#set("\<Plug>SurroundRepeat".char.s:tag)
silent! call repeat#set("\<Plug>SurroundRepeat".char.s:input)
endif
endfunction

Expand Down

0 comments on commit f85cb4e

Please sign in to comment.