Skip to content

Commit 4b867a9

Browse files
committed
Update VS extension and fix bugs + add package registry to docs website
1 parent 877ea66 commit 4b867a9

76 files changed

Lines changed: 7633 additions & 397 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeSettings.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"_comment": "This file is generated by cforge VS extension to disable automatic CMake configuration. cforge handles the build system.",
3+
"configurations": [
4+
{
5+
"name": "cforge-managed",
6+
"generator": "Ninja",
7+
"configurationType": "Debug",
8+
"buildRoot": "${projectDir}\\build",
9+
"installRoot": "${projectDir}\\install",
10+
"cmakeCommandArgs": "",
11+
"buildCommandArgs": "",
12+
"ctestCommandArgs": "",
13+
"inheritEnvironments": [ "msvc_x64_x64" ],
14+
"variables": []
15+
}
16+
]
17+
}

cforge-vs/CforgeVS.csproj

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
<PropertyGroup>
44
<MinimumVisualStudioVersion>17.0</MinimumVisualStudioVersion>
55
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
6+
<!-- Suppress Newtonsoft.Json version check warning from Community.VisualStudio.Toolkit -->
7+
<CVST_DisableNewtonsoftJsonVersionCheck>true</CVST_DisableNewtonsoftJsonVersionCheck>
68
</PropertyGroup>
79
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
810
<PropertyGroup>
@@ -59,6 +61,9 @@
5961
<Compile Include="src\OpenFolderSupport.cs" />
6062
<Compile Include="src\VcxprojGenerator.cs" />
6163
<Compile Include="src\PackageIds.cs" />
64+
<Compile Include="src\WorkspaceState.cs" />
65+
<Compile Include="src\Models\BuildModels.cs" />
66+
<Compile Include="src\Models\TestModels.cs" />
6267
<Compile Include="src\CforgeOptionsPage.cs">
6368
<SubType>Component</SubType>
6469
</Compile>
@@ -84,6 +89,11 @@
8489
<Compile Include="ToolWindows\CforgeExplorerWindow.xaml.cs">
8590
<DependentUpon>CforgeExplorerWindow.xaml</DependentUpon>
8691
</Compile>
92+
<!-- TestResultsWindow -->
93+
<Compile Include="ToolWindows\TestResultsWindow.cs" />
94+
<Compile Include="ToolWindows\TestResultsWindow.xaml.cs">
95+
<DependentUpon>TestResultsWindow.xaml</DependentUpon>
96+
</Compile>
8797
<!-- Dialogs -->
8898
<Compile Include="Dialogs\InputDialog.xaml.cs">
8999
<DependentUpon>InputDialog.xaml</DependentUpon>
@@ -116,6 +126,10 @@
116126
<SubType>Designer</SubType>
117127
<Generator>MSBuild:Compile</Generator>
118128
</Page>
129+
<Page Include="ToolWindows\TestResultsWindow.xaml">
130+
<SubType>Designer</SubType>
131+
<Generator>MSBuild:Compile</Generator>
132+
</Page>
119133
<Page Include="ToolWindows\Dialogs\AddDependencyDialog.xaml">
120134
<SubType>Designer</SubType>
121135
<Generator>MSBuild:Compile</Generator>
@@ -143,6 +157,7 @@
143157
</ItemGroup>
144158
<ItemGroup>
145159
<PackageReference Include="Community.VisualStudio.Toolkit.17" Version="17.0.507" />
160+
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
146161
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="17.11.414">
147162
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
148163
<PrivateAssets>all</PrivateAssets>

cforge-vs/CforgeVSPackage.vsct

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,38 @@
259259
</Strings>
260260
</Button>
261261

262+
<Button guid="guidCforgeMenuGroup" id="DepsSearchCommandId" priority="0x0250" type="Button">
263+
<Parent guid="guidCforgeMenuGroup" id="DepsSubMenuGroup"/>
264+
<Strings>
265+
<ButtonText>Search Packages...</ButtonText>
266+
<ToolTipText>Search for packages in the registry</ToolTipText>
267+
</Strings>
268+
</Button>
269+
270+
<Button guid="guidCforgeMenuGroup" id="DepsListCommandId" priority="0x0251" type="Button">
271+
<Parent guid="guidCforgeMenuGroup" id="DepsSubMenuGroup"/>
272+
<Strings>
273+
<ButtonText>List Dependencies</ButtonText>
274+
<ToolTipText>List all project dependencies</ToolTipText>
275+
</Strings>
276+
</Button>
277+
278+
<Button guid="guidCforgeMenuGroup" id="DepsInfoCommandId" priority="0x0252" type="Button">
279+
<Parent guid="guidCforgeMenuGroup" id="DepsSubMenuGroup"/>
280+
<Strings>
281+
<ButtonText>Package Info...</ButtonText>
282+
<ToolTipText>Show information about a package</ToolTipText>
283+
</Strings>
284+
</Button>
285+
286+
<Button guid="guidCforgeMenuGroup" id="DepsTreeCommandId" priority="0x0253" type="Button">
287+
<Parent guid="guidCforgeMenuGroup" id="DepsSubMenuGroup"/>
288+
<Strings>
289+
<ButtonText>Dependency Tree</ButtonText>
290+
<ToolTipText>Show the dependency tree</ToolTipText>
291+
</Strings>
292+
</Button>
293+
262294
<!-- ========== TOOL COMMANDS ========== -->
263295
<Button guid="guidCforgeMenuGroup" id="FormatCommandId" priority="0x0300" type="Button">
264296
<Parent guid="guidCforgeMenuGroup" id="CforgeToolMenuGroup"/>
@@ -308,6 +340,22 @@
308340
</Strings>
309341
</Button>
310342

343+
<Button guid="guidCforgeMenuGroup" id="CachePruneCommandId" priority="0x0330" type="Button">
344+
<Parent guid="guidCforgeMenuGroup" id="CforgeToolMenuGroup"/>
345+
<Strings>
346+
<ButtonText>Prune Cache</ButtonText>
347+
<ToolTipText>Remove unused packages from cache</ToolTipText>
348+
</Strings>
349+
</Button>
350+
351+
<Button guid="guidCforgeMenuGroup" id="CachePathCommandId" priority="0x0331" type="Button">
352+
<Parent guid="guidCforgeMenuGroup" id="CforgeToolMenuGroup"/>
353+
<Strings>
354+
<ButtonText>Open Cache Folder</ButtonText>
355+
<ToolTipText>Show cache location and open in Explorer</ToolTipText>
356+
</Strings>
357+
</Button>
358+
311359
<!-- ========== PROJECT/TEMPLATE COMMANDS ========== -->
312360
<Button guid="guidCforgeMenuGroup" id="NewClassCommandId" priority="0x0400" type="Button">
313361
<Parent guid="guidCforgeMenuGroup" id="AddNewSubMenuGroup"/>
@@ -421,6 +469,16 @@
421469
</Strings>
422470
</Button>
423471

472+
<!-- cforge Test Results in View > Other Windows -->
473+
<Button guid="guidCforgeMenuGroup" id="OpenTestResultsCommandId" priority="0x0103" type="Button">
474+
<Parent guid="guidCforgeMenuGroup" id="CforgeViewMenuGroup"/>
475+
<Icon guid="guidSHLMainMenu" id="21"/>
476+
<Strings>
477+
<ButtonText>cforge Test Results</ButtonText>
478+
<ToolTipText>Open the cforge Test Results panel</ToolTipText>
479+
</Strings>
480+
</Button>
481+
424482
<!-- ========== TOOLBAR BUTTONS ========== -->
425483
<Button guid="guidCforgeToolbar" id="ToolbarBuildCommandId" priority="0x0100" type="Button">
426484
<Parent guid="guidCforgeToolbar" id="CforgeToolbarBuildGroup"/>
@@ -543,6 +601,10 @@
543601
<IDSymbol name="DepsOutdatedCommandId" value="0x0205"/>
544602
<IDSymbol name="DepsLockCommandId" value="0x0206"/>
545603
<IDSymbol name="VcpkgInstallCommandId" value="0x0207"/>
604+
<IDSymbol name="DepsSearchCommandId" value="0x0208"/>
605+
<IDSymbol name="DepsListCommandId" value="0x0209"/>
606+
<IDSymbol name="DepsInfoCommandId" value="0x020A"/>
607+
<IDSymbol name="DepsTreeCommandId" value="0x020B"/>
546608

547609
<!-- Tool commands -->
548610
<IDSymbol name="FormatCommandId" value="0x0300"/>
@@ -551,6 +613,8 @@
551613
<IDSymbol name="DoctorCommandId" value="0x0303"/>
552614
<IDSymbol name="ProjectInfoCommandId" value="0x0304"/>
553615
<IDSymbol name="CleanGeneratedFilesCommandId" value="0x0305"/>
616+
<IDSymbol name="CachePruneCommandId" value="0x030B"/>
617+
<IDSymbol name="CachePathCommandId" value="0x030C"/>
554618

555619
<!-- Project/Template commands -->
556620
<IDSymbol name="InitProjectCommandId" value="0x0400"/>
@@ -568,6 +632,7 @@
568632

569633
<!-- Tool Windows -->
570634
<IDSymbol name="OpenCforgeExplorerCommandId" value="0x5005"/>
635+
<IDSymbol name="OpenTestResultsCommandId" value="0x5009"/>
571636
</GuidSymbol>
572637

573638
<GuidSymbol name="guidCforgeToolbar" value="{7a8b9c0d-3e4f-5a6b-7c8d-9e0f1a2b3c4d}">

cforge-vs/TestAdapter/CforgeTestDiscoverer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ public void DiscoverTests(IEnumerable<string> sources, IDiscoveryContext discove
6464
}
6565

6666
// Skip if we've already discovered this project
67-
if (_discoveredProjects.Contains(projectDir)) continue;
68-
_discoveredProjects.Add(projectDir);
67+
if (_discoveredProjects.Contains(projectDir!)) continue;
68+
_discoveredProjects.Add(projectDir!);
6969

7070
// Verify it's a cforge project with tests
7171
if (!File.Exists(testSource)) continue;
7272

73-
var testsDir = Path.Combine(projectDir, "tests");
73+
var testsDir = Path.Combine(projectDir!, "tests");
7474
if (!Directory.Exists(testsDir))
7575
{
7676
logger?.SendMessage(TestMessageLevel.Informational, $"CForge: No tests directory in {projectDir}");
@@ -79,7 +79,7 @@ public void DiscoverTests(IEnumerable<string> sources, IDiscoveryContext discove
7979

8080
logger?.SendMessage(TestMessageLevel.Informational, $"CForge: Discovering tests in {projectDir}");
8181

82-
var tests = DiscoverTestsInProject(projectDir, testSource, logger);
82+
var tests = DiscoverTestsInProject(projectDir!, testSource!, logger);
8383
logger?.SendMessage(TestMessageLevel.Informational, $"CForge: Found {tests.Count} tests");
8484

8585
foreach (var test in tests)

cforge-vs/ToolWindows/CforgeExplorerWindow.xaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,11 @@
113113
<ComboBoxItem Content="Debug" IsSelected="True"/>
114114
<ComboBoxItem Content="Release"/>
115115
</ComboBox>
116+
117+
<!-- Member/Project Dropdown (only visible in workspace mode) -->
118+
<ComboBox x:Name="MemberCombo" Width="140" Margin="4,0" VerticalAlignment="Center"
119+
Visibility="Collapsed" SelectionChanged="MemberCombo_SelectionChanged"
120+
ToolTip="Active Project (Startup Project)"/>
116121
</StackPanel>
117122
</Border>
118123

@@ -169,6 +174,32 @@
169174
</MenuItem.Icon>
170175
</MenuItem>
171176
<Separator/>
177+
<!-- Workspace Member Commands -->
178+
<MenuItem x:Name="SetStartupProjectMenuItem" Header="Set as Startup Project" Click="SetStartupProject_Click"
179+
Visibility="Collapsed">
180+
<MenuItem.Icon>
181+
<imaging:CrispImage Width="16" Height="16" Moniker="{x:Static catalog:KnownMonikers.Run}"/>
182+
</MenuItem.Icon>
183+
</MenuItem>
184+
<MenuItem x:Name="BuildMemberMenuItem" Header="Build This Project" Click="BuildMember_Click"
185+
Visibility="Collapsed">
186+
<MenuItem.Icon>
187+
<imaging:CrispImage Width="16" Height="16" Moniker="{x:Static catalog:KnownMonikers.BuildSelection}"/>
188+
</MenuItem.Icon>
189+
</MenuItem>
190+
<MenuItem x:Name="RunMemberMenuItem" Header="Run This Project" Click="RunMember_Click"
191+
Visibility="Collapsed">
192+
<MenuItem.Icon>
193+
<imaging:CrispImage Width="16" Height="16" Moniker="{x:Static catalog:KnownMonikers.Run}"/>
194+
</MenuItem.Icon>
195+
</MenuItem>
196+
<MenuItem x:Name="DebugMemberMenuItem" Header="Debug This Project" Click="DebugMember_Click"
197+
Visibility="Collapsed">
198+
<MenuItem.Icon>
199+
<imaging:CrispImage Width="16" Height="16" Moniker="{x:Static catalog:KnownMonikers.Play}"/>
200+
</MenuItem.Icon>
201+
</MenuItem>
202+
<Separator x:Name="MemberMenuSeparator" Visibility="Collapsed"/>
172203
<MenuItem Header="New Class..." Click="NewClass_Click">
173204
<MenuItem.Icon>
174205
<imaging:CrispImage Width="16" Height="16" Moniker="{x:Static catalog:KnownMonikers.AddDocument}"/>

0 commit comments

Comments
 (0)