Skip to content

Commit 6a8527a

Browse files
committed
refactor: commit search (#256)
1 parent 38c6c77 commit 6a8527a

File tree

6 files changed

+37
-20
lines changed

6 files changed

+37
-20
lines changed

src/Resources/Locales/en_US.axaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,8 +455,10 @@
455455
<x:String x:Key="Text.Repository.Resolve" xml:space="preserve">RESOLVE</x:String>
456456
<x:String x:Key="Text.Repository.Search" xml:space="preserve">Search Commit</x:String>
457457
<x:String x:Key="Text.Repository.Search.By" xml:space="preserve">Search By</x:String>
458-
<x:String x:Key="Text.Repository.Search.ByBaseInfo" xml:space="preserve">Information</x:String>
459458
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">File</x:String>
459+
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">Message</x:String>
460+
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">SHA</x:String>
461+
<x:String x:Key="Text.Repository.Search.ByUser" xml:space="preserve">Author &amp; Committer</x:String>
460462
<x:String x:Key="Text.Repository.SearchBranchTag" xml:space="preserve">Search Branches &amp; Tags</x:String>
461463
<x:String x:Key="Text.Repository.Statistics" xml:space="preserve">Statistics</x:String>
462464
<x:String x:Key="Text.Repository.Submodules" xml:space="preserve">SUBMODULES</x:String>

src/Resources/Locales/zh_CN.axaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,8 +457,10 @@
457457
<x:String x:Key="Text.Repository.Resolve" xml:space="preserve">解决冲突</x:String>
458458
<x:String x:Key="Text.Repository.Search" xml:space="preserve">查找提交</x:String>
459459
<x:String x:Key="Text.Repository.Search.By" xml:space="preserve">搜索途径</x:String>
460-
<x:String x:Key="Text.Repository.Search.ByBaseInfo" xml:space="preserve">摘要</x:String>
461460
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">文件</x:String>
461+
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">提交信息</x:String>
462+
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">提交指纹</x:String>
463+
<x:String x:Key="Text.Repository.Search.ByUser" xml:space="preserve">作者及提交者</x:String>
462464
<x:String x:Key="Text.Repository.SearchBranchTag" xml:space="preserve">快速查找分支、标签</x:String>
463465
<x:String x:Key="Text.Repository.Statistics" xml:space="preserve">提交统计</x:String>
464466
<x:String x:Key="Text.Repository.Submodules" xml:space="preserve">子模块列表</x:String>

src/Resources/Locales/zh_TW.axaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,8 +457,10 @@
457457
<x:String x:Key="Text.Repository.Resolve" xml:space="preserve">解決衝突</x:String>
458458
<x:String x:Key="Text.Repository.Search" xml:space="preserve">查詢提交</x:String>
459459
<x:String x:Key="Text.Repository.Search.By" xml:space="preserve">查詢方式</x:String>
460-
<x:String x:Key="Text.Repository.Search.ByBaseInfo" xml:space="preserve">摘要</x:String>
461460
<x:String x:Key="Text.Repository.Search.ByFile" xml:space="preserve">檔案</x:String>
461+
<x:String x:Key="Text.Repository.Search.ByMessage" xml:space="preserve">提交資訊</x:String>
462+
<x:String x:Key="Text.Repository.Search.BySHA" xml:space="preserve">提交指紋</x:String>
463+
<x:String x:Key="Text.Repository.Search.ByUser" xml:space="preserve">作者及提交者</x:String>
462464
<x:String x:Key="Text.Repository.SearchBranchTag" xml:space="preserve">快速查找分支、標籤</x:String>
463465
<x:String x:Key="Text.Repository.Statistics" xml:space="preserve">提交統計</x:String>
464466
<x:String x:Key="Text.Repository.Submodules" xml:space="preserve">子模組列表</x:String>

src/ViewModels/Repository.cs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -545,24 +545,33 @@ public void StartSearchCommits()
545545
{
546546
var visible = new List<Models.Commit>();
547547

548-
if (_searchCommitFilterType == 0)
548+
switch (_searchCommitFilterType)
549549
{
550-
foreach (var c in _histories.Commits)
551-
{
552-
if (c.SHA.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase)
553-
|| c.Subject.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase)
554-
|| c.Author.Name.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase)
555-
|| c.Committer.Name.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase)
556-
|| c.Author.Email.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase)
557-
|| c.Committer.Email.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase))
550+
case 0:
551+
foreach (var c in _histories.Commits)
558552
{
559-
visible.Add(c);
553+
if (c.SHA.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase))
554+
visible.Add(c);
560555
}
561-
}
562-
}
563-
else
564-
{
565-
visible = new Commands.QueryCommits(FullPath, $"-1000 -- \"{_searchCommitFilter}\"", false).Result();
556+
557+
break;
558+
case 1:
559+
foreach (var c in _histories.Commits)
560+
{
561+
if (c.Author.Name.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase)
562+
|| c.Committer.Name.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase)
563+
|| c.Author.Email.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase)
564+
|| c.Committer.Email.Contains(_searchCommitFilter, StringComparison.OrdinalIgnoreCase))
565+
visible.Add(c);
566+
}
567+
568+
break;
569+
case 2:
570+
visible = new Commands.QueryCommits(FullPath, $"-1000 --grep=\"{_searchCommitFilter}\"", false).Result();
571+
break;
572+
case 3:
573+
visible = new Commands.QueryCommits(FullPath, $"-1000 -- \"{_searchCommitFilter}\"", false).Result();
574+
break;
566575
}
567576

568577
Dispatcher.UIThread.Invoke(() =>

src/Views/Repository.axaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,9 @@
580580
HorizontalAlignment="Right"
581581
SelectedIndex="{Binding SearchCommitFilterType, Mode=TwoWay}">
582582
<ComboBox.Items>
583-
<TextBlock Text="{DynamicResource Text.Repository.Search.ByBaseInfo}" FontSize="12"/>
583+
<TextBlock Text="{DynamicResource Text.Repository.Search.BySHA}" FontSize="12"/>
584+
<TextBlock Text="{DynamicResource Text.Repository.Search.ByUser}" FontSize="12"/>
585+
<TextBlock Text="{DynamicResource Text.Repository.Search.ByMessage}" FontSize="12"/>
584586
<TextBlock Text="{DynamicResource Text.Repository.Search.ByFile}" FontSize="12"/>
585587
</ComboBox.Items>
586588
</ComboBox>

src/Views/Repository.axaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ private void OnSearchKeyDown(object _, KeyEventArgs e)
7373
{
7474
if (e.Key == Key.Enter)
7575
{
76-
if (DataContext is ViewModels.Repository repo)
76+
if (DataContext is ViewModels.Repository repo && !string.IsNullOrWhiteSpace(repo.SearchCommitFilter))
7777
repo.StartSearchCommits();
7878

7979
e.Handled = true;

0 commit comments

Comments
 (0)