Skip to content

Commit 06d0334

Browse files
committed
code_style: move commit link parser to Models.CommitLink.Get
Signed-off-by: leo <[email protected]>
1 parent 750ca8e commit 06d0334

File tree

5 files changed

+47
-31
lines changed

5 files changed

+47
-31
lines changed

src/App.axaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ private static bool TryLaunchAsRebaseMessageEditor(string[] args, out int exitCo
471471
if (!collection.Onto.Equals(onto) || !collection.OrigHead.Equals(origHead))
472472
return true;
473473

474-
var done = File.ReadAllText(doneFile).Trim().Split([ '\r', '\n' ], StringSplitOptions.RemoveEmptyEntries);
474+
var done = File.ReadAllText(doneFile).Trim().Split(['\r', '\n'], StringSplitOptions.RemoveEmptyEntries);
475475
if (done.Length == 0)
476476
return true;
477477

src/Models/CommitLink.cs

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,49 @@
1-
namespace SourceGit.Models
1+
using System;
2+
using System.Collections.Generic;
3+
4+
namespace SourceGit.Models
25
{
36
public class CommitLink
47
{
58
public string Name { get; set; } = null;
69
public string URLPrefix { get; set; } = null;
10+
11+
public CommitLink(string name, string prefix)
12+
{
13+
Name = name;
14+
URLPrefix = prefix;
15+
}
16+
17+
public static List<CommitLink> Get(List<Remote> remotes)
18+
{
19+
var outs = new List<CommitLink>();
20+
21+
foreach (var remote in remotes)
22+
{
23+
if (remote.TryGetVisitURL(out var url))
24+
{
25+
var trimmedUrl = url;
26+
if (url.EndsWith(".git"))
27+
trimmedUrl = url.Substring(0, url.Length - 4);
28+
29+
if (url.StartsWith("https://github.com/", StringComparison.Ordinal))
30+
outs.Add(new($"Github ({trimmedUrl.Substring(19)})", $"{url}/commit/"));
31+
else if (url.StartsWith("https://gitlab.", StringComparison.Ordinal))
32+
outs.Add(new($"GitLab ({trimmedUrl.Substring(trimmedUrl.Substring(15).IndexOf('/') + 16)})", $"{url}/-/commit/"));
33+
else if (url.StartsWith("https://gitee.com/", StringComparison.Ordinal))
34+
outs.Add(new($"Gitee ({trimmedUrl.Substring(18)})", $"{url}/commit/"));
35+
else if (url.StartsWith("https://bitbucket.org/", StringComparison.Ordinal))
36+
outs.Add(new($"BitBucket ({trimmedUrl.Substring(22)})", $"{url}/commits/"));
37+
else if (url.StartsWith("https://codeberg.org/", StringComparison.Ordinal))
38+
outs.Add(new($"Codeberg ({trimmedUrl.Substring(21)})", $"{url}/commit/"));
39+
else if (url.StartsWith("https://gitea.org/", StringComparison.Ordinal))
40+
outs.Add(new($"Gitea ({trimmedUrl.Substring(18)})", $"{url}/commit/"));
41+
else if (url.StartsWith("https://git.sr.ht/", StringComparison.Ordinal))
42+
outs.Add(new($"sourcehut ({trimmedUrl.Substring(18)})", $"{url}/commit/"));
43+
}
44+
}
45+
46+
return outs;
47+
}
748
}
849
}

src/ViewModels/CommitDetail.cs

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -134,31 +134,7 @@ public List<string> RevisionFileSearchSuggestion
134134
public CommitDetail(Repository repo)
135135
{
136136
_repo = repo;
137-
138-
foreach (var remote in repo.Remotes)
139-
{
140-
if (remote.TryGetVisitURL(out var url))
141-
{
142-
var trimmedUrl = url;
143-
if (url.EndsWith(".git"))
144-
trimmedUrl = url.Substring(0, url.Length - 4);
145-
146-
if (url.StartsWith("https://github.com/", StringComparison.Ordinal))
147-
WebLinks.Add(new Models.CommitLink() { Name = $"Github ({trimmedUrl.Substring(19)})", URLPrefix = $"{url}/commit/" });
148-
else if (url.StartsWith("https://gitlab.", StringComparison.Ordinal))
149-
WebLinks.Add(new Models.CommitLink() { Name = $"GitLab ({trimmedUrl.Substring(trimmedUrl.Substring(15).IndexOf('/') + 16)})", URLPrefix = $"{url}/-/commit/" });
150-
else if (url.StartsWith("https://gitee.com/", StringComparison.Ordinal))
151-
WebLinks.Add(new Models.CommitLink() { Name = $"Gitee ({trimmedUrl.Substring(18)})", URLPrefix = $"{url}/commit/" });
152-
else if (url.StartsWith("https://bitbucket.org/", StringComparison.Ordinal))
153-
WebLinks.Add(new Models.CommitLink() { Name = $"BitBucket ({trimmedUrl.Substring(22)})", URLPrefix = $"{url}/commits/" });
154-
else if (url.StartsWith("https://codeberg.org/", StringComparison.Ordinal))
155-
WebLinks.Add(new Models.CommitLink() { Name = $"Codeberg ({trimmedUrl.Substring(21)})", URLPrefix = $"{url}/commit/" });
156-
else if (url.StartsWith("https://gitea.org/", StringComparison.Ordinal))
157-
WebLinks.Add(new Models.CommitLink() { Name = $"Gitea ({trimmedUrl.Substring(18)})", URLPrefix = $"{url}/commit/" });
158-
else if (url.StartsWith("https://git.sr.ht/", StringComparison.Ordinal))
159-
WebLinks.Add(new Models.CommitLink() { Name = $"sourcehut ({trimmedUrl.Substring(18)})", URLPrefix = $"{url}/commit/" });
160-
}
161-
}
137+
WebLinks = Models.CommitLink.Get(repo.Remotes);
162138
}
163139

164140
public void Cleanup()
@@ -173,7 +149,6 @@ public void Cleanup()
173149
_diffContext = null;
174150
_viewRevisionFileContent = null;
175151
_cancellationSource = null;
176-
WebLinks.Clear();
177152
_revisionFiles = null;
178153
_revisionFileSearchSuggestion = null;
179154
}

src/ViewModels/Histories.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ public ContextMenu MakeContextMenu(ListBox list)
304304
if (picker.Count == 1)
305305
{
306306
log = _repo.CreateLog("Save as Patch");
307-
307+
308308
var succ = false;
309309
for (var i = 0; i < selected.Count; i++)
310310
{

src/Views/LauncherPage.axaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ private void OnPopupDataContextChanged(object sender, EventArgs e)
6767
presenter.Content = null;
6868
return;
6969
}
70-
70+
7171
var viewTypeName = dataTypeName.Replace(".ViewModels.", ".Views.");
7272
var viewType = Type.GetType(viewTypeName);
7373
if (viewType == null)
7474
{
7575
presenter.Content = null;
7676
return;
7777
}
78-
78+
7979
var view = Activator.CreateInstance(viewType);
8080
presenter.Content = view;
8181
}

0 commit comments

Comments
 (0)