Plugin will automatically add enclosing )
(or any other) at appropriate place to be.
Currently, following cases are supported:
adding pair after call-like construction:
|something() type: test( ->
test(|something())
adding pair after string:
|"blah" type: test( ->
test(|"blah")
adding pair after argument:
something(|arg1, arg2) type: test( ->
something(test(|arg1), arg2)
something(arg1, |arg2) type: test( ->
something(arg1, test(arg2))
adding pairs in conditionals:
if |blah != nil type test( ->
if test(blah) != nil
autocorrection:
something(|arg1, arg2) type: test( ->
something(test(|arg1), arg2) move cursor after last ) and type ) ->
something(test(arg1), arg2)|
something(test(arg1, arg2))|
Plug 'vim-autosurround'
Plugin provides only python API.
Plugin provides API, which can be used to extend surround logic:
index = autosurround.register_finder(callback)
, callback
is a function
of one argument cursor
, which is vim.current.window.cursor
.
callback
should return tuple (line, column)
with position, which will be
used for inserting pair character or None
, if callback
is not able to
find position.
index
can be used for unregister_finder(index)
.
autosurround.unregister_finder(index)
will remove previously added
callback.