Skip to content

Commit 1c78193

Browse files
authored
add logging (microsoft#163882)
1 parent 7f838df commit 1c78193

File tree

4 files changed

+23
-10
lines changed

4 files changed

+23
-10
lines changed

src/vs/workbench/browser/layout.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,9 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
480480

481481
// Layout Initialization State
482482
const initialEditorsState = this.getInitialEditorsState();
483+
if (initialEditorsState) {
484+
this.logService.info('Initial editor state', initialEditorsState);
485+
}
483486
const initialLayoutState: ILayoutInitializationState = {
484487
layout: {
485488
editors: initialEditorsState?.layout
@@ -598,7 +601,7 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
598601
if (initialEditorsState) {
599602

600603
// Merge editor (single)
601-
const filesToMerge = coalesce(await pathsToEditors(initialEditorsState.filesToMerge, fileService));
604+
const filesToMerge = coalesce(await pathsToEditors(initialEditorsState.filesToMerge, fileService, this.logService));
602605
if (filesToMerge.length === 4 && isResourceEditorInput(filesToMerge[0]) && isResourceEditorInput(filesToMerge[1]) && isResourceEditorInput(filesToMerge[2]) && isResourceEditorInput(filesToMerge[3])) {
603606
return [{
604607
editor: {
@@ -612,7 +615,7 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
612615
}
613616

614617
// Diff editor (single)
615-
const filesToDiff = coalesce(await pathsToEditors(initialEditorsState.filesToDiff, fileService));
618+
const filesToDiff = coalesce(await pathsToEditors(initialEditorsState.filesToDiff, fileService, this.logService));
616619
if (filesToDiff.length === 2) {
617620
return [{
618621
editor: {
@@ -625,7 +628,7 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
625628

626629
// Normal editor (multiple)
627630
const filesToOpenOrCreate: IEditorToOpen[] = [];
628-
const resolvedFilesToOpenOrCreate = await pathsToEditors(initialEditorsState.filesToOpenOrCreate, fileService);
631+
const resolvedFilesToOpenOrCreate = await pathsToEditors(initialEditorsState.filesToOpenOrCreate, fileService, this.logService);
629632
for (let i = 0; i < resolvedFilesToOpenOrCreate.length; i++) {
630633
const resolvedFileToOpenOrCreate = resolvedFilesToOpenOrCreate[i];
631634
if (resolvedFileToOpenOrCreate) {
@@ -767,7 +770,11 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi
767770
}
768771

769772
openEditorsPromise = Promise.all(Array.from(mapEditorsToGroup).map(async ([groupId, editors]) => {
770-
return this.editorService.openEditors(Array.from(editors), groupId, { validateTrust: true });
773+
try {
774+
await this.editorService.openEditors(Array.from(editors), groupId, { validateTrust: true });
775+
} catch (error) {
776+
this.logService.error(error);
777+
}
771778
}));
772779
}
773780

src/vs/workbench/common/editor.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { IPathData } from 'vs/platform/window/common/window';
2222
import { IExtUri } from 'vs/base/common/resources';
2323
import { Schemas } from 'vs/base/common/network';
2424
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
25+
import { ILogService } from 'vs/platform/log/common/log';
2526

2627
// Static values for editor contributions
2728
export const EditorExtensions = {
@@ -1381,19 +1382,21 @@ class EditorFactoryRegistry implements IEditorFactoryRegistry {
13811382

13821383
Registry.add(EditorExtensions.EditorFactory, new EditorFactoryRegistry());
13831384

1384-
export async function pathsToEditors(paths: IPathData[] | undefined, fileService: IFileService): Promise<ReadonlyArray<IResourceEditorInput | IUntitledTextResourceEditorInput | undefined>> {
1385+
export async function pathsToEditors(paths: IPathData[] | undefined, fileService: IFileService, logService: ILogService): Promise<ReadonlyArray<IResourceEditorInput | IUntitledTextResourceEditorInput | undefined>> {
13851386
if (!paths || !paths.length) {
13861387
return [];
13871388
}
13881389

13891390
return await Promise.all(paths.map(async path => {
13901391
const resource = URI.revive(path.fileUri);
13911392
if (!resource) {
1393+
logService.info('Cannot resolve the path because it is not valid.', path);
13921394
return undefined;
13931395
}
13941396

13951397
const canHandleResource = await fileService.canHandleResource(resource);
13961398
if (!canHandleResource) {
1399+
logService.info('Cannot resolve the path because it cannot be handled', path);
13971400
return undefined;
13981401
}
13991402

@@ -1403,16 +1406,19 @@ export async function pathsToEditors(paths: IPathData[] | undefined, fileService
14031406
try {
14041407
type = (await fileService.stat(resource)).isDirectory ? FileType.Directory : FileType.Unknown;
14051408
exists = true;
1406-
} catch {
1409+
} catch (error) {
1410+
logService.error(error);
14071411
exists = false;
14081412
}
14091413
}
14101414

14111415
if (!exists && path.openOnlyIfExists) {
1416+
logService.info('Cannot resolve the path because it does not exist', path);
14121417
return undefined;
14131418
}
14141419

14151420
if (type === FileType.Directory) {
1421+
logService.info('Cannot resolve the path because it is a directory', path);
14161422
return undefined;
14171423
}
14181424

src/vs/workbench/electron-sandbox/window.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,7 @@ export class NativeWindow extends Disposable {
895895
const diffMode = !!(request.filesToDiff && (request.filesToDiff.length === 2));
896896
const mergeMode = !!(request.filesToMerge && (request.filesToMerge.length === 4));
897897

898-
const inputs = coalesce(await pathsToEditors(mergeMode ? request.filesToMerge : diffMode ? request.filesToDiff : request.filesToOpenOrCreate, this.fileService));
898+
const inputs = coalesce(await pathsToEditors(mergeMode ? request.filesToMerge : diffMode ? request.filesToDiff : request.filesToOpenOrCreate, this.fileService, this.logService));
899899
if (inputs.length) {
900900
const openedEditorPanes = await this.openResources(inputs, diffMode, mergeMode);
901901

src/vs/workbench/services/host/browser/browserHostService.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ export class BrowserHostService extends Disposable implements IHostService {
259259

260260
// Support mergeMode
261261
if (options?.mergeMode && fileOpenables.length === 4) {
262-
const editors = coalesce(await pathsToEditors(fileOpenables, this.fileService));
262+
const editors = coalesce(await pathsToEditors(fileOpenables, this.fileService, this.logService));
263263
if (editors.length !== 4 || !isResourceEditorInput(editors[0]) || !isResourceEditorInput(editors[1]) || !isResourceEditorInput(editors[2]) || !isResourceEditorInput(editors[3])) {
264264
return; // invalid resources
265265
}
@@ -289,7 +289,7 @@ export class BrowserHostService extends Disposable implements IHostService {
289289

290290
// Support diffMode
291291
if (options?.diffMode && fileOpenables.length === 2) {
292-
const editors = coalesce(await pathsToEditors(fileOpenables, this.fileService));
292+
const editors = coalesce(await pathsToEditors(fileOpenables, this.fileService, this.logService));
293293
if (editors.length !== 2 || !isResourceEditorInput(editors[0]) || !isResourceEditorInput(editors[1])) {
294294
return; // invalid resources
295295
}
@@ -334,7 +334,7 @@ export class BrowserHostService extends Disposable implements IHostService {
334334
openables = [openable];
335335
}
336336

337-
editorService.openEditors(coalesce(await pathsToEditors(openables, this.fileService)), undefined, { validateTrust: true });
337+
editorService.openEditors(coalesce(await pathsToEditors(openables, this.fileService, this.logService)), undefined, { validateTrust: true });
338338
}
339339

340340
// New Window: open into empty window

0 commit comments

Comments
 (0)