|
1 | 1 | @page "/DiffChecker"
|
2 |
| -@using DiffPlex; |
3 | 2 | @using DiffPlex.DiffBuilder
|
4 | 3 | @using DiffPlex.DiffBuilder.Model
|
5 |
| -@using DiffPlex.Model; |
| 4 | +@using MyDevTools.Components.Pages.Components |
6 | 5 | @inject Services.IClipboardService ClipboardService
|
7 | 6 |
|
8 | 7 | <h3 class="text-center">Diff Checker</h3>
|
|
25 | 24 | {
|
26 | 25 | <div class="row mt-4">
|
27 | 26 | <div class="col-md-6">
|
28 |
| - <pre class="line-numbers"> |
29 |
| - <code> |
30 |
| - |
31 |
| - @{ lineCount = 0;} |
32 |
| - @foreach (var line in diffModel.OldText.Lines) |
33 |
| - { |
34 |
| - |
35 |
| - |
36 |
| - <span class="@GetCssClass(line.Type, true)"> |
37 |
| - @if (line.Type == ChangeType.Imaginary) |
38 |
| - { |
39 |
| - <span class="line-number-man"> </span> |
40 |
| - } |
41 |
| - else |
42 |
| - { |
43 |
| - lineCount++; |
44 |
| - <span class="line-number-man">@lineCount </span> |
45 |
| - |
46 |
| - @* @diffModel.OldText.Lines[i].Text *@ |
47 |
| - @if (line.SubPieces == null || !line.SubPieces.Any()) |
48 |
| - { |
49 |
| - <span class="@GetCssClassForText(line)"> |
50 |
| - @line.Text |
51 |
| - </span> |
52 |
| - } |
53 |
| - else |
54 |
| - { |
55 |
| - @foreach (var subPiece in line.SubPieces) |
56 |
| - { |
57 |
| - <span class="@GetCssClassForText(subPiece)"> |
58 |
| - @subPiece.Text |
59 |
| - </span> |
60 |
| - } |
61 |
| - } |
62 |
| - } |
63 |
| - </span> |
64 |
| - } |
65 |
| - </code> |
66 |
| - </pre> |
| 27 | + <DiffOutput PaneModel="diffModel.OldText" /> |
67 | 28 | </div>
|
68 |
| - |
69 | 29 | <div class="col-md-6">
|
70 |
| - <pre class="line-numbers"> |
71 |
| - <code> |
72 |
| - @{ lineCount = 0;} |
73 |
| - @foreach (var line in diffModel.NewText.Lines) |
74 |
| - { |
75 |
| - |
76 |
| - |
77 |
| - <span class="@GetCssClass(line.Type, false)"> |
78 |
| - @if (line.Type == ChangeType.Imaginary) |
79 |
| - { |
80 |
| - <span class="line-number-man"> </span> |
81 |
| - } |
82 |
| - else |
83 |
| - { |
84 |
| - lineCount++; |
85 |
| - <span class="line-number-man">@lineCount </span> |
86 |
| - |
87 |
| - @* @diffModel.OldText.Lines[i].Text *@ |
88 |
| - @if (line.SubPieces == null || !line.SubPieces.Any()) |
89 |
| - { |
90 |
| - <span class="@GetCssClassForText(line)"> |
91 |
| - @line.Text |
92 |
| - </span> |
93 |
| - } |
94 |
| - else |
95 |
| - { |
96 |
| - @foreach (var subPiece in line.SubPieces) |
97 |
| - { |
98 |
| - <span class="@GetCssClassForText(subPiece)"> |
99 |
| - @subPiece.Text |
100 |
| - </span> |
101 |
| - } |
102 |
| - } |
103 |
| - } |
104 |
| - </span> |
105 |
| - } |
106 |
| - </code></pre> |
| 30 | + <DiffOutput PaneModel="diffModel.NewText" /> |
107 | 31 | </div>
|
108 |
| - </div> |
| 32 | + </div> |
109 | 33 | }
|
110 | 34 | </div>
|
111 | 35 |
|
112 | 36 |
|
113 | 37 | @code {
|
114 |
| - private int lineCount = 0; |
115 | 38 | private string text1 = "";
|
116 |
| - // text1 = $"Example unchanged.{Environment.NewLine}Example changed.{Environment.NewLine}Example gone.{Environment.NewLine}"; |
117 | 39 | private string text2 = "";
|
118 |
| - //text2 = $"Example unchanged.{Environment.NewLine}Example CHANGED.{Environment.NewLine}{Environment.NewLine}Example new."; |
119 | 40 | private SideBySideDiffModel diffModel;
|
120 | 41 |
|
121 | 42 | protected override void OnInitialized()
|
122 | 43 | {
|
| 44 | + text1 = $"Example unchanged.{Environment.NewLine}Example changed.{Environment.NewLine}Example gone.{Environment.NewLine}"; |
| 45 | + text2 = $"Example unchanged.{Environment.NewLine}Example CHANGED.{Environment.NewLine}{Environment.NewLine}Example new."; |
123 | 46 | CompareTexts();
|
124 | 47 | }
|
125 | 48 |
|
|
128 | 51 | var diffBuilder = new SideBySideDiffBuilder(DiffPlex.Differ.Instance);
|
129 | 52 | diffModel = diffBuilder.BuildDiffModel(text1, text2);
|
130 | 53 | }
|
131 |
| - |
132 |
| - private string GetCssClass(ChangeType changeType, bool isOldText) |
133 |
| - { |
134 |
| - if (changeType == ChangeType.Imaginary) |
135 |
| - { |
136 |
| - return "row-imaginary"; |
137 |
| - } |
138 |
| - |
139 |
| - string backgroundClass = isOldText ? |
140 |
| - (changeType == ChangeType.Deleted ? "row-missing" : (changeType == ChangeType.Modified ? "row-changed" : "")) : |
141 |
| - (changeType == ChangeType.Inserted ? "row-new" : (changeType == ChangeType.Modified ? "row-changed" : "")); |
142 |
| - |
143 |
| - return backgroundClass; |
144 |
| - } |
145 |
| - |
146 |
| - private string GetCssClassForText(DiffPiece piece) |
147 |
| - { |
148 |
| - string textClass = piece.Type switch |
149 |
| - { |
150 |
| - ChangeType.Inserted => "row-changed-added-text", |
151 |
| - ChangeType.Deleted => "row-changed-removed-text", |
152 |
| - ChangeType.Modified => "row-changed-changed-text", |
153 |
| - _ => "" |
154 |
| - }; |
155 |
| - |
156 |
| - return $"{textClass}"; |
157 |
| - } |
158 | 54 | }
|
0 commit comments