mirror of
https://github.com/junegunn/vim-easy-align.git
synced 2025-11-10 10:53:49 -05:00
Workaround for E706
- Avoid E706 error - Fix not to skip comment/string lines when ignore_unmatched is 0
This commit is contained in:
34
EXAMPLES.md
34
EXAMPLES.md
@@ -242,7 +242,7 @@ So, let's define a custom mapping for `#`.
|
|||||||
if !exists('g:easy_align_delimiters')
|
if !exists('g:easy_align_delimiters')
|
||||||
let g:easy_align_delimiters = {}
|
let g:easy_align_delimiters = {}
|
||||||
endif
|
endif
|
||||||
let g:easy_align_delimiters['#'] = { 'pattern': '#\+', 'ignores': ['String'] } }
|
let g:easy_align_delimiters['#'] = { 'pattern': '#', 'ignores': ['String'] } }
|
||||||
```
|
```
|
||||||
|
|
||||||
Notice that the rule overrides `ignores` attribute in order *not to ignore*
|
Notice that the rule overrides `ignores` attribute in order *not to ignore*
|
||||||
@@ -252,7 +252,37 @@ Then on `<Enter>#`, we get
|
|||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
apple = 1 # comment not aligned
|
apple = 1 # comment not aligned
|
||||||
apricot = 'A#B'
|
apricot = 'DAD' + 'F#AD'
|
||||||
banana = 'string' # comment 2
|
banana = 'string' # comment 2
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you don't want to define a rule, you can do the same with the following
|
||||||
|
command:
|
||||||
|
|
||||||
|
```vim
|
||||||
|
" Using regular expression /#/
|
||||||
|
" - "is" is fuzzy-matched to "*i*gnore*s*"
|
||||||
|
:EasyAlign/#/{'is':['String']}
|
||||||
|
```
|
||||||
|
|
||||||
|
In this case, the second line is ignored as it doesn't contain `#`. (The one
|
||||||
|
highlighted as String is ignored.) If you don't want the second line to be
|
||||||
|
ignored, set `g:easy_align_ignore_unmatched` to 0, or use the following
|
||||||
|
commands:
|
||||||
|
|
||||||
|
```vim
|
||||||
|
" Using predefined rule with delimiter key #
|
||||||
|
:EasyAlign#{'iu':0}`
|
||||||
|
|
||||||
|
" Using regular expression /#/
|
||||||
|
:EasyAlign/#/{'is':['String'],'iu':0}`
|
||||||
|
```
|
||||||
|
|
||||||
|
Then we get,
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
apple = 1 # comment not aligned
|
||||||
|
apricot = 'DAD' + 'F#AD'
|
||||||
|
banana = 'string' # comment 2
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -116,21 +116,25 @@ endfunction
|
|||||||
|
|
||||||
function! s:normalize_options(opts)
|
function! s:normalize_options(opts)
|
||||||
let ret = {}
|
let ret = {}
|
||||||
for [k, v] in items(a:opts)
|
for k in keys(a:opts)
|
||||||
|
let v = a:opts[k]
|
||||||
let k = s:fuzzy_lu(k)
|
let k = s:fuzzy_lu(k)
|
||||||
" Backward-compatibility
|
" Backward-compatibility
|
||||||
if k == 'margin_left' | let k = 'left_margin' | endif
|
if k == 'margin_left' | let k = 'left_margin' | endif
|
||||||
if k == 'margin_right' | let k = 'right_margin' | endif
|
if k == 'margin_right' | let k = 'right_margin' | endif
|
||||||
let ret[k] = v
|
let ret[k] = v
|
||||||
|
unlet v
|
||||||
endfor
|
endfor
|
||||||
return s:validate_options(ret)
|
return s:validate_options(ret)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:validate_options(opts)
|
function! s:validate_options(opts)
|
||||||
for [k, v] in items(a:opts)
|
for k in keys(a:opts)
|
||||||
|
let v = a:opts[k]
|
||||||
if index(s:known_options[k], type(v)) == -1
|
if index(s:known_options[k], type(v)) == -1
|
||||||
call s:exit("Invalid type for option: ". k)
|
call s:exit("Invalid type for option: ". k)
|
||||||
endif
|
endif
|
||||||
|
unlet v
|
||||||
endfor
|
endfor
|
||||||
return a:opts
|
return a:opts
|
||||||
endfunction
|
endfunction
|
||||||
@@ -175,7 +179,7 @@ function! s:do_align(just, all_tokens, fl, ll, fc, lc, pattern, nth, ml, mr, sti
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" Skip comment line
|
" Skip comment line
|
||||||
if concat && len(tokens) == 1
|
if concat && len(tokens) == 1 && a:ignore_unmatched
|
||||||
let tokens = []
|
let tokens = []
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -85,3 +85,9 @@ data;;exchange: ;format
|
|||||||
apple;: banana::cake
|
apple;: banana::cake
|
||||||
data;;exchange: ;format
|
data;;exchange: ;format
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
apple = 1 # comment not aligned
|
||||||
|
apricot = 'DAD' + 'F#AD'
|
||||||
|
banana = 'Gros Michel' # comment 2
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -4,3 +4,9 @@
|
|||||||
apple;:banana::cake
|
apple;:banana::cake
|
||||||
data;;exchange:;format
|
data;;exchange:;format
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
apple = 1 # comment not aligned
|
||||||
|
apricot = 'DAD' + 'F#AD'
|
||||||
|
banana = 'Gros Michel' # comment 2
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
4Gvipjyvip:EasyAlign:
|
4Gvipjyvip:EasyAlign:
|
||||||
|
|||||||
Reference in New Issue
Block a user