-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Add a new by_regex option. (#62)
- Loading branch information
Showing
11 changed files
with
504 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
WRN while parsing option "by_regex": error parsing regexp: missing argument to repetition operator: `*` line=85 | ||
WRN by_regex cannot be used with ignore_prefixes (consider adding a non-capturing group to the start of your regex instead of ignore_prefixes: "(?:foo|bar)") line=92 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
No capturing group | ||
keep-sorted-test start by_regex=int|bool|long | ||
int baz | ||
bool foo | ||
long bar | ||
keep-sorted-test end | ||
|
||
Capturing group | ||
keep-sorted-test start by_regex=['[^ ]+ (.*)'] | ||
int baz | ||
bool foo | ||
long bar | ||
keep-sorted-test end | ||
|
||
Capturing group and non-capturing group | ||
keep-sorted-test start by_regex=['(?:int|bool|long) (.*)'] | ||
int baz | ||
bool foo | ||
long bar | ||
keep-sorted-test end | ||
|
||
Numeric | ||
keep-sorted-test start by_regex=\d+ numeric=yes | ||
bar 40 | ||
foo 7 | ||
baz 01 | ||
keep-sorted-test end | ||
|
||
Case insensitive sorting | ||
keep-sorted-test start by_regex=\D+ case=no | ||
1 FOO | ||
2 bar | ||
3 bAz | ||
keep-sorted-test end | ||
|
||
Prefix order | ||
// keep-sorted-test start by_regex=\w+_(\w+) prefix_order=INIT,,FINAL | ||
FOO_INIT, | ||
FOO_FINAL, | ||
BAR_INIT, | ||
BAR_FINAL, | ||
DO_STUFF, | ||
DO_MORE_STUFF, | ||
ZAP_THINGS | ||
// keep-sorted-test end | ||
|
||
Multiple regexes | ||
keep-sorted-test start by_regex=['(?:int|bool|long) (.*)', 'int|bool|long'] | ||
int baz | ||
long baz | ||
bool baz | ||
bool foo | ||
long foo | ||
int foo | ||
long bar | ||
bool bar | ||
int bar | ||
keep-sorted-test end | ||
|
||
Multiline blocks | ||
keep-sorted-test start block=yes newline_separated=yes by_regex=(\w+)\(\)\s+{ | ||
bool func2() { | ||
return true; | ||
} | ||
int func1() { | ||
return 1; | ||
} | ||
List<SomeReallyLongTypeParameterThatWouldForceTheFunctionNameOntoTheNextLine> | ||
func0() { | ||
return List.of(whatever); | ||
} | ||
keep-sorted-test end | ||
|
||
Regex doesn't match every line | ||
keep-sorted-test start by_regex=\d+ | ||
3 | ||
baz | ||
2 | ||
foo | ||
1 | ||
bar | ||
keep-sorted-test end | ||
|
||
Invalid regex | ||
keep-sorted-test start by_regex=* | ||
2 | ||
1 | ||
3 | ||
keep-sorted-test end | ||
|
||
Cannot combine with ignore_prefixes | ||
keep-sorted-test start by_regex=.* ignore_prefixes=foo,bar | ||
2 | ||
1 | ||
3 | ||
keep-sorted-test end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
No capturing group | ||
keep-sorted-test start by_regex=int|bool|long | ||
bool foo | ||
int baz | ||
long bar | ||
keep-sorted-test end | ||
|
||
Capturing group | ||
keep-sorted-test start by_regex=['[^ ]+ (.*)'] | ||
long bar | ||
int baz | ||
bool foo | ||
keep-sorted-test end | ||
|
||
Capturing group and non-capturing group | ||
keep-sorted-test start by_regex=['(?:int|bool|long) (.*)'] | ||
long bar | ||
int baz | ||
bool foo | ||
keep-sorted-test end | ||
|
||
Numeric | ||
keep-sorted-test start by_regex=\d+ numeric=yes | ||
baz 01 | ||
foo 7 | ||
bar 40 | ||
keep-sorted-test end | ||
|
||
Case insensitive sorting | ||
keep-sorted-test start by_regex=\D+ case=no | ||
2 bar | ||
3 bAz | ||
1 FOO | ||
keep-sorted-test end | ||
|
||
Prefix order | ||
// keep-sorted-test start by_regex=\w+_(\w+) prefix_order=INIT,,FINAL | ||
BAR_INIT, | ||
FOO_INIT, | ||
DO_MORE_STUFF, | ||
DO_STUFF, | ||
ZAP_THINGS, | ||
BAR_FINAL, | ||
FOO_FINAL | ||
// keep-sorted-test end | ||
|
||
Multiple regexes | ||
keep-sorted-test start by_regex=['(?:int|bool|long) (.*)', 'int|bool|long'] | ||
bool bar | ||
int bar | ||
long bar | ||
bool baz | ||
int baz | ||
long baz | ||
bool foo | ||
int foo | ||
long foo | ||
keep-sorted-test end | ||
|
||
Multiline blocks | ||
keep-sorted-test start block=yes newline_separated=yes by_regex=(\w+)\(\)\s+{ | ||
List<SomeReallyLongTypeParameterThatWouldForceTheFunctionNameOntoTheNextLine> | ||
func0() { | ||
return List.of(whatever); | ||
} | ||
|
||
int func1() { | ||
return 1; | ||
} | ||
|
||
bool func2() { | ||
return true; | ||
} | ||
keep-sorted-test end | ||
|
||
Regex doesn't match every line | ||
keep-sorted-test start by_regex=\d+ | ||
1 | ||
2 | ||
3 | ||
bar | ||
baz | ||
foo | ||
keep-sorted-test end | ||
|
||
Invalid regex | ||
keep-sorted-test start by_regex=* | ||
1 | ||
2 | ||
3 | ||
keep-sorted-test end | ||
|
||
Cannot combine with ignore_prefixes | ||
keep-sorted-test start by_regex=.* ignore_prefixes=foo,bar | ||
1 | ||
2 | ||
3 | ||
keep-sorted-test end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.