mirror of
https://github.com/junegunn/vim-easy-align.git
synced 2025-11-10 10:53:49 -05:00
More test cases on Vader
This commit is contained in:
@@ -1,11 +1,108 @@
|
||||
Execute:
|
||||
silent! unlet g:easy_align_delimiters
|
||||
Execute (Clean up test environment):
|
||||
" TODO: revert after test
|
||||
silent! unlet g:easy_align_ignore_groups
|
||||
silent! unlet g:easy_align_ignore_unmatched
|
||||
silent! unlet g:easy_align_indentation
|
||||
silent! unlet g:easy_align_delimiter_align
|
||||
silent! unlet g:easy_align_interactive_modes
|
||||
|
||||
let g:easy_align_delimiters = {}
|
||||
vnoremap <silent> <Enter> :EasyAlign<Enter>
|
||||
|
||||
###########################################################
|
||||
|
||||
Given (space-separated columns):
|
||||
1 22222 33 444 555 6666 7 888
|
||||
11 222 3333 4 55 6666 77 888
|
||||
111 22 333 444 55555 6666 7 88888
|
||||
1111 2 33 444 555 66 777 8
|
||||
|
||||
Do (left-align):
|
||||
vip
|
||||
\<Enter>
|
||||
*\<Space>
|
||||
|
||||
Expect:
|
||||
1 22222 33 444 555 6666 7 888
|
||||
11 222 3333 4 55 6666 77 888
|
||||
111 22 333 444 55555 6666 7 88888
|
||||
1111 2 33 444 555 66 777 8
|
||||
|
||||
Do (right-align):
|
||||
vip
|
||||
\<Enter>\<Enter>
|
||||
*\<Space>
|
||||
|
||||
Expect:
|
||||
1 22222 33 444 555 6666 7 888
|
||||
11 222 3333 4 55 6666 77 888
|
||||
111 22 333 444 55555 6666 7 88888
|
||||
1111 2 33 444 555 66 777 8
|
||||
|
||||
Do (center-align):
|
||||
vip
|
||||
\<Enter>\<Enter>\<Enter>
|
||||
*\<Space>
|
||||
|
||||
Expect:
|
||||
1 22222 33 444 555 6666 7 888
|
||||
11 222 3333 4 55 6666 77 888
|
||||
111 22 333 444 55555 6666 7 88888
|
||||
1111 2 33 444 555 66 777 8
|
||||
|
||||
Given (comma-separated columns):
|
||||
a,,bbb
|
||||
aa,,bb
|
||||
aaa,,b
|
||||
aaaa,,
|
||||
aaa,b,
|
||||
aa,bb,
|
||||
a,bbb,
|
||||
|
||||
Do (left-align):
|
||||
vip
|
||||
\<Enter>
|
||||
*,
|
||||
|
||||
Expect:
|
||||
a, , bbb
|
||||
aa, , bb
|
||||
aaa, , b
|
||||
aaaa, ,
|
||||
aaa, b,
|
||||
aa, bb,
|
||||
a, bbb,
|
||||
|
||||
Do (right-align):
|
||||
vip
|
||||
\<Enter>\<Enter>
|
||||
*,
|
||||
|
||||
Expect:
|
||||
a, , bbb
|
||||
aa, , bb
|
||||
aaa, , b
|
||||
aaaa, ,
|
||||
aaa, b,
|
||||
aa, bb,
|
||||
a, bbb,
|
||||
|
||||
Do (center-align):
|
||||
vip
|
||||
\<Enter>\<Enter>\<Enter>
|
||||
*,
|
||||
|
||||
Expect:
|
||||
a, , bbb
|
||||
aa, , bb
|
||||
aaa, , b
|
||||
aaaa, ,
|
||||
aaa, b,
|
||||
aa, bb,
|
||||
a, bbb,
|
||||
|
||||
###########################################################
|
||||
|
||||
Given (the beatles):
|
||||
Paul McCartney 1942
|
||||
George Harrison 1943mmdd
|
||||
@@ -427,3 +524,565 @@ Expect ruby:
|
||||
|
||||
###########################################################
|
||||
|
||||
Given c (C code with comments 1):
|
||||
/* a */ b = c
|
||||
aa >= bb
|
||||
// aaa = bbb = cccc
|
||||
/* aaaa = */ bbbb === cccc " = dddd = " = eeee
|
||||
aaaaa /* bbbbb */ == ccccc /* != eeeee = */ === fffff
|
||||
|
||||
Do:
|
||||
vip\<Enter>*=
|
||||
|
||||
Expect c:
|
||||
/* a */ b = c
|
||||
aa >= bb
|
||||
// aaa = bbb = cccc
|
||||
/* aaaa = */ bbbb === cccc " = dddd = " = eeee
|
||||
aaaaa /* bbbbb */ == ccccc /* != eeeee = */ === fffff
|
||||
|
||||
Do:
|
||||
vip\<Enter>\<C-G>\<C-U>*=
|
||||
|
||||
Expect c:
|
||||
/* a */ b = c
|
||||
aa >= bb
|
||||
// aaa = bbb = cccc
|
||||
/* aaaa = */ bbbb === cccc " = dddd = " = eeee
|
||||
aaaaa /* bbbbb */ == ccccc /* != eeeee = */ === fffff
|
||||
|
||||
###########################################################
|
||||
|
||||
Given c (C code with comments 2):
|
||||
int a = 1;
|
||||
long b = 2;
|
||||
float c = 3;
|
||||
string d = 4;
|
||||
// this line should not get aligned
|
||||
long int e = 5;
|
||||
std::map f;
|
||||
std::map g; /* this? */
|
||||
short h /* how about this? */ = 6;
|
||||
string i = "asdf";
|
||||
|
||||
Do (around =):
|
||||
vip\<Enter>=
|
||||
|
||||
Expect c:
|
||||
int a = 1;
|
||||
long b = 2;
|
||||
float c = 3;
|
||||
string d = 4;
|
||||
// this line should not get aligned
|
||||
long int e = 5;
|
||||
std::map f;
|
||||
std::map g; /* this? */
|
||||
short h /* how about this? */ = 6;
|
||||
string i = "asdf";
|
||||
|
||||
Do (right-align around =, comment lines are ignored):
|
||||
vip\<Enter>\<Enter>=
|
||||
|
||||
Expect c:
|
||||
int a = 1;
|
||||
long b = 2;
|
||||
float c = 3;
|
||||
string d = 4;
|
||||
// this line should not get aligned
|
||||
long int e = 5;
|
||||
std::map f;
|
||||
std::map g; /* this? */
|
||||
short h /* how about this? */ = 6;
|
||||
string i = "asdf";
|
||||
|
||||
Do (right-align around =, do not ignore comment lines):
|
||||
vip\<Enter>\<Enter>\<C-U>=
|
||||
|
||||
Expect c:
|
||||
int a = 1;
|
||||
long b = 2;
|
||||
float c = 3;
|
||||
string d = 4;
|
||||
// this line should not get aligned
|
||||
long int e = 5;
|
||||
std::map f;
|
||||
std::map g; /* this? */
|
||||
short h /* how about this? */ = 6;
|
||||
string i = "asdf";
|
||||
|
||||
###########################################################
|
||||
|
||||
Given ruby (= operators):
|
||||
a =
|
||||
a = 1
|
||||
bbbb .= 2
|
||||
ccccccc = 3
|
||||
ccccccccccccccc
|
||||
ddd = #
|
||||
eeee === eee = eee = eee=f
|
||||
fff = ggg += gg &&= gg
|
||||
g != hhhhhhhh == # 8
|
||||
i := 5
|
||||
i %= 5
|
||||
i *= 5
|
||||
j =~ 5
|
||||
j >= 5
|
||||
aa => 123
|
||||
aa <<= 123
|
||||
aa >>= 123
|
||||
bbb => 123
|
||||
c => 1233123
|
||||
d => 123
|
||||
dddddd &&= 123
|
||||
dddddd ||= 123
|
||||
dddddd /= 123
|
||||
gg <=> ee
|
||||
|
||||
Do (1st =):
|
||||
vip\<Enter>=
|
||||
|
||||
Expect ruby:
|
||||
a =
|
||||
a = 1
|
||||
bbbb .= 2
|
||||
ccccccc = 3
|
||||
ccccccccccccccc
|
||||
ddd = #
|
||||
eeee === eee = eee = eee=f
|
||||
fff = ggg += gg &&= gg
|
||||
g != hhhhhhhh == # 8
|
||||
i := 5
|
||||
i %= 5
|
||||
i *= 5
|
||||
j =~ 5
|
||||
j >= 5
|
||||
aa => 123
|
||||
aa <<= 123
|
||||
aa >>= 123
|
||||
bbb => 123
|
||||
c => 1233123
|
||||
d => 123
|
||||
dddddd &&= 123
|
||||
dddddd ||= 123
|
||||
dddddd /= 123
|
||||
gg <=> ee
|
||||
|
||||
Do (LR =):
|
||||
vip\<Enter>**=
|
||||
|
||||
Expect ruby:
|
||||
a =
|
||||
a = 1
|
||||
bbbb .= 2
|
||||
ccccccc = 3
|
||||
ccccccccccccccc
|
||||
ddd = #
|
||||
eeee === eee = eee = eee = f
|
||||
fff = ggg += gg &&= gg
|
||||
g != hhhhhhhh == # 8
|
||||
i := 5
|
||||
i %= 5
|
||||
i *= 5
|
||||
j =~ 5
|
||||
j >= 5
|
||||
aa => 123
|
||||
aa <<= 123
|
||||
aa >>= 123
|
||||
bbb => 123
|
||||
c => 1233123
|
||||
d => 123
|
||||
dddddd &&= 123
|
||||
dddddd ||= 123
|
||||
dddddd /= 123
|
||||
gg <=> ee
|
||||
|
||||
Do (Alignment using mode_sequence, delimiter_align):
|
||||
vip\<Enter>\<C-O>\<Backspace>cr*\<Enter>\<C-D>=
|
||||
|
||||
Expect ruby:
|
||||
a =
|
||||
a = 1
|
||||
bbbb .= 2
|
||||
ccccccc = 3
|
||||
ccccccccccccccc
|
||||
ddd = #
|
||||
eeee === eee = eee = eee = f
|
||||
fff = ggg += gg &&= gg
|
||||
g != hhhhhhhh == # 8
|
||||
i := 5
|
||||
i %= 5
|
||||
i *= 5
|
||||
j =~ 5
|
||||
j >= 5
|
||||
aa => 123
|
||||
aa <<= 123
|
||||
aa >>= 123
|
||||
bbb => 123
|
||||
c => 1233123
|
||||
d => 123
|
||||
dddddd &&= 123
|
||||
dddddd ||= 123
|
||||
dddddd /= 123
|
||||
gg <=> ee
|
||||
|
||||
Do (mode_sequence starting from 2nd, delimiter_align = center):
|
||||
vip\<Enter>\<C-O>\<Backspace>rc**\<Enter>\<C-D>\<C-D>2=
|
||||
|
||||
Expect ruby:
|
||||
a =
|
||||
a = 1
|
||||
bbbb .= 2
|
||||
ccccccc = 3
|
||||
ccccccccccccccc
|
||||
ddd = #
|
||||
eeee === eee = eee = eee = f
|
||||
fff = ggg += gg &&= gg
|
||||
g != hhhhhhhh == # 8
|
||||
i := 5
|
||||
i %= 5
|
||||
i *= 5
|
||||
j =~ 5
|
||||
j >= 5
|
||||
aa => 123
|
||||
aa <<= 123
|
||||
aa >>= 123
|
||||
bbb => 123
|
||||
c => 1233123
|
||||
d => 123
|
||||
dddddd &&= 123
|
||||
dddddd ||= 123
|
||||
dddddd /= 123
|
||||
gg <=> ee
|
||||
|
||||
Do (around all =s, do not ignore unmatched):
|
||||
vip\<Enter>\<C-U>
|
||||
\<C-L>0\<Enter>
|
||||
\<C-R>0\<Enter>
|
||||
\<C-D>\<C-D>
|
||||
*=
|
||||
|
||||
Expect ruby:
|
||||
a =
|
||||
a = 1
|
||||
bbbb .= 2
|
||||
ccccccc = 3
|
||||
ccccccccccccccc
|
||||
ddd = #
|
||||
eeee ===eee = eee = eee=f
|
||||
fff = ggg +=gg &&=gg
|
||||
g != hhhhhhhh==# 8
|
||||
i := 5
|
||||
i %= 5
|
||||
i *= 5
|
||||
j =~ 5
|
||||
j >= 5
|
||||
aa => 123
|
||||
aa <<=123
|
||||
aa >>=123
|
||||
bbb => 123
|
||||
c => 1233123
|
||||
d => 123
|
||||
dddddd &&=123
|
||||
dddddd ||=123
|
||||
dddddd /= 123
|
||||
gg <=>ee
|
||||
|
||||
Do (1st =):
|
||||
vip\<Enter>\<Enter>\<Enter>2=
|
||||
|
||||
Expect ruby:
|
||||
a =
|
||||
a = 1
|
||||
bbbb .= 2
|
||||
ccccccc = 3
|
||||
ccccccccccccccc
|
||||
ddd = #
|
||||
eeee === eee = eee = eee=f
|
||||
fff = ggg += gg &&= gg
|
||||
g != hhhhhhhh == # 8
|
||||
i := 5
|
||||
i %= 5
|
||||
i *= 5
|
||||
j =~ 5
|
||||
j >= 5
|
||||
aa => 123
|
||||
aa <<= 123
|
||||
aa >>= 123
|
||||
bbb => 123
|
||||
c => 1233123
|
||||
d => 123
|
||||
dddddd &&= 123
|
||||
dddddd ||= 123
|
||||
dddddd /= 123
|
||||
gg <=> ee
|
||||
|
||||
###########################################################
|
||||
|
||||
Given ruby (Trailing ruby line comment):
|
||||
apple = 1 # comment not aligned
|
||||
apricot = 'DAD' + 'F#AD'
|
||||
banana = 'Gros Michel' ## comment 2
|
||||
|
||||
Do (around the last spaces):
|
||||
vip\<Enter>-\<Space>
|
||||
|
||||
Expect ruby:
|
||||
apple = 1 # comment not aligned
|
||||
apricot = 'DAD' + 'F#AD'
|
||||
banana = 'Gros Michel' ## comment 2
|
||||
|
||||
Execute (define # rule):
|
||||
let g:easy_align_delimiters =
|
||||
\ { '#': { 'pattern': '#\+', 'ignores': ['String'], 'delimiter_align': 'l' } }
|
||||
|
||||
Do (using # rule):
|
||||
vip\<Enter>\<C-U>#
|
||||
|
||||
Expect ruby:
|
||||
apple = 1 # comment not aligned
|
||||
apricot = 'DAD' + 'F#AD'
|
||||
banana = 'Gros Michel' ## comment 2
|
||||
|
||||
Do (using regular expression):
|
||||
vip\<Enter>=
|
||||
gv\<Enter>
|
||||
\<C-U>\<C-G>\<C-G>
|
||||
\<C-D>
|
||||
\<C-X>#\+\<Enter>
|
||||
|
||||
Expect ruby:
|
||||
apple = 1 # comment not aligned
|
||||
apricot = 'DAD' + 'F#AD'
|
||||
banana = 'Gros Michel' ## comment 2
|
||||
|
||||
###########################################################
|
||||
|
||||
Given (method chain):
|
||||
my_object
|
||||
.method1.chain
|
||||
.second_method.call
|
||||
.third.call
|
||||
.method_4.execute
|
||||
|
||||
Do (around all .):
|
||||
vip\<Enter>*.
|
||||
|
||||
Expect:
|
||||
my_object
|
||||
.method1 .chain
|
||||
.second_method.call
|
||||
.third .call
|
||||
.method_4 .execute
|
||||
|
||||
Do (around all . with deep indentation):
|
||||
vip\<Enter>\<C-I>\<C-I>*.
|
||||
|
||||
Expect:
|
||||
my_object
|
||||
.method1 .chain
|
||||
.second_method.call
|
||||
.third .call
|
||||
.method_4 .execute
|
||||
|
||||
Do (right-align around all .):
|
||||
vip\<Enter>\<Enter>*.
|
||||
|
||||
Expect:
|
||||
my_object
|
||||
. method1. chain
|
||||
.second_method. call
|
||||
. third. call
|
||||
. method_4.execute
|
||||
|
||||
###########################################################
|
||||
|
||||
Execute (define d rule):
|
||||
let g:easy_align_delimiters.d =
|
||||
\ { 'pattern': '\s\+\(\S\+\s*[;=]\)\@=', 'left_margin': 0, 'right_margin': 0 }
|
||||
|
||||
Given c (complex var dec):
|
||||
const char* str = "Hello";
|
||||
int64_t count = 1 + 2;
|
||||
static double pi = 3.14;
|
||||
static std::map<std::string, float>* scores = pointer;
|
||||
|
||||
Do (using d rule):
|
||||
vip\<Enter>d
|
||||
gv\<Enter>=
|
||||
|
||||
Expect c:
|
||||
const char* str = "Hello";
|
||||
int64_t count = 1 + 2;
|
||||
static double pi = 3.14;
|
||||
static std::map<std::string, float>* scores = pointer;
|
||||
|
||||
###########################################################
|
||||
|
||||
Given (indented code):
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Do:
|
||||
vip\<Enter>=
|
||||
|
||||
Expect:
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Do (shallow indentation):
|
||||
vip\<Enter>\<C-I>=
|
||||
|
||||
Expect:
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Do (deep indentation):
|
||||
vip\<Enter>\<C-I>\<C-I>=
|
||||
|
||||
Expect:
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Do (no indentation):
|
||||
vip\<Enter>\<C-I>\<C-I>\<C-I>=
|
||||
|
||||
Expect:
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Do (right-align, shallow indentation):
|
||||
vip\<Enter>\<Enter>\<C-I>=
|
||||
|
||||
Expect:
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Do (center-align, shallow indentation):
|
||||
vip\<Enter>\<Enter>\<Enter>\<C-I>=
|
||||
|
||||
Expect:
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Do (right-align, deep indentation):
|
||||
vip\<Enter>\<Enter>\<C-I>\<C-I>=
|
||||
|
||||
Expect:
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Do (center-align, deep indentation):
|
||||
vip\<Enter>\<Enter>\<Enter>\<C-I>\<C-I>=
|
||||
|
||||
Expect:
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Do (right-align, no indentation):
|
||||
vip\<Enter>\<Enter>\<C-I>\<C-I>\<C-I>=
|
||||
|
||||
###########################################################
|
||||
|
||||
Expect:
|
||||
apple = 1
|
||||
banana = 2
|
||||
cake = 3
|
||||
daisy = 4
|
||||
eggplant = 5
|
||||
|
||||
Given (Center-align cases):
|
||||
aaaa = 123456778901234567890 =
|
||||
cccccccccccccc = 12345678 =
|
||||
|
||||
aaaa = 123456778901234567890 =
|
||||
bbbbbb = 4
|
||||
cccccccccccccccccc = 12345678 =
|
||||
|
||||
aaaa = 123456778901234567890 =
|
||||
cccccccccccccccccc = 12345678 =
|
||||
|
||||
aaaaa = 123456778901234567890 =
|
||||
cc = 12345678 =
|
||||
|
||||
aaaaa = 123456778901234567890 =
|
||||
bbbbbbbbbb = 12345 =
|
||||
|
||||
aaaaa = 123456778901234567890 =
|
||||
cccccccccccccccccc = 123 =
|
||||
|
||||
aaaaa = 123456778901234567890 =
|
||||
cccccccccccccccccc = 12345678 =
|
||||
|
||||
aaaaa = 12345 =
|
||||
bbbbbbbbbb = 123456778901234567890 =
|
||||
|
||||
aaaaa = 12345
|
||||
bbbbbbbbbb = 123456778901234567890
|
||||
|
||||
Do:
|
||||
vip\<Enter>\<Enter>\<Enter>=
|
||||
}jvip\<Enter>\<Enter>\<Enter>=
|
||||
}jvip\<Enter>\<Enter>\<Enter>=
|
||||
}jvip\<Enter>\<Enter>\<Enter>=
|
||||
}jvip\<Enter>\<Enter>\<Enter>2=
|
||||
}jvip\<Enter>\<Enter>\<Enter>2=
|
||||
}jvip\<Enter>\<Enter>\<Enter>2=
|
||||
}jvip\<Enter>\<Enter>\<Enter>2=
|
||||
}jvip\<Enter>\<Enter>\<Enter>2=
|
||||
|
||||
Expect:
|
||||
aaaa = 123456778901234567890 =
|
||||
cccccccccccccc = 12345678 =
|
||||
|
||||
aaaa = 123456778901234567890 =
|
||||
bbbbbb = 4
|
||||
cccccccccccccccccc = 12345678 =
|
||||
|
||||
aaaa = 123456778901234567890 =
|
||||
cccccccccccccccccc = 12345678 =
|
||||
|
||||
aaaaa = 123456778901234567890 =
|
||||
cc = 12345678 =
|
||||
|
||||
aaaaa = 123456778901234567890 =
|
||||
bbbbbbbbbb = 12345 =
|
||||
|
||||
aaaaa = 123456778901234567890 =
|
||||
cccccccccccccccccc = 123 =
|
||||
|
||||
aaaaa = 123456778901234567890 =
|
||||
cccccccccccccccccc = 12345678 =
|
||||
|
||||
aaaaa = 12345 =
|
||||
bbbbbbbbbb = 123456778901234567890 =
|
||||
|
||||
aaaaa = 12345
|
||||
bbbbbbbbbb = 123456778901234567890
|
||||
|
||||
|
||||
Reference in New Issue
Block a user