Skip to content

Commit e7bd7bb

Browse files
committed
refactor: command palette auto-selection (#1937)
Signed-off-by: leo <[email protected]>
1 parent e6de365 commit e7bd7bb

14 files changed

+66
-22
lines changed

‎src/ViewModels/BlameCommandPalette.cs‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,28 @@ private void UpdateVisible()
9191
if(string.IsNullOrEmpty(_filter))
9292
{
9393
VisibleFiles=_repoFiles;
94+
95+
if(string.IsNullOrEmpty(_selectedFile))
96+
SelectedFile=_repoFiles[0];
9497
}
9598
else
9699
{
97100
varvisible=newList<string>();
101+
98102
foreach(varfin_repoFiles)
99103
{
100104
if(f.Contains(_filter,StringComparison.OrdinalIgnoreCase))
101105
visible.Add(f);
102106
}
107+
108+
varautoSelected=_selectedFile;
109+
if(visible.Count==0)
110+
autoSelected=null;
111+
elseif(string.IsNullOrEmpty(_selectedFile)||!visible.Contains(_selectedFile))
112+
autoSelected=visible[0];
113+
103114
VisibleFiles=visible;
115+
SelectedFile=autoSelected;
104116
}
105117
}
106118
}

‎src/ViewModels/BranchCompareCommandPalette.cs‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,14 @@ private void UpdateBranches()
7979
returnl.IsLocal?-1:1;
8080
});
8181

82+
varautoSelected=_selectedBranch;
83+
if(branches.Count==0)
84+
autoSelected=null;
85+
elseif(_selectedBranch==null||!branches.Contains(_selectedBranch))
86+
autoSelected=branches[0];
87+
8288
Branches=branches;
89+
SelectedBranch=autoSelected;
8390
}
8491

8592
privateLauncher_launcher;

‎src/ViewModels/CheckoutCommandPalette.cs‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,14 @@ private void UpdateBranches()
8484
returnl.IsLocal?-1:1;
8585
});
8686

87+
varautoSelected=_selectedBranch;
88+
if(branches.Count==0)
89+
autoSelected=null;
90+
elseif(_selectedBranch==null||!branches.Contains(_selectedBranch))
91+
autoSelected=branches[0];
92+
8793
Branches=branches;
94+
SelectedBranch=autoSelected;
8895
}
8996

9097
privateLauncher_launcher;

‎src/ViewModels/FileHistoryCommandPalette.cs‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,28 @@ private void UpdateVisible()
8585
if(string.IsNullOrEmpty(_filter))
8686
{
8787
VisibleFiles=_repoFiles;
88+
89+
if(string.IsNullOrEmpty(_selectedFile))
90+
SelectedFile=_repoFiles[0];
8891
}
8992
else
9093
{
9194
varvisible=newList<string>();
95+
9296
foreach(varfin_repoFiles)
9397
{
9498
if(f.Contains(_filter,StringComparison.OrdinalIgnoreCase))
9599
visible.Add(f);
96100
}
101+
102+
varautoSelected=_selectedFile;
103+
if(visible.Count==0)
104+
autoSelected=null;
105+
elseif(string.IsNullOrEmpty(_selectedFile)||!visible.Contains(_selectedFile))
106+
autoSelected=visible[0];
107+
97108
VisibleFiles=visible;
109+
SelectedFile=autoSelected;
98110
}
99111
}
100112
}

‎src/ViewModels/MergeCommandPalette.cs‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,14 @@ private void UpdateBranches()
8080
returnl.IsLocal?-1:1;
8181
});
8282

83+
varautoSelected=_selectedBranch;
84+
if(branches.Count==0)
85+
autoSelected=null;
86+
elseif(_selectedBranch==null||!branches.Contains(_selectedBranch))
87+
autoSelected=branches[0];
88+
8389
Branches=branches;
90+
SelectedBranch=autoSelected;
8491
}
8592

8693
privateLauncher_launcher=null;

‎src/ViewModels/OpenFileCommandPalette.cs‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,28 @@ private void UpdateVisible()
8686
if(string.IsNullOrEmpty(_filter))
8787
{
8888
VisibleFiles=_repoFiles;
89+
90+
if(string.IsNullOrEmpty(_selectedFile))
91+
SelectedFile=_repoFiles[0];
8992
}
9093
else
9194
{
9295
varvisible=newList<string>();
96+
9397
foreach(varfin_repoFiles)
9498
{
9599
if(f.Contains(_filter,StringComparison.OrdinalIgnoreCase))
96100
visible.Add(f);
97101
}
102+
103+
varautoSelected=_selectedFile;
104+
if(visible.Count==0)
105+
autoSelected=null;
106+
elseif(string.IsNullOrEmpty(_selectedFile)||!visible.Contains(_selectedFile))
107+
autoSelected=visible[0];
108+
98109
VisibleFiles=visible;
110+
SelectedFile=autoSelected;
99111
}
100112
}
101113
}

‎src/ViewModels/RepositoryCommandPalette.cs‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public RepositoryCommandPalette(Launcher launcher, Repository repo)
8282
}));
8383

8484
_visibleCmds=_cmds;
85+
_selectedCmd=_cmds[0];
8586
}
8687

8788
publicoverridevoidCleanup()
@@ -116,13 +117,20 @@ private void UpdateVisible()
116117
else
117118
{
118119
varvisible=newList<RepositoryCommandPaletteCmd>();
119-
foreach(varcmdinVisibleCmds)
120+
121+
foreach(varcmdin_cmds)
120122
{
121123
if(cmd.Key.Contains(_filter,StringComparison.OrdinalIgnoreCase)||
122124
cmd.Label.Contains(_filter,StringComparison.OrdinalIgnoreCase))
123125
visible.Add(cmd);
124126
}
127+
128+
varautoSelected=_selectedCmd;
129+
if(!visible.Contains(_selectedCmd))
130+
autoSelected=visible.Count>0?visible[0]:null;
131+
125132
VisibleCmds=visible;
133+
SelectedCmd=autoSelected;
126134
}
127135
}
128136

‎src/Views/BlameCommandPalette.axaml.cs‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,7 @@ protected override void OnKeyDown(KeyEventArgs e)
3636
if(FilterTextBox.IsKeyboardFocusWithin)
3737
{
3838
if(vm.VisibleFiles.Count>0)
39-
{
4039
FileListBox.Focus(NavigationMethod.Directional);
41-
vm.SelectedFile=vm.VisibleFiles[0];
42-
}
4340

4441
e.Handled=true;
4542
return;

‎src/Views/BranchCompareCommandPalette.axaml.cs‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,7 @@ protected override void OnKeyDown(KeyEventArgs e)
3636
if(FilterTextBox.IsKeyboardFocusWithin)
3737
{
3838
if(vm.Branches.Count>0)
39-
{
4039
BranchListBox.Focus(NavigationMethod.Directional);
41-
vm.SelectedBranch=vm.Branches[0];
42-
}
4340

4441
e.Handled=true;
4542
return;

‎src/Views/CheckoutCommandPalette.axaml.cs‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,7 @@ protected override async void OnKeyDown(KeyEventArgs e)
3636
if(FilterTextBox.IsKeyboardFocusWithin)
3737
{
3838
if(vm.Branches.Count>0)
39-
{
4039
BranchListBox.Focus(NavigationMethod.Directional);
41-
vm.SelectedBranch=vm.Branches[0];
42-
}
4340

4441
e.Handled=true;
4542
return;

0 commit comments

Comments
(0)