Skip to content

Commit dc92537

Browse files
committed
add IOpenConfiguration.noRecentEntry
1 parent b19c690 commit dc92537

7 files changed

Lines changed: 19 additions & 17 deletions

File tree

src/vs/code/electron-main/app.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -574,16 +574,17 @@ export class CodeApplication extends Disposable {
574574
const hasCliArgs = hasArgs(args._);
575575
const hasFolderURIs = hasArgs(args['folder-uri']);
576576
const hasFileURIs = hasArgs(args['file-uri']);
577+
const noRecentEntry = args['skip-add-to-recently-opened'] === true;
577578

578579
if (args['new-window'] && !hasCliArgs && !hasFolderURIs && !hasFileURIs) {
579-
return this.windowsMainService.open({ context, cli: args, forceNewWindow: true, forceEmpty: true, initialStartup: true }); // new window if "-n" was used without paths
580+
return this.windowsMainService.open({ context, cli: args, forceNewWindow: true, forceEmpty: true, noRecentEntry, initialStartup: true }); // new window if "-n" was used without paths
580581
}
581582

582583
if (macOpenFiles && macOpenFiles.length && !hasCliArgs && !hasFolderURIs && !hasFileURIs) {
583-
return this.windowsMainService.open({ context: OpenContext.DOCK, cli: args, urisToOpen: macOpenFiles.map(file => ({ uri: URI.file(file) })), initialStartup: true }); // mac: open-file event received on startup
584+
return this.windowsMainService.open({ context: OpenContext.DOCK, cli: args, urisToOpen: macOpenFiles.map(file => ({ uri: URI.file(file) })), noRecentEntry, initialStartup: true }); // mac: open-file event received on startup
584585
}
585586

586-
return this.windowsMainService.open({ context, cli: args, forceNewWindow: args['new-window'] || (!hasCliArgs && args['unity-launch']), diffMode: args.diff, initialStartup: true }); // default: read paths from cli
587+
return this.windowsMainService.open({ context, cli: args, forceNewWindow: args['new-window'] || (!hasCliArgs && args['unity-launch']), diffMode: args.diff, noRecentEntry, initialStartup: true }); // default: read paths from cli
587588
}
588589

589590
private afterWindowOpen(accessor: ServicesAccessor): void {

src/vs/code/electron-main/windows.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ export class WindowsManager implements IWindowsMainService {
489489

490490
// Remember in recent document list (unless this opens for extension development)
491491
// Also do not add paths when files are opened for diffing, only if opened individually
492-
if (!usedWindows.some(w => w.isExtensionDevelopmentHost) && !openConfig.diffMode && !this.environmentService.skipAddToRecentlyOpened) {
492+
if (!usedWindows.some(w => w.isExtensionDevelopmentHost) && !openConfig.diffMode && !openConfig.noRecentEntry) {
493493
const recents: IRecent[] = [];
494494
for (let pathToOpen of pathsToOpen) {
495495
if (pathToOpen.workspace) {
@@ -1216,7 +1216,7 @@ export class WindowsManager implements IWindowsMainService {
12161216
}
12171217

12181218
// Open it
1219-
this.open({ context: openConfig.context, cli: openConfig.cli, forceNewWindow: true, forceEmpty: !cliArgs.length && !folderUris.length && !fileUris.length, userEnv: openConfig.userEnv });
1219+
this.open({ context: openConfig.context, cli: openConfig.cli, forceNewWindow: true, forceEmpty: !cliArgs.length && !folderUris.length && !fileUris.length, userEnv: openConfig.userEnv, noRecentEntry: true });
12201220
}
12211221

12221222
private openInBrowserWindow(options: IOpenBrowserWindowOptions): ICodeWindow {

src/vs/platform/launch/electron-main/launchService.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,8 @@ export class LaunchService implements ILaunchService {
215215
preferNewWindow: !args['reuse-window'] && !args.wait,
216216
forceReuseWindow: args['reuse-window'],
217217
diffMode: args.diff,
218-
addMode: args.add
218+
addMode: args.add,
219+
noRecentEntry: !!args['skip-add-to-recently-opened']
219220
});
220221
}
221222

src/vs/platform/windows/common/windows.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ export interface IOpenSettings {
182182
forceOpenWorkspaceAsFile?: boolean;
183183
diffMode?: boolean;
184184
addMode?: boolean;
185+
noRecentEntry?: boolean;
185186
args?: ParsedArgs;
186187
}
187188

src/vs/platform/windows/electron-main/windows.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ export interface IOpenConfiguration {
134134
addMode?: boolean;
135135
readonly forceOpenWorkspaceAsFile?: boolean;
136136
readonly initialStartup?: boolean;
137+
readonly noRecentEntry?: boolean;
137138
}
138139

139140
export interface ISharedProcess {

src/vs/platform/windows/electron-main/windowsService.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ export class WindowsService implements IWindowsService, IURLHandler, IDisposable
273273
});
274274
}
275275

276-
async openWindow(windowId: number, urisToOpen: IURIToOpen[], options?: IOpenSettings): Promise<void> {
276+
async openWindow(windowId: number, urisToOpen: IURIToOpen[], options: IOpenSettings = {}): Promise<void> {
277277
this.logService.trace('windowsService#openWindow');
278278
if (!urisToOpen || !urisToOpen.length) {
279279
return undefined;
@@ -283,12 +283,13 @@ export class WindowsService implements IWindowsService, IURLHandler, IDisposable
283283
context: OpenContext.API,
284284
contextWindowId: windowId,
285285
urisToOpen: urisToOpen,
286-
cli: options && options.args ? { ...this.environmentService.args, ...options.args } : this.environmentService.args,
287-
forceNewWindow: options && options.forceNewWindow,
288-
forceReuseWindow: options && options.forceReuseWindow,
289-
forceOpenWorkspaceAsFile: options && options.forceOpenWorkspaceAsFile,
290-
diffMode: options && options.diffMode,
291-
addMode: options && options.addMode
286+
cli: options.args ? { ...this.environmentService.args, ...options.args } : this.environmentService.args,
287+
forceNewWindow: options.forceNewWindow,
288+
forceReuseWindow: options.forceReuseWindow,
289+
forceOpenWorkspaceAsFile: options.forceOpenWorkspaceAsFile,
290+
diffMode: options.diffMode,
291+
addMode: options.addMode,
292+
noRecentEntry: options.noRecentEntry
292293
});
293294
}
294295

src/vs/workbench/api/node/apiCommands.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,7 @@ export class OpenFolderAPICommand {
4848
if (!uri) {
4949
return executor.executeCommand('_files.pickFolderAndOpen', arg.forceNewWindow);
5050
}
51-
const options: IOpenSettings = { forceNewWindow: arg.forceNewWindow };
52-
if (arg.noRecentEntry) {
53-
options.args = { _: [], 'skip-add-to-recently-opened': true };
54-
}
51+
const options: IOpenSettings = { forceNewWindow: arg.forceNewWindow, noRecentEntry: arg.noRecentEntry };
5552
uri = URI.revive(uri);
5653
return executor.executeCommand('_files.windowOpen', [{ uri, label: arg.recentEntryLabel }], options);
5754
}

0 commit comments

Comments
 (0)