Skip to content

Commit c96aaab

Browse files
author
Benjamin Pasero
committed
workspace - do not allow workspace files without .code-workspace suffix (microsoft#84818)
1 parent 40d5fd2 commit c96aaab

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

src/vs/workbench/browser/actions/workspaceActions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { IHostService } from 'vs/workbench/services/host/browser/host';
2222
import { KeyChord, KeyCode, KeyMod } from 'vs/base/common/keyCodes';
2323
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
2424
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
25-
import { IWorkspacesService } from 'vs/platform/workspaces/common/workspaces';
25+
import { IWorkspacesService, hasWorkspaceFileExtension } from 'vs/platform/workspaces/common/workspaces';
2626

2727
export class OpenFileAction extends Action {
2828

@@ -213,7 +213,7 @@ export class SaveWorkspaceAsAction extends Action {
213213

214214
async run(): Promise<any> {
215215
const configPathUri = await this.workspaceEditingService.pickNewWorkspacePath();
216-
if (configPathUri) {
216+
if (configPathUri && hasWorkspaceFileExtension(configPathUri)) {
217217
switch (this.contextService.getWorkbenchState()) {
218218
case WorkbenchState.EMPTY:
219219
case WorkbenchState.FOLDER:

src/vs/workbench/services/workspaces/electron-browser/workspaceEditingService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { URI } from 'vs/base/common/uri';
88
import * as nls from 'vs/nls';
99
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
1010
import { IJSONEditingService } from 'vs/workbench/services/configuration/common/jsonEditing';
11-
import { IWorkspacesService, isUntitledWorkspace, IWorkspaceIdentifier } from 'vs/platform/workspaces/common/workspaces';
11+
import { IWorkspacesService, isUntitledWorkspace, IWorkspaceIdentifier, hasWorkspaceFileExtension } from 'vs/platform/workspaces/common/workspaces';
1212
import { WorkspaceService } from 'vs/workbench/services/configuration/browser/configurationService';
1313
import { IStorageService } from 'vs/platform/storage/common/storage';
1414
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
@@ -124,7 +124,7 @@ export class NativeWorkspaceEditingService extends AbstractWorkspaceEditingServi
124124
// Save: save workspace, but do not veto unload if path provided
125125
case ConfirmResult.SAVE: {
126126
const newWorkspacePath = await this.pickNewWorkspacePath();
127-
if (!newWorkspacePath) {
127+
if (!newWorkspacePath || !hasWorkspaceFileExtension(newWorkspacePath)) {
128128
return true; // keep veto if no target was provided
129129
}
130130

0 commit comments

Comments
 (0)