1
Fork 0

Compare commits

...

10 Commits

Author SHA1 Message Date
Alexei Yatskov b532cb6805
Merge pull request #32 from yut23/patch-1
Match the inner brace scope when on an opening bracket
2023-09-23 16:04:48 -07:00
Eric T. Johnson 1a4a2d4c7c
Match the inner brace scope when on an opening bracket
Fixes #3.
2023-09-22 13:17:58 -04:00
Alex Yatskov feaba6b8b6 Update README 2022-07-14 14:23:00 -07:00
Alex Yatskov 0faba07179 Update README 2022-02-07 19:59:30 -08:00
Alex Yatskov 0c03483702 Update readme 2022-02-05 18:13:20 -08:00
Alex Yatskov c5de0769d8 Update README 2021-12-15 18:05:19 -08:00
Alex Yatskov 0621273b74 Add site metadata 2021-12-14 20:01:17 -08:00
Alex Yatskov f1c1d2b0c7
Merge pull request #27 from camilledejoye/fix/php-smart-brace-handle-static-methods
Fix PHP smart brace hook for static method
2021-06-10 21:03:48 -07:00
Alex Yatskov 8f963a11a3 Update README 2021-06-08 21:01:21 -07:00
Camille Dejoye 8585d3f256 remove remaining spaces at the end of the line after unwrapping 2020-11-21 10:25:27 +01:00
4 changed files with 41 additions and 50 deletions

View File

@ -1,29 +1,26 @@
# Vim-ArgWrap #
# Vim-ArgWrap
ArgWrap is an industrial strength argument wrapping and unwrapping extension for the Vim text editor. It can be used for
collapsing and expanding everything from function calls to array and dictionary definitions. All operations are easily
reversible and correctly preserve the indentation of the surrounding code.
Vim-ArgWrap is an industrial strength argument wrapping and unwrapping extension for the Vim text editor. It can be used
for collapsing and expanding everything from function calls to array and dictionary definitions. All operations are
easily reversible and correctly preserve the indentation of the surrounding code.
![](https://foosoft.net/projects/vim-argwrap/img/demo.gif)
![](img/demo.gif)
## Installation ##
## Installation and Usage
1. Clone or otherwise download ArgWrap extension. Users of [pathogen.vim](https://github.com/tpope/vim-pathogen) can
clone the repository directly to their bundle directory:
```
$ git clone https://github.com/FooSoft/vim-argwrap ~/.vim/bundle/vim-argwrap
git clone https://github.com/FooSoft/vim-argwrap ~/.vim/bundle/vim-argwrap
```
2. Create a keyboard binding for the `ArgWrap` command inside your `~/.vimrc` file.
For example, to declare a normal mode mapping, add the following command:
2. Create a keyboard binding for the `ArgWrap` command. For example, to declare a normal mode mapping, add: \
```
nnoremap <silent> <leader>a :ArgWrap<CR>
```
3. Position the cursor inside of the parenthesis, brackets or curly braces you wish to wrap/unwrap.
4. Execute the keyboard binding you defined above to toggle the wrapping and unwrapping of arguments.
## Configuration ##
## Configuration
You can customize the behavior of this extension by setting values for any of the following optional *buffer* and
*global* configuration variables in your `.vimrc` file. Buffer variables (prefixed with `b:`) take precedence over
@ -31,11 +28,11 @@ global variables (prefixed with `g:`), making them ideal for configuring the beh
file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma` variable has two variants declared as
`b:argwrap_tail_comma` and `g:argwrap_tail_comma`, for buffer and global scopes respectively.
* **argwrap\_line\_prefix**
* `argwrap_line_prefix`
Specifies a line prefix to be added and removed when working with languages that require newlines to be escaped.
*Line prefix disabled (default)*
Line prefix disabled (default):
```
Foo(
@ -45,7 +42,7 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
*Line prefix enabled for Vimscript (`let g:argwrap_line_prefix = '\'`)*
Line prefix enabled for Vimscript (`let g:argwrap_line_prefix = '\'`):
```
Foo(
@ -55,31 +52,31 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
\)
```
* **argwrap\_padded\_braces**
* `argwrap_padded_braces`
Specifies which brace types should be padded on the inside with spaces.
*Brace padding disabled (default)*
Brace padding disabled (default):
```
[1, 2, 3]
{1, 2, 3}
```
*Brace padding enabled for square brackets only (`let g:argwrap_padded_braces = '['`)*
Brace padding enabled for square brackets only (`let g:argwrap_padded_braces = '['`):
```
[ 1, 2, 3 ]
{1, 2, 3}
```
*Padding can be specified for multiple brace types (`let g:argwrap_padded_braces = '[{'`)*
Padding can be specified for multiple brace types (`let g:argwrap_padded_braces = '[{'`).
* **argwrap\_tail\_comma**
* `argwrap_tail_comma`
Specifies if any closing brace should be preceded with a comma when wrapping lines.
*Tail comma disabled (default)*
Tail comma disabled (default)::
```
Foo(
@ -89,7 +86,7 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
*Tail comma enabled (`let g:argwrap_tail_comma = 1`)*
Tail comma enabled (`let g:argwrap_tail_comma = 1`):
```
Foo(
@ -99,11 +96,11 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
* **argwrap\_tail\_comma\_braces**
* `argwrap_tail_comma_braces`
Specifies which closing brace should be preceded with a comma when wrapping lines.
*Tail comma disabled (default)*
Tail comma disabled (default):
```
Foo(
@ -113,7 +110,7 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
*Tail comma enabled for square brackets only (`let g:argwrap_tail_comma_braces = '['`)*
Tail comma enabled for square brackets only (`let g:argwrap_tail_comma_braces = '['`):
```
[
@ -123,11 +120,11 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
]
```
* **argwrap\_tail\_indent\_braces**
* `argwrap_tail_indent_braces`
Specifies if the closing brace should be indented to argument depth.
*Tail indent disabled*
Tail indent disabled:
```
Foo(
@ -137,7 +134,7 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
*Tail indent enabled for parenthesis (`let g:argwrap_tail_indent_braces = '('`)*
Tail indent enabled for parenthesis (`let g:argwrap_tail_indent_braces = '('`):
```
Foo(
@ -147,11 +144,11 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
* **argwrap\_wrap\_closing\_brace**
* `argwrap_wrap_closing_brace`
Specifies if the closing brace should be wrapped to a new line.
*Brace wrapping enabled (default)*
Brace wrapping enabled (default):
```
Foo(
@ -161,7 +158,7 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
*Brace wrapping disabled (`let g:argwrap_wrap_closing_brace = 0`)*
Brace wrapping disabled (`let g:argwrap_wrap_closing_brace = 0`):
```
Foo(
@ -170,11 +167,11 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
wubble)
```
* **argwrap\_comma\_first**
* `argwrap_comma_first`
Specifies if the argument comma delimiter should be placed before arguments.
*Comma first disabled (default)*
Comma first disabled (default):
```
Foo(
@ -184,7 +181,7 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
*Comma first enabled (`let g:argwrap_comma_first = 1`)*
Comma first enabled (`let g:argwrap_comma_first = 1`):
```
Foo(
@ -194,11 +191,11 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
* **argwrap\_comma\_first\_indent**
* `argwrap_comma_first_indent`
Specifies if the first argument should be indented when used in conjunction with `argwrap_comma_first`.
*Comma first indent disabled (default)*
Comma first indent disabled (default):
```
Foo(
@ -208,18 +205,12 @@ file basis using `ftplugin` or `autocmd`. For example, the `argwrap_tail_comma`
)
```
*Comma first indent enabled (`let g:argwrap_comma_first_indent = 1`)*
Comma first indent enabled (`let g:argwrap_comma_first_indent = 1`):
```
Foo(
wibble
wibble
, wobble
, wubble
)
```
## Usage ##
1. Position the cursor *inside* of the scope of the parenthesis, brackets or curly braces you wish to wrap/unwrap (not
on top, before or after them).
2. Execute the keyboard binding you defined above to *toggle* the wrapping and unwrapping of arguments.

View File

@ -45,7 +45,7 @@ endfunction
function! argwrap#findRange(braces)
let l:filter = 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"'
let [l:lineStart, l:colStart] = searchpairpos(a:braces[0], '', a:braces[1], 'Wnb', filter)
let [l:lineStart, l:colStart] = searchpairpos(a:braces[0], '', a:braces[1], 'Wcnb', filter)
let [l:lineEnd, l:colEnd] = searchpairpos(a:braces[0], '', a:braces[1], 'Wcn', filter)
return {'lineStart': l:lineStart, 'colStart': l:colStart, 'lineEnd': l:lineEnd, 'colEnd': l:colEnd}
endfunction

View File

@ -36,18 +36,18 @@ function! s:fixMethodOpeningBraceAfterUnwrap(range, container, arguments) abort
return
endif
execute printf("undojoin | normal! %dG$F{i\<CR>", a:range.lineStart)
execute printf("undojoin | normal! %dG$F{gelct{\<CR>", a:range.lineStart)
endfunction " }}}
function! argwrap#hooks#filetype#php#200_smart_brace#pre_wrap(range, container, arguments) abort " {{{
" Do nothing but prevent the file to be loaded more than once
" When calling an autoload function that is not define the script that
" When calling an autoload function that is not define, the script that
" should contain it is sourced every time the function is called
endfunction " }}}
function! argwrap#hooks#filetype#php#200_smart_brace#pre_unwrap(range, container, arguments) abort " {{{
" Do nothing but prevent the file to be loaded more than once
" When calling an autoload function that is not define the script that
" When calling an autoload function that is not define, the script that
" should contain it is sourced every time the function is called
endfunction " }}}

BIN
img/demo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB