From 825b74c2a3fbd49d595fdfc905ebceb1f93e6f91 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 29 Apr 2025 09:44:06 +0800 Subject: [PATCH] refactor: use `String.AsSpan(int, int)` instead of `String.AsSpan().Slice(int, int)` Signed-off-by: leo --- src/Commands/Diff.cs | 6 +++--- src/Commands/Statistics.cs | 2 +- src/Converters/PathConverters.cs | 2 +- src/Models/AvatarManager.cs | 2 +- src/Models/DiffResult.cs | 4 ++-- src/Models/Worktree.cs | 2 +- src/ViewModels/Archive.cs | 2 +- src/ViewModels/Blame.cs | 2 +- src/ViewModels/Launcher.cs | 2 +- src/ViewModels/WorkingCopy.cs | 6 +++--- src/Views/Histories.axaml.cs | 2 +- src/Views/TextDiffView.axaml.cs | 8 ++++---- 12 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Commands/Diff.cs b/src/Commands/Diff.cs index a60f4cc5..a354b816 100644 --- a/src/Commands/Diff.cs +++ b/src/Commands/Diff.cs @@ -105,7 +105,7 @@ namespace SourceGit.Commands } else if (line.StartsWith("-size ", StringComparison.Ordinal)) { - _result.LFSDiff.Old.Size = long.Parse(line.AsSpan().Slice(6)); + _result.LFSDiff.Old.Size = long.Parse(line.AsSpan(6)); } } else if (ch == '+') @@ -116,12 +116,12 @@ namespace SourceGit.Commands } else if (line.StartsWith("+size ", StringComparison.Ordinal)) { - _result.LFSDiff.New.Size = long.Parse(line.AsSpan().Slice(6)); + _result.LFSDiff.New.Size = long.Parse(line.AsSpan(6)); } } else if (line.StartsWith(" size ", StringComparison.Ordinal)) { - _result.LFSDiff.New.Size = _result.LFSDiff.Old.Size = long.Parse(line.AsSpan().Slice(6)); + _result.LFSDiff.New.Size = _result.LFSDiff.Old.Size = long.Parse(line.AsSpan(6)); } return; } diff --git a/src/Commands/Statistics.cs b/src/Commands/Statistics.cs index ea0b86de..e11c1740 100644 --- a/src/Commands/Statistics.cs +++ b/src/Commands/Statistics.cs @@ -40,7 +40,7 @@ namespace SourceGit.Commands if (dateEndIdx == -1) return; - var dateStr = line.AsSpan().Slice(0, dateEndIdx); + var dateStr = line.AsSpan(0, dateEndIdx); if (double.TryParse(dateStr, out var date)) statistics.AddCommit(line.Substring(dateEndIdx + 1), date); } diff --git a/src/Converters/PathConverters.cs b/src/Converters/PathConverters.cs index 44fd7188..ac1e61e5 100644 --- a/src/Converters/PathConverters.cs +++ b/src/Converters/PathConverters.cs @@ -22,7 +22,7 @@ namespace SourceGit.Converters var home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); var prefixLen = home.EndsWith('/') ? home.Length - 1 : home.Length; if (v.StartsWith(home, StringComparison.Ordinal)) - return $"~{v.AsSpan().Slice(prefixLen)}"; + return $"~{v.AsSpan(prefixLen)}"; return v; }); diff --git a/src/Models/AvatarManager.cs b/src/Models/AvatarManager.cs index a506d886..a9ef3eb4 100644 --- a/src/Models/AvatarManager.cs +++ b/src/Models/AvatarManager.cs @@ -196,7 +196,7 @@ namespace SourceGit.Models private string GetEmailHash(string email) { var lowered = email.ToLower(CultureInfo.CurrentCulture).Trim(); - var hash = MD5.HashData(Encoding.Default.GetBytes(lowered).AsSpan()); + var hash = MD5.HashData(Encoding.Default.GetBytes(lowered)); var builder = new StringBuilder(hash.Length * 2); foreach (var c in hash) builder.Append(c.ToString("x2")); diff --git a/src/Models/DiffResult.cs b/src/Models/DiffResult.cs index ffb977bf..75294057 100644 --- a/src/Models/DiffResult.cs +++ b/src/Models/DiffResult.cs @@ -148,9 +148,9 @@ namespace SourceGit.Models public void GenerateNewPatchFromSelection(Change change, string fileBlobGuid, TextDiffSelection selection, bool revert, string output) { var isTracked = !string.IsNullOrEmpty(fileBlobGuid); - var fileGuid = isTracked ? fileBlobGuid.AsSpan().Slice(0, 8) : "00000000".AsSpan(); + var fileGuid = isTracked ? fileBlobGuid : "00000000"; - var builder = new StringBuilder(512); + var builder = new StringBuilder(); builder.Append("diff --git a/").Append(change.Path).Append(" b/").Append(change.Path).Append('\n'); if (!revert && !isTracked) builder.Append("new file mode 100644\n"); diff --git a/src/Models/Worktree.cs b/src/Models/Worktree.cs index 81f58545..3f954650 100644 --- a/src/Models/Worktree.cs +++ b/src/Models/Worktree.cs @@ -23,7 +23,7 @@ namespace SourceGit.Models get { if (IsDetached) - return $"deteched HEAD at {Head.AsSpan().Slice(10)}"; + return $"deteched HEAD at {Head.AsSpan(10)}"; if (Branch.StartsWith("refs/heads/", StringComparison.Ordinal)) return Branch.Substring(11); diff --git a/src/ViewModels/Archive.cs b/src/ViewModels/Archive.cs index a8a06e2c..a4a4f6eb 100644 --- a/src/ViewModels/Archive.cs +++ b/src/ViewModels/Archive.cs @@ -32,7 +32,7 @@ namespace SourceGit.ViewModels { _repo = repo; _revision = commit.SHA; - _saveFile = $"archive-{commit.SHA.AsSpan().Slice(0, 10)}.zip"; + _saveFile = $"archive-{commit.SHA.AsSpan(0, 10)}.zip"; BasedOn = commit; } diff --git a/src/ViewModels/Blame.cs b/src/ViewModels/Blame.cs index b76db66d..c04842e5 100644 --- a/src/ViewModels/Blame.cs +++ b/src/ViewModels/Blame.cs @@ -31,7 +31,7 @@ namespace SourceGit.ViewModels { _repo = repo; - Title = $"{file} @ {revision.AsSpan().Slice(0, 10)}"; + Title = $"{file} @ {revision.AsSpan(0, 10)}"; Task.Run(() => { var result = new Commands.Blame(repo, file, revision).Result(); diff --git a/src/ViewModels/Launcher.cs b/src/ViewModels/Launcher.cs index 0a465cc4..d9425059 100644 --- a/src/ViewModels/Launcher.cs +++ b/src/ViewModels/Launcher.cs @@ -584,7 +584,7 @@ namespace SourceGit.ViewModels var home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); var prefixLen = home.EndsWith('/') ? home.Length - 1 : home.Length; if (path.StartsWith(home, StringComparison.Ordinal)) - path = $"~{path.AsSpan().Slice(prefixLen)}"; + path = $"~{path.AsSpan(prefixLen)}"; } Title = $"[{workspace}] {name} ({path})"; diff --git a/src/ViewModels/WorkingCopy.cs b/src/ViewModels/WorkingCopy.cs index 4d35b5c2..762f1176 100644 --- a/src/ViewModels/WorkingCopy.cs +++ b/src/ViewModels/WorkingCopy.cs @@ -635,7 +635,7 @@ namespace SourceGit.ViewModels } else if (_inProgressContext is RevertInProgress revert) { - useTheirs.Header = App.Text("FileCM.ResolveUsing", $"{revert.Head.SHA.AsSpan().Slice(0, 10)} (revert)"); + useTheirs.Header = App.Text("FileCM.ResolveUsing", $"{revert.Head.SHA.AsSpan(0, 10)} (revert)"); useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name); } else if (_inProgressContext is MergeInProgress merge) @@ -993,7 +993,7 @@ namespace SourceGit.ViewModels } else if (_inProgressContext is RevertInProgress revert) { - useTheirs.Header = App.Text("FileCM.ResolveUsing", $"{revert.Head.SHA.AsSpan().Slice(0, 10)} (revert)"); + useTheirs.Header = App.Text("FileCM.ResolveUsing", $"{revert.Head.SHA.AsSpan(0, 10)} (revert)"); useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name); } else if (_inProgressContext is MergeInProgress merge) @@ -1417,7 +1417,7 @@ namespace SourceGit.ViewModels var home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); var prefixLen = home.EndsWith('/') ? home.Length - 1 : home.Length; if (gitTemplate.StartsWith(home, StringComparison.Ordinal)) - friendlyName = $"~{gitTemplate.AsSpan().Slice(prefixLen)}"; + friendlyName = $"~{gitTemplate.AsSpan(prefixLen)}"; } var gitTemplateItem = new MenuItem(); diff --git a/src/Views/Histories.axaml.cs b/src/Views/Histories.axaml.cs index 5584b106..d49d9735 100644 --- a/src/Views/Histories.axaml.cs +++ b/src/Views/Histories.axaml.cs @@ -205,7 +205,7 @@ namespace SourceGit.Views foreach (var item in selected) { if (item is Models.Commit commit) - builder.AppendLine($"{commit.SHA.AsSpan().Slice(0, 10)} - {commit.Subject}"); + builder.AppendLine($"{commit.SHA.AsSpan(0, 10)} - {commit.Subject}"); } App.CopyText(builder.ToString()); diff --git a/src/Views/TextDiffView.axaml.cs b/src/Views/TextDiffView.axaml.cs index d2d9622d..78a67bae 100644 --- a/src/Views/TextDiffView.axaml.cs +++ b/src/Views/TextDiffView.axaml.cs @@ -1047,7 +1047,7 @@ namespace SourceGit.Views // The first selected line (partial selection) if (i == startIdx && startPosition.Column > 1) { - builder.Append(line.Content.AsSpan().Slice(startPosition.Column - 1)); + builder.Append(line.Content.AsSpan(startPosition.Column - 1)); builder.Append(Environment.NewLine); continue; } @@ -1064,7 +1064,7 @@ namespace SourceGit.Views { if (endPosition.Column - 1 < line.Content.Length) { - builder.Append(line.Content.AsSpan().Slice(0, endPosition.Column - 1)); + builder.Append(line.Content.AsSpan(0, endPosition.Column - 1)); } else { @@ -1254,12 +1254,12 @@ namespace SourceGit.Views var textDiff = DataContext as Models.TextDiff; if (textDiff != null) { - var builder = new StringBuilder(512); + var builder = new StringBuilder(); foreach (var line in textDiff.Lines) { if (line.Content.Length > 10000) { - builder.Append(line.Content.AsSpan().Slice(0, 1000)); + builder.Append(line.Content.AsSpan(0, 1000)); builder.Append($"...({line.Content.Length - 1000} character trimmed)"); } else