Skip to content

Commit f842235

Browse files
Copilotsnehara99
andauthored
Make "CMake: Add ... Preset" commands available when useCMakePresets is auto (#4722)
* Initial plan * feat: make Add Preset commands available when useCMakePresets is auto When cmake.useCMakePresets is set to "auto" and no CMakePresets.json exists yet, the "Add ... Preset" commands are now available in the command palette. A new context key cmake:addPresetCommandsAvailable is set to true when the setting is not explicitly "never", allowing users to create preset files from the command palette. Fixes #2411 Co-authored-by: snehara99 <[email protected]> * docs: add changelog entry for issue #4401 Co-authored-by: snehara99 <[email protected]> * docs: move changelog entry for #4401 to Improvements section Co-authored-by: snehara99 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: snehara99 <[email protected]>
1 parent 3b33f35 commit f842235

3 files changed

Lines changed: 13 additions & 10 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Features:
1111
- Add "Set Build and Launch/Debug Target" command that sets both the build target and launch target simultaneously. [#4732](https://github.com/microsoft/vscode-cmake-tools/pull/4732)
1212

1313
Improvements:
14+
- Make "CMake: Add ... Preset" commands available in the command palette when `cmake.useCMakePresets` is set to `auto`, even before a CMakePresets.json file exists. [#4401](https://github.com/microsoft/vscode-cmake-tools/issues/4401)
1415
- Improve CMake syntax highlighting with command-scoped keyword rules, expanded variable recognition, and better generator-expression support. Remove obsolete deprecated-keyword entries that caused false positives on user-defined names. [#4709](https://github.com/microsoft/vscode-cmake-tools/issues/4709) [#4508](https://github.com/microsoft/vscode-cmake-tools/issues/4508) [#4613](https://github.com/microsoft/vscode-cmake-tools/issues/4613)
1516
- Add MSVC linker error problem matching to the Problems pane. [#4675](https://github.com/microsoft/vscode-cmake-tools/pull/4675) [@bradphelan](https://github.com/bradphelan)
1617
- Use environment variables from `cmake.environment` and `cmake.configureEnvironment` when expanding `$penv{}` macros in CMake Presets `include` paths. [#3578](https://github.com/microsoft/vscode-cmake-tools/issues/3578)

package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -153,31 +153,31 @@
153153
{
154154
"command": "cmake.addConfigurePreset",
155155
"title": "%cmake-tools.command.cmake.addConfigurePreset.title%",
156-
"when": "cmake:enableFullFeatureSet && useCMakePresets",
156+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable",
157157
"category": "CMake"
158158
},
159159
{
160160
"command": "cmake.addBuildPreset",
161161
"title": "%cmake-tools.command.cmake.addBuildPreset.title%",
162-
"when": "cmake:enableFullFeatureSet && useCMakePresets",
162+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable",
163163
"category": "CMake"
164164
},
165165
{
166166
"command": "cmake.addTestPreset",
167167
"title": "%cmake-tools.command.cmake.addTestPreset.title%",
168-
"when": "cmake:enableFullFeatureSet && useCMakePresets",
168+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable",
169169
"category": "CMake"
170170
},
171171
{
172172
"command": "cmake.addPackagePreset",
173173
"title": "%cmake-tools.command.cmake.addPackagePreset.title%",
174-
"when": "cmake:enableFullFeatureSet && useCMakePresets",
174+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable",
175175
"category": "CMake"
176176
},
177177
{
178178
"command": "cmake.addWorkflowPreset",
179179
"title": "%cmake-tools.command.cmake.addWorkflowPreset.title%",
180-
"when": "cmake:enableFullFeatureSet && useCMakePresets",
180+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable",
181181
"category": "CMake"
182182
},
183183
{
@@ -1217,23 +1217,23 @@
12171217
},
12181218
{
12191219
"command": "cmake.addConfigurePreset",
1220-
"when": "cmake:enableFullFeatureSet && useCMakePresets"
1220+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable"
12211221
},
12221222
{
12231223
"command": "cmake.addBuildPreset",
1224-
"when": "cmake:enableFullFeatureSet && useCMakePresets"
1224+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable"
12251225
},
12261226
{
12271227
"command": "cmake.addTestPreset",
1228-
"when": "cmake:enableFullFeatureSet && useCMakePresets"
1228+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable"
12291229
},
12301230
{
12311231
"command": "cmake.addPackagePreset",
1232-
"when": "cmake:enableFullFeatureSet && useCMakePresets"
1232+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable"
12331233
},
12341234
{
12351235
"command": "cmake.addWorkflowPreset",
1236-
"when": "cmake:enableFullFeatureSet && useCMakePresets"
1236+
"when": "cmake:enableFullFeatureSet && cmake:addPresetCommandsAvailable"
12371237
},
12381238
{
12391239
"command": "cmake.selectConfigurePreset",

src/projectController.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,8 @@ export class ProjectController implements vscode.Disposable {
558558
private async updateUsePresetsState(project?: CMakeProject): Promise<void> {
559559
const state: boolean = project?.useCMakePresets || false;
560560
await setContextAndStore('useCMakePresets', state);
561+
const useCMakePresetsSetting = project?.workspaceContext.config.useCMakePresets;
562+
await setContextAndStore('cmake:addPresetCommandsAvailable', useCMakePresetsSetting !== 'never' && useCMakePresetsSetting !== undefined);
561563
await this.projectStatus.refresh();
562564
const statusBar: StatusBar | undefined = getStatusBar();
563565
if (statusBar) {

0 commit comments

Comments
 (0)