code_style: refactor datas used by text diff result

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo
2025-12-01 19:56:59 +08:00
parent b543633996
commit c1a01b2fc7
2 changed files with 9 additions and 10 deletions

View File

@@ -252,10 +252,10 @@ namespace SourceGit.Commands
foreach (var chunk in chunks)
{
if (chunk.DeletedCount > 0)
left.Highlights.Add(new Models.TextInlineRange(chunk.DeletedStart, chunk.DeletedCount));
left.Highlights.Add(new Models.TextRange(chunk.DeletedStart, chunk.DeletedCount));
if (chunk.AddedCount > 0)
right.Highlights.Add(new Models.TextInlineRange(chunk.AddedStart, chunk.AddedCount));
right.Highlights.Add(new Models.TextRange(chunk.AddedStart, chunk.AddedCount));
}
}
}

View File

@@ -14,7 +14,7 @@ namespace SourceGit.Models
Deleted,
}
public class TextInlineRange(int p, int n)
public class TextRange(int p, int n)
{
public int Start { get; set; } = p;
public int End { get; set; } = p + n - 1;
@@ -26,7 +26,7 @@ namespace SourceGit.Models
public string Content { get; set; } = "";
public int OldLineNumber { get; set; } = 0;
public int NewLineNumber { get; set; } = 0;
public List<TextInlineRange> Highlights { get; set; } = new List<TextInlineRange>();
public List<TextRange> Highlights { get; set; } = new List<TextRange>();
public bool NoNewLineEndOfFile { get; set; } = false;
public string OldLine => OldLineNumber == 0 ? string.Empty : OldLineNumber.ToString();
@@ -49,11 +49,6 @@ namespace SourceGit.Models
public bool HasChanges { get; set; } = false;
public int IgnoredAdds { get; set; } = 0;
public int IgnoredDeletes { get; set; } = 0;
public bool IsInRange(int idx)
{
return idx >= StartLine - 1 && idx < EndLine;
}
}
public partial class TextDiff
@@ -129,7 +124,11 @@ namespace SourceGit.Models
var line = Lines[i];
if (line.Type != TextDiffLineType.Added)
continue;
writer.WriteLine($"{(selection.IsInRange(i) ? "+" : " ")}{line.Content}");
if (i >= selection.StartLine - 1 && i < selection.EndLine)
writer.WriteLine($"+{line.Content}");
else
writer.WriteLine($" {line.Content}");
}
}
else