Skip to content

Commit 890772b

Browse files
committed
Add detail into help page
1 parent 9bb7413 commit 890772b

File tree

4 files changed

+25
-21
lines changed

4 files changed

+25
-21
lines changed
Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,51 @@
11
// Copyright (c) 2025 tanchekwei
22
// Licensed under the MIT License. See the LICENSE file in the project root for details.
3+
using System.Collections.Generic;
34
using System.Reflection;
45
using Microsoft.CommandPalette.Extensions;
56
using Microsoft.CommandPalette.Extensions.Toolkit;
67
using WorkspaceLauncherForVSCode.Classes;
78
using WorkspaceLauncherForVSCode.Commands;
89

9-
using OpenUrlCommand = WorkspaceLauncherForVSCode.Commands.OpenUrlCommand;
10-
1110
namespace WorkspaceLauncherForVSCode.Pages
1211
{
1312
public sealed partial class HelpPage : ListPage
1413
{
1514
private readonly ListItem _settingsItem;
1615
private readonly CountTracker _countTracker;
17-
public HelpPage(SettingsManager settingsManager, CountTracker countTracker)
16+
private readonly VisualStudioCodeWorkspace _workspace;
17+
public HelpPage(SettingsManager settingsManager, CountTracker countTracker, VisualStudioCodeWorkspace? workspace)
1818
{
1919
Name = "Help";
2020
Icon = Classes.Icon.Help;
2121
Id = "HelpPage";
2222
_settingsItem = new ListItem(settingsManager.Settings.SettingsPage) { Title = "Setting", Icon = Classes.Icon.Setting };
2323
_countTracker = countTracker;
24+
_workspace = workspace;
2425
}
2526

2627
public override IListItem[] GetItems()
2728
{
2829
StaticHelpItems.CountItems[0].Title = _countTracker[CountType.VisualStudio].ToString();
2930
StaticHelpItems.CountItems[1].Title = _countTracker[CountType.VisualStudioCode].ToString();
3031
StaticHelpItems.CountItems[2].Title = _countTracker[CountType.Total].ToString();
31-
return [
32+
33+
var items = new List<IListItem>
34+
{
3235
StaticHelpItems.ReportBug,
3336
StaticHelpItems.ViewSource,
34-
..StaticHelpItems.CountItems,
35-
StaticHelpItems.ExtensionVersion,
36-
StaticHelpItems.SettingsItem,
37-
StaticHelpItems.OpenSettings,
38-
];
37+
};
38+
39+
items.AddRange(StaticHelpItems.CountItems);
40+
41+
items.Add(StaticHelpItems.ExtensionVersion);
42+
items.Add(StaticHelpItems.SettingsItem);
43+
items.Add(StaticHelpItems.OpenSettings);
44+
45+
if (_workspace != null)
46+
items.Add(new ListItem(new DetailPage(_workspace)));
47+
48+
return items.ToArray();
3949
}
4050
}
4151
}

WorkspaceLauncherForVSCode/Pages/VisualStudioCodePage.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ public VisualStudioCodePage
4747
SettingsListener settingsListener,
4848
WorkspaceStorage workspaceStorage,
4949
RefreshWorkspacesCommand refreshWorkspacesCommand,
50-
HelpPage helpPage,
5150
CountTracker countTracker
5251
)
5352
{
@@ -63,7 +62,7 @@ CountTracker countTracker
6362
_vscodeService = vscodeService;
6463
_workspaceStorage = workspaceStorage;
6564
_countTracker = countTracker;
66-
_helpCommandContextItem = new CommandContextItem(helpPage);
65+
_helpCommandContextItem = new CommandContextItem(new HelpPage(settingsManager, countTracker, null));
6766
_refreshWorkspacesCommand = refreshWorkspacesCommand;
6867
_refreshWorkspacesCommand.TriggerRefresh += (s, e) => StartRefresh();
6968
_refreshWorkspacesCommandContextItem = new CommandContextItem(_refreshWorkspacesCommand)
@@ -255,7 +254,7 @@ private void UpdateWorkspaceList(List<VisualStudioCodeWorkspace> workspaces, Can
255254
using var logger = new TimeLogger();
256255
#endif
257256
var newItems = workspaces
258-
.Select(w => WorkspaceItemFactory.Create(w, this, _workspaceStorage, _settingsManager, _refreshWorkspacesCommandContextItem, _helpCommandContextItem))
257+
.Select(w => WorkspaceItemFactory.Create(w, this, _workspaceStorage, _settingsManager, _countTracker, _refreshWorkspacesCommandContextItem))
259258
.ToList();
260259

261260
lock (_itemsLock)
@@ -292,7 +291,7 @@ public Task TogglePinStatus(string path)
292291
workspace.PinDateTime = workspace.PinDateTime.HasValue ? null : DateTime.UtcNow;
293292
if (_allItems.Remove(itemToUpdate))
294293
{
295-
_allItems.Add(WorkspaceItemFactory.Create(workspace, this, _workspaceStorage, _settingsManager, _refreshWorkspacesCommandContextItem, _helpCommandContextItem));
294+
_allItems.Add(WorkspaceItemFactory.Create(workspace, this, _workspaceStorage, _settingsManager, _countTracker, _refreshWorkspacesCommandContextItem));
296295
}
297296

298297
_cachedFilteredItems = WorkspaceFilter.Filter(SearchText, _allItems, _settingsManager.SearchBy);
@@ -344,9 +343,6 @@ public void Dispose()
344343
_cancellationTokenSource.Cancel();
345344
_cancellationTokenSource.Dispose();
346345
_settingsListener.PageSettingsChanged -= OnPageSettingsChanged;
347-
//TotalChanged -= _helpPage.UpdateTotal;
348-
//TotalVisualStudioChanged -= _helpPage.UpdateTotalVisualStudio;
349-
//TotalVisualStudioCodeChanged -= _helpPage.UpdateTotalVisualStudioCode;
350346
_workspaceStorage.Dispose();
351347
_refreshSemaphore.Dispose();
352348
}

WorkspaceLauncherForVSCode/WorkspaceLauncherForVSCode.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ public WorkspaceLauncherForVSCode(ManualResetEvent extensionDisposedEvent)
3131

3232
// Register dependencies
3333
services.AddSingleton<SettingsManager>();
34-
services.AddSingleton<HelpPage>();
3534
services.AddSingleton<IVisualStudioCodeService, VisualStudioCodeService>();
3635
services.AddSingleton<SettingsListener>();
3736
services.AddSingleton<VisualStudioCodePage>();

WorkspaceLauncherForVSCode/Workspaces/WorkspaceItemFactory.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ public static ListItem Create(
2525
VisualStudioCodePage page,
2626
WorkspaceStorage workspaceStorage,
2727
SettingsManager settingsManager,
28-
CommandContextItem refreshCommandContextItem,
29-
CommandContextItem helpCommandContextItem)
28+
CountTracker countTracker,
29+
CommandContextItem refreshCommandContextItem)
3030
{
3131
#if DEBUG
3232
using var logger = new TimeLogger();
@@ -139,8 +139,7 @@ public static ListItem Create(
139139
break;
140140
}
141141

142-
moreCommands.Add(helpCommandContextItem);
143-
moreCommands.Add(new CommandContextItem(new DetailPage(workspace)));
142+
moreCommands.Add(new CommandContextItem(new HelpPage(settingsManager, countTracker, workspace)));
144143
moreCommands.Add(new CommandContextItem(new CopyPathCommand(workspace.WindowsPath ?? string.Empty)));
145144
moreCommands.Add(refreshCommandContextItem);
146145
moreCommands.Add(new CommandContextItem(new PinWorkspaceCommand(workspace, page, workspaceStorage)));

0 commit comments

Comments
 (0)