Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -826,6 +826,47 @@ Pineapples
</tr>
</table>

Set newline_separated=yes for a single blank line, or
newline_separated=N to separate items with N blank lines.

<table border="0">
<tr>
<td>

```
# keep-sorted start
Apples
Bananas
Oranges
Pineapples
# keep-sorted end



```

</td>
<td>

```diff
+# keep-sorted start newline_separated=2
Apples


Bananas


Oranges


Pineapples
# keep-sorted end
```

</td>
</tr>
</table>

### Syntax

If you find yourself wanting to include special characters (spaces, commas, left
Expand Down
18 changes: 18 additions & 0 deletions goldens/block.in
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,24 @@ some_build_rule(
)
// keep-sorted-test end

// BUILD rule style with newlines=2
// keep-sorted-test start block=yes newline_separated=2
some_build_rule(
name = "def",
src = "some-source",
)

some_build_rule(
name = "xyz",
src = "another-source",
)

some_build_rule(
name = "abc",
src = "one-more-source",
)
// keep-sorted-test end

// Nix multi line string
// keep-sorted-test start block=yes newline_separated=yes
foo = throw ''
Expand Down
20 changes: 20 additions & 0 deletions goldens/block.out
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,26 @@ some_build_rule(
src = "some-source",
)

some_build_rule(
name = "xyz",
src = "another-source",
)
// keep-sorted-test end

// BUILD rule style with newlines=2
// keep-sorted-test start block=yes newline_separated=2
some_build_rule(
name = "abc",
src = "one-more-source",
)


some_build_rule(
name = "def",
src = "some-source",
)


some_build_rule(
name = "xyz",
src = "another-source",
Expand Down
4 changes: 2 additions & 2 deletions goldens/by_regex.err
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
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
WRN while parsing option "by_regex": error parsing regexp: missing argument to repetition operator: `*` line=99
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=106
exit status 1
14 changes: 14 additions & 0 deletions goldens/by_regex.in
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,20 @@ Multiline blocks
}
keep-sorted-test end

Multiline blocks with newlines=2
keep-sorted-test start block=yes newline_separated=2 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
Expand Down
18 changes: 18 additions & 0 deletions goldens/by_regex.out
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,24 @@ Multiline blocks
return 1;
}

bool func2() {
return true;
}
keep-sorted-test end

Multiline blocks with newlines=2
keep-sorted-test start block=yes newline_separated=2 by_regex=(\w+)\(\)\s+{
List<SomeReallyLongTypeParameterThatWouldForceTheFunctionNameOntoTheNextLine>
func0() {
return List.of(whatever);
}


int func1() {
return 1;
}


bool func2() {
return true;
}
Expand Down
38 changes: 38 additions & 0 deletions goldens/group.in
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,25 @@ Nested keep-sorted, nested blocks change their number of lines.
];
// keep-sorted-test end

Nested keep-sorted, nested blocks with newlines=2.
// keep-sorted-test start group=yes
private static final List<String> b = [
// keep-sorted-test start
"x",
"x",
"y"
// keep-sorted-test end
];
private static final List<String> a = [
// keep-sorted-test start newline_separated=2
"3",
"2",
"1"
// keep-sorted-test end
];
// keep-sorted-test end


Nested keep-sorted without indentation
// keep-sorted-test start group=yes newline_separated=yes

Expand All @@ -157,6 +176,25 @@ Nested keep-sorted without indentation

// keep-sorted-test end

Nested keep-sorted without indentation, with newlines=3:
// keep-sorted-test start group=yes newline_separated=3

// def
// keep-sorted-test start
3
1
2
// keep-sorted-test end

// abc
// keep-sorted-test start
b
c
a
// keep-sorted-test end

// keep-sorted-test end

Sorting a switch statement with consecutive cases.
Note: This doesn't actually work how I was hoping, but it does exercise an edge case.
switch (foo) {
Expand Down
42 changes: 42 additions & 0 deletions goldens/group.out
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,28 @@ Nested keep-sorted, nested blocks change their number of lines.
];
// keep-sorted-test end

Nested keep-sorted, nested blocks with newlines=2.
// keep-sorted-test start group=yes
private static final List<String> a = [
// keep-sorted-test start newline_separated=2
"1",


"2",


"3"
// keep-sorted-test end
];
private static final List<String> b = [
// keep-sorted-test start
"x",
"y"
// keep-sorted-test end
];
// keep-sorted-test end


Nested keep-sorted without indentation
// keep-sorted-test start group=yes newline_separated=yes
// def
Expand All @@ -148,6 +170,26 @@ Nested keep-sorted without indentation
3
// keep-sorted-test end

// abc
// keep-sorted-test start
a
b
c
// keep-sorted-test end

// keep-sorted-test end

Nested keep-sorted without indentation, with newlines=3:
// keep-sorted-test start group=yes newline_separated=3
// def
// keep-sorted-test start
1
2
3
// keep-sorted-test end



// abc
// keep-sorted-test start
a
Expand Down
6 changes: 3 additions & 3 deletions goldens/simple.err
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
WRN skip_lines has invalid value: -1 line=105
WRN unrecognized option "foo" line=105
WRN while parsing option "ignore_prefixes": content appears to be an unterminated YAML list: "[abc, foo" line=112
WRN skip_lines has invalid value: -1 line=113
WRN unrecognized option "foo" line=113
WRN while parsing option "ignore_prefixes": content appears to be an unterminated YAML list: "[abc, foo" line=120
exit status 1
8 changes: 8 additions & 0 deletions goldens/simple.in
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,14 @@ A
B
// keep-sorted-test end

// keep-sorted-test start newline_separated=2
C

A

B
// keep-sorted-test end

Invalid option
keep-sorted-test start group=yes skip_lines=-1 foo=bar
2
Expand Down
10 changes: 10 additions & 0 deletions goldens/simple.out
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,16 @@ A

B

C
// keep-sorted-test end

// keep-sorted-test start newline_separated=2
A


B


C
// keep-sorted-test end

Expand Down
Loading
Loading