A first step to make the plugin extendable.
This allow to add logic on a per filetype basis.
This solution allow a user to extend the behavior if the plugin does not
provide a hook for the given filetype.
But if there is already a hook then the user can not create it's own.
One solution could be to find every functions defined in the namespace
`argwrap#hooks#user#<ANYTHING>#post_wrap`, I think airline provide a
feature like this.
Those hooks would need to be sorted in order to have a predictible
behavior, also it might be interesting to provide a way for each hook to
update the range, container and arguments.
There might be nothing to do because I think Vim's lists and dictionaries
are passed by reference.
For example in VimL with the following declaration:
autocmd FileType vim let b:argwrap_line_prefix = '\ '
The following line will be properly wrapped:
let t = {'one': 'whatever', 'two': 'whatever'}
Into:
let t = {
\ 'one': 'whatever',
\ 'two': 'whatever',
\ }
But when trying to unwrap it will do:
let t = {'one': 'whatever', 'two': 'whatever', \}
This is caused by the "trim" done for each "extracted" piece of text,
which result in having '\' instead of '\ ' for the last line.