Skip to content

Commit 5b6ca74

Browse files
Merge pull request #326 from reduckted/bugfix/list-references-command-multiple-output-panes
Ensured that only one "References" output pane is created by demo extension
2 parents d180dbd + 5e13b11 commit 5b6ca74

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

demo/VSSDK.TestExtension/Commands/ListReferencesCommand.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,35 @@ namespace TestExtension.Commands
88
[Command(PackageIds.ListReferences)]
99
internal sealed class ListReferencesCommand : BaseCommand<ListReferencesCommand>
1010
{
11+
OutputWindowPane _pane;
12+
1113
protected override async Task ExecuteAsync(OleMenuCmdEventArgs e)
1214
{
1315
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
1416

15-
OutputWindowPane pane = await VS.Windows.CreateOutputWindowPaneAsync("References");
16-
await pane.ActivateAsync();
17+
if (_pane is null)
18+
{
19+
_pane = await VS.Windows.CreateOutputWindowPaneAsync("References");
20+
}
21+
22+
await _pane.ActivateAsync();
1723

1824
foreach (Project project in await VS.Solutions.GetAllProjectsAsync())
1925
{
20-
await pane.WriteLineAsync(project.Name);
26+
await _pane.WriteLineAsync(project.Name);
2127
foreach (Reference reference in project.References.OrderBy(x => x.Name))
2228
{
2329
if (reference is AssemblyReference assemblyRef)
2430
{
25-
await pane.WriteLineAsync($" * {reference.Name} (Assembly: {assemblyRef.FullPath})");
31+
await _pane.WriteLineAsync($" * {reference.Name} (Assembly: {assemblyRef.FullPath})");
2632
}
2733
else if (reference is ProjectReference projectRef)
2834
{
29-
await pane.WriteLineAsync($" * {reference.Name} (Project: {(await projectRef.GetProjectAsync())?.Name ?? "?"})");
35+
await _pane.WriteLineAsync($" * {reference.Name} (Project: {(await projectRef.GetProjectAsync())?.Name ?? "?"})");
3036
}
3137
else
3238
{
33-
await pane.WriteLineAsync($" * {reference.Name} (Unknown)");
39+
await _pane.WriteLineAsync($" * {reference.Name} (Unknown)");
3440
}
3541
}
3642
}

0 commit comments

Comments
 (0)