From a2ba7d313497e29411c72cff78495d1a5cc69962 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Thu, 4 Dec 2014 19:36:56 +0900 Subject: [PATCH] Updating documentation --- README.md | 61 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index d749a82..3dc479a 100644 --- a/README.md +++ b/README.md @@ -5,30 +5,38 @@ editor. It can be used for collapsing and expanding everything from function cal ### Installation and Usage ### -1. Clone or otherwise download the vim-argwrap extension from the [GitHub - page](https://github.com/FooSoft/vim-argwrap). If you are using - [vim-pathogen](https://github.com/tpope/vim-pathogen) for plugin management (if you aren't you should) you can - clone the repository directly to your bundle directory:
`git clone - https://github.com/FooSoft/vim-argwrap ~/.vim/bundle/vim-argwrap`. -1. Create a keyboard binding for `argwrap#toggle()` inside your `~/.vimrc` file. For example, you may declare a normal - mode hotkey:
`nnoremap w :call argwrap#toggle()`. -2. Position cursor *inside* of the scope of the parenthesis or brackets you wish to wrap/unwrap (not on top or before - or after them). -3. Execute the keyboard binding defined above to *toggle* wrapping and unwrapping arguments. +1. Clone or otherwise download the *vim-argwrap* extension from the [GitHub](https://github.com/FooSoft/vim-argwrap). + If you are using [pathogen](https://github.com/tpope/vim-pathogen) for plugin management (you should) you can clone + the repository directly to your bundle directory: + + `git clone https://github.com/FooSoft/vim-argwrap ~/.vim/bundle/vim-argwrap`. + +2. Create a keyboard binding for `argwrap#toggle()` inside your `~/.vimrc` file. For example, to declare a normal + mode mapping, add the following command: + + `nnoremap w :call argwrap#toggle()`. + +3. Position the cursor *inside* of the scope of the parenthesis, brackets or curly braces you wish to wrap/unwrap (not + on top or before or after them). + +4. Execute the keyboard binding you defined above to *toggle* the wrapping and unwrapping of arguments. ### Examples ### -Below are examples of some common use cases demonstrating the capabilities of vim-argwrap. The extension functions the -same way regardless if it is being used on a function call, list or dictionary definitions. +Below are some examples of common use cases demonstrating the capabilities of vim-argwrap. Note that the extension +functions identically regardless if it is being used on a function call, list or dictionary definitions. -Let's first look at a simple function invocation. When there are many arguments being passed in, we may wish to wrap -them to improve readability. If we position your cursor anywhere between the `(` and `)` parenthesis and execute the -`argwrap#toggle()` command, the function call arguments will be wrapped to one per line. +Let's begin with a simple function invocation. When there are many arguments being passed to the function, we often wish +to wrap them to improve code readability. If you position your cursor anywhere between the `(` and `)` parenthesis and +execute the `argwrap#toggle()` command, the argument list will be wrapped to one per line. ``` Foo('wibble', 'wobble', 'wubble') ``` + +Becomes this: + ``` Foo( 'wibble', @@ -43,6 +51,9 @@ List definitions work in a similar fashion: ``` foo = ['bar', 'baz', 'qux', 'quux', 'corge'] ``` + +Becomes this: + ``` foo = [ 'bar', @@ -58,6 +69,9 @@ Dictionaries work just fine too: ``` foo = {'bar': 1, 'baz': 3, 'qux': 3, 'quux': 7} ``` + +Becomes this: + ``` foo = { 'bar': 1, @@ -72,6 +86,10 @@ Finally, nested combinations of all the above are also supported: ``` Foo(['wibble', 'wobble', 'wubble'], 'spam', {'bar': 'baz', qux: [1, 3, 3, 7]}) ``` + +Becomes this: + + ``` Foo( ['wibble', 'wobble', 'wubble'], @@ -79,6 +97,13 @@ Foo( {'bar': 'baz', 'qux': [1, 3, 3, 7]} ) +``` + +You can continue expanding to: + + +``` + Foo( [ 'wibble', @@ -99,6 +124,6 @@ Foo( ``` -All of the above argument wrapping and unwrapping operations demonstrated above are toggle-able and correctly preserve -the indentation of the surrounding code. This extension has been tested to work in scenarios of various complexity, but -if you discover a problem let me know. +The argument wrapping and unwrapping operations demonstrated above are easily reversible and correctly preserve the +indentation of the surrounding code. This extension has been tested to work in scenarios of various complexity, but if +you discover a problem don't hesitate to report it.