Skip to content

Commit 0374f06

Browse files
committed
simplify grouping
1 parent 8b5a7d2 commit 0374f06

10 files changed

Lines changed: 29 additions & 19 deletions

docs/mdsource/tray.source.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ Run `diffenginetray` in a console to start the app.
2323
<img src="..\src\DiffEngineTray.Tests\MenuBuilderTest.Full.verified.png">
2424

2525

26+
### Grouping
27+
28+
Moves and deletes will be grouped by the containing solution. In the above, the files exist in DiffEngine, so the they are grouped under it.
29+
30+
2631
### Moves
2732

2833
"Pending Moves" will accept the changes to file3 and file4.

docs/tray.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ Run `diffenginetray` in a console to start the app.
3030
<img src="..\src\DiffEngineTray.Tests\MenuBuilderTest.Full.verified.png">
3131

3232

33+
### Grouping
34+
35+
Moves and deletes will be grouped by the containing solution. In the above, the files exist in DiffEngine, so the they are grouped under it.
36+
37+
3338
### Moves
3439

3540
"Pending Moves" will accept the changes to file3 and file4.
814 Bytes
Loading
56 Bytes
Loading
8.31 KB
Loading
819 Bytes
Loading
805 Bytes
Loading

src/DiffEngineTray.Tests/MenuBuilderTest.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,24 @@ public async Task Full()
4747
await Verifier.Verify(menu, settings);
4848
}
4949

50+
[Fact]
51+
public async Task Grouped()
52+
{
53+
await using var tracker = new RecordingTracker();
54+
tracker.AddDelete("file2.txt");
55+
tracker.AddMove(file4, "file4.txt", "theExe", "theArguments", true, null);
56+
var menu = MenuBuilder.Build(() => { }, () => { }, tracker);
57+
await Verifier.Verify(menu, settings);
58+
}
59+
5060
[Fact]
5161
public async Task FullGrouped()
5262
{
5363
await using var tracker = new RecordingTracker();
5464
tracker.AddDelete(file1);
55-
tracker.AddDelete("bar.txt");
65+
tracker.AddDelete("file2.txt");
5666
tracker.AddMove(file3, file3, "theExe", "theArguments", true, null);
57-
tracker.AddMove(file4, "foo.txt", "theExe", "theArguments", true, null);
67+
tracker.AddMove(file4, "file4.txt", "theExe", "theArguments", true, null);
5868
var menu = MenuBuilder.Build(() => { }, () => { }, tracker);
5969
await Verifier.Verify(menu, settings);
6070
}

src/DiffEngineTray/MenuBuilder.cs

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -82,27 +82,17 @@ static IEnumerable<ToolStripItem> BuildTrackingMenuItems(Tracker tracker)
8282
.Distinct()
8383
.ToList();
8484

85-
if (groups.Count == 1)
85+
foreach (var group in groups)
8686
{
87-
foreach (var toolStripItem in BuildMovesAndDeletes(null, tracker, deletes, moves))
87+
foreach (var toolStripItem in BuildMovesAndDeletes(
88+
group,
89+
tracker,
90+
deletes.Where(x => x.Group == group).ToList(),
91+
moves.Where(x => x.Group == group).ToList()))
8892
{
8993
yield return toolStripItem;
9094
}
9195
}
92-
else
93-
{
94-
foreach (var group in groups)
95-
{
96-
foreach (var toolStripItem in BuildMovesAndDeletes(
97-
group,
98-
tracker,
99-
deletes.Where(x => x.Group == group).ToList(),
100-
moves.Where(x => x.Group == group).ToList()))
101-
{
102-
yield return toolStripItem;
103-
}
104-
}
105-
}
10696

10797
yield return new MenuButton($"Clear ({count})", tracker.Clear, Images.Clear);
10898
yield return new MenuButton($"Accept all ({count})", tracker.AcceptAll, Images.AcceptAll);

src/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project>
33
<PropertyGroup>
44
<NoWarn>CS1591;CS0649</NoWarn>
5-
<Version>6.1.0</Version>
5+
<Version>6.1.1</Version>
66
<AssemblyVersion>1.0.0</AssemblyVersion>
77
<PackageTags>Testing, Snapshot, Diff, Compare</PackageTags>
88
<Description>Launches diff tools based on file extensions. Designed to be consumed by snapshot testing libraries.</Description>

0 commit comments

Comments
 (0)