Skip to content

Commit c625c09

Browse files
committed
feedback in the UI when a user selects a search filter for an editor or
environment that is currently disabled in their settings.
1 parent 68c8899 commit c625c09

2 files changed

Lines changed: 76 additions & 4 deletions

File tree

WorkspaceLauncherForVSCode/Classes/SearchFilters.cs

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,86 @@
22
// Licensed under the MIT License. See the LICENSE file in the project root for details.
33
using Microsoft.CommandPalette.Extensions;
44
using Microsoft.CommandPalette.Extensions.Toolkit;
5+
using WorkspaceLauncherForVSCode;
56
using WorkspaceLauncherForVSCode.Classes;
67
using WorkspaceLauncherForVSCode.Enums;
78

89
namespace Microsoft.CmdPal.Ext.Indexer.Indexer;
910

1011
internal sealed partial class SearchFilters : Filters
1112
{
12-
public SearchFilters()
13+
private readonly SettingsManager _settingsManager;
14+
15+
public SearchFilters(SettingsManager settingsManager)
1316
{
17+
_settingsManager = settingsManager;
1418
CurrentFilterId = nameof(FilterType.All);
19+
PropChanged += SearchFilters_PropChanged;
20+
}
21+
22+
private void SearchFilters_PropChanged(object sender, IPropChangedEventArgs args)
23+
{
24+
var filterId = CurrentFilterId;
25+
var editions = _settingsManager.EnabledEditions;
26+
27+
if (filterId == nameof(FilterType.VisualStudio) || filterId == nameof(FilterType.VisualStudio2026))
28+
{
29+
if (!_settingsManager.EnableVisualStudio)
30+
{
31+
new ToastStatusMessage("Visual Studio is disabled in settings").Show();
32+
}
33+
}
34+
else if (filterId == nameof(FilterType.Vscode))
35+
{
36+
if (!editions.HasFlag(VisualStudioCodeEdition.Default) &&
37+
!editions.HasFlag(VisualStudioCodeEdition.System) &&
38+
!editions.HasFlag(VisualStudioCodeEdition.Custom) &&
39+
!editions.HasFlag(VisualStudioCodeEdition.CustomPath))
40+
{
41+
new ToastStatusMessage("Visual Studio Code is disabled in settings").Show();
42+
}
43+
}
44+
else if (filterId == nameof(FilterType.VscodeInsider))
45+
{
46+
if (!editions.HasFlag(VisualStudioCodeEdition.Insider))
47+
{
48+
new ToastStatusMessage("Visual Studio Code Insiders is disabled in settings").Show();
49+
}
50+
}
51+
else if (filterId == nameof(FilterType.Cursor))
52+
{
53+
if (!editions.HasFlag(VisualStudioCodeEdition.Cursor))
54+
{
55+
new ToastStatusMessage("Cursor is disabled in settings").Show();
56+
}
57+
}
58+
else if (filterId == nameof(FilterType.Antigravity))
59+
{
60+
if (!editions.HasFlag(VisualStudioCodeEdition.Antigravity))
61+
{
62+
new ToastStatusMessage("Antigravity is disabled in settings").Show();
63+
}
64+
}
65+
else if (filterId == nameof(FilterType.Windsurf))
66+
{
67+
if (!editions.HasFlag(VisualStudioCodeEdition.Windsurf))
68+
{
69+
new ToastStatusMessage("Windsurf is disabled in settings").Show();
70+
}
71+
}
72+
else if (filterId == nameof(FilterType.Folder) ||
73+
filterId == nameof(FilterType.Workspace) ||
74+
filterId == nameof(FilterType.RemoteWsl) ||
75+
filterId == nameof(FilterType.RemoteDevContainer) ||
76+
filterId == nameof(FilterType.RemoteCodespaces) ||
77+
filterId == nameof(FilterType.RemoteAttachedContainer) ||
78+
filterId == nameof(FilterType.RemoteSSHRemote))
79+
{
80+
if (editions == VisualStudioCodeEdition.None)
81+
{
82+
new ToastStatusMessage("Visual Studio Code and AI Editors are disabled in settings").Show();
83+
}
84+
}
1585
}
1686

1787
public override IFilterItem[] GetFilters()

WorkspaceLauncherForVSCode/Pages/VisualStudioCodePage.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,14 @@ IPinService pinService
6969
Name = $"Open Recent {Constant.VisualStudioCodeDisplayName}";
7070
Icon = Classes.Icon.VisualStudioAndVisualStudioCode;
7171
Id = $"{Package.Current.Id.Name}.{nameof(VisualStudioCodePage)}";
72-
var filters = new SearchFilters();
73-
filters.PropChanged += Filters_PropChanged;
74-
Filters = filters;
7572

7673
_settingsManager = settingsManager;
7774
SettingsManager = _settingsManager;
75+
76+
var filters = new SearchFilters(_settingsManager);
77+
filters.PropChanged += Filters_PropChanged;
78+
Filters = filters;
79+
7880
_vscodeService = vscodeService;
7981
_workspaceStorage = workspaceStorage;
8082
_vscodeWatcherService = vscodeWatcherService;

0 commit comments

Comments
 (0)