Skip to content

Commit 6685f2d

Browse files
committed
Convert toResource to return undefined instead of null
1 parent a65adc6 commit 6685f2d

9 files changed

Lines changed: 20 additions & 19 deletions

File tree

src/vs/workbench/browser/labels.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ class ResourceLabelWidget extends IconLabel {
350350

351351
setEditor(editor: IEditorInput, options?: IResourceLabelOptions): void {
352352
this.setResource({
353-
resource: withNullAsUndefined(toResource(editor, { supportSideBySide: SideBySideEditor.MASTER })),
353+
resource: toResource(editor, { supportSideBySide: SideBySideEditor.MASTER }),
354354
name: withNullAsUndefined(editor.getName()),
355355
description: withNullAsUndefined(editor.getDescription())
356356
}, options);

src/vs/workbench/browser/parts/editor/editorPicker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export class EditorPickerEntry extends QuickOpenEntryGroup {
5151
}
5252

5353
getResource() {
54-
return withNullAsUndefined(toResource(this.editor, { supportSideBySide: SideBySideEditor.MASTER }));
54+
return toResource(this.editor, { supportSideBySide: SideBySideEditor.MASTER });
5555
}
5656

5757
getAriaLabel(): string {

src/vs/workbench/browser/parts/editor/titleControl.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import { Themable } from 'vs/workbench/common/theme';
3939
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
4040
import { AnchorAlignment } from 'vs/base/browser/ui/contextview/contextview';
4141
import { IFileService } from 'vs/platform/files/common/files';
42-
import { withNullAsUndefined } from 'vs/base/common/types';
42+
import { withNullAsUndefined, withUndefinedAsNull } from 'vs/base/common/types';
4343
import { ILabelService } from 'vs/platform/label/common/label';
4444

4545
export interface IToolbarActions {
@@ -221,7 +221,7 @@ export abstract class TitleControl extends Themable {
221221
this.editorToolBarMenuDisposables = dispose(this.editorToolBarMenuDisposables);
222222

223223
// Update the resource context
224-
this.resourceContext.set(this.group.activeEditor ? toResource(this.group.activeEditor, { supportSideBySide: SideBySideEditor.MASTER }) : null);
224+
this.resourceContext.set(this.group.activeEditor ? withUndefinedAsNull(toResource(this.group.activeEditor, { supportSideBySide: SideBySideEditor.MASTER })) : null);
225225

226226
// Editor actions require the editor control to be there, so we retrieve it via service
227227
const activeControl = this.group.activeControl;
@@ -288,7 +288,7 @@ export abstract class TitleControl extends Themable {
288288

289289
// Update the resource context
290290
const currentContext = this.resourceContext.get();
291-
this.resourceContext.set(toResource(editor, { supportSideBySide: SideBySideEditor.MASTER }));
291+
this.resourceContext.set(withUndefinedAsNull(toResource(editor, { supportSideBySide: SideBySideEditor.MASTER })));
292292

293293
// Find target anchor
294294
let anchor: HTMLElement | { x: number, y: number } = node;

src/vs/workbench/common/editor.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import { Event, Emitter } from 'vs/base/common/event';
77
import { assign } from 'vs/base/common/objects';
8-
import { isUndefinedOrNull, withUndefinedAsNull } from 'vs/base/common/types';
8+
import { isUndefinedOrNull } from 'vs/base/common/types';
99
import { URI } from 'vs/base/common/uri';
1010
import { IDisposable, Disposable } from 'vs/base/common/lifecycle';
1111
import { IEditor as ICodeEditor, IEditorViewState, ScrollType, IDiffEditor } from 'vs/editor/common/editorCommon';
@@ -1002,9 +1002,9 @@ export interface IResourceOptions {
10021002
filterByScheme?: string | string[];
10031003
}
10041004

1005-
export function toResource(editor: IEditorInput | null | undefined, options?: IResourceOptions): URI | null {
1005+
export function toResource(editor: IEditorInput | undefined, options?: IResourceOptions): URI | undefined {
10061006
if (!editor) {
1007-
return null;
1007+
return undefined;
10081008
}
10091009

10101010
if (options && options.supportSideBySide && editor instanceof SideBySideEditorInput) {
@@ -1013,7 +1013,7 @@ export function toResource(editor: IEditorInput | null | undefined, options?: IR
10131013

10141014
const resource = editor.getResource();
10151015
if (!resource || !options || !options.filterByScheme) {
1016-
return withUndefinedAsNull(resource);
1016+
return resource;
10171017
}
10181018

10191019
if (Array.isArray(options.filterByScheme) && options.filterByScheme.some(scheme => resource.scheme === scheme)) {
@@ -1024,7 +1024,7 @@ export function toResource(editor: IEditorInput | null | undefined, options?: IR
10241024
return resource;
10251025
}
10261026

1027-
return null;
1027+
return undefined;
10281028
}
10291029

10301030
export const enum CloseDirection {

src/vs/workbench/contrib/files/browser/fileCommands.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
4343
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
4444
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
4545
import { UNTITLED_WORKSPACE_NAME } from 'vs/platform/workspaces/common/workspaces';
46+
import { withUndefinedAsNull } from 'vs/base/common/types';
4647

4748
// Commands
4849

@@ -349,7 +350,7 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({
349350
}
350351
});
351352

352-
let globalResourceToCompare: URI | null;
353+
let globalResourceToCompare: URI | undefined;
353354
let resourceSelectedForCompareContext: IContextKey<boolean>;
354355
CommandsRegistry.registerCommand({
355356
id: SELECT_FOR_COMPARE_COMMAND_ID,
@@ -524,9 +525,9 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({
524525
const editorService = accessor.get(IEditorService);
525526
let resource: URI | null = null;
526527
if (resourceOrObject && 'from' in resourceOrObject && resourceOrObject.from === 'menu') {
527-
resource = toResource(editorService.activeEditor);
528+
resource = withUndefinedAsNull(toResource(editorService.activeEditor));
528529
} else {
529-
resource = getResourceForCommand(resourceOrObject, accessor.get(IListService), editorService);
530+
resource = withUndefinedAsNull(getResourceForCommand(resourceOrObject, accessor.get(IListService), editorService));
530531
}
531532

532533
return save(resource, true, undefined, editorService, accessor.get(IFileService), accessor.get(IUntitledEditorService), accessor.get(ITextFileService), accessor.get(IEditorGroupsService), accessor.get(IWorkbenchEnvironmentService));

src/vs/workbench/contrib/files/browser/files.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { coalesce } from 'vs/base/common/arrays';
1414

1515
// Commands can get exeucted from a command pallete, from a context menu or from some list using a keybinding
1616
// To cover all these cases we need to properly compute the resource on which the command is being executed
17-
export function getResourceForCommand(resource: URI | object | undefined, listService: IListService, editorService: IEditorService): URI | null {
17+
export function getResourceForCommand(resource: URI | object | undefined, listService: IListService, editorService: IEditorService): URI | undefined {
1818
if (URI.isUri(resource)) {
1919
return resource;
2020
}
@@ -41,7 +41,7 @@ export function getResourceForCommand(resource: URI | object | undefined, listSe
4141
}
4242
}
4343

44-
return editorService.activeEditor ? toResource(editorService.activeEditor, { supportSideBySide: SideBySideEditor.MASTER }) : null;
44+
return editorService.activeEditor ? toResource(editorService.activeEditor, { supportSideBySide: SideBySideEditor.MASTER }) : undefined;
4545
}
4646

4747
export function getMultiSelectedResources(resource: URI | object | undefined, listService: IListService, editorService: IEditorService): Array<URI> {

src/vs/workbench/contrib/files/browser/views/openEditorsView.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import { IDragAndDropData, DataTransfers } from 'vs/base/browser/dnd';
4141
import { memoize } from 'vs/base/common/decorators';
4242
import { ElementsDragAndDropData, DesktopDragAndDropData } from 'vs/base/browser/ui/list/listView';
4343
import { URI } from 'vs/base/common/uri';
44-
import { withNullAsUndefined } from 'vs/base/common/types';
44+
import { withNullAsUndefined, withUndefinedAsNull } from 'vs/base/common/types';
4545

4646
const $ = dom.$;
4747

@@ -245,7 +245,7 @@ export class OpenEditorsView extends ViewletPanel {
245245
const element = e.elements.length ? e.elements[0] : undefined;
246246
if (element instanceof OpenEditor) {
247247
this.dirtyEditorFocusedContext.set(this.textFileService.isDirty(withNullAsUndefined(element.getResource())));
248-
this.resourceContext.set(element.getResource());
248+
this.resourceContext.set(withUndefinedAsNull(element.getResource()));
249249
} else if (!!element) {
250250
this.groupFocusedContext.set(true);
251251
}

src/vs/workbench/contrib/files/common/files.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ export class OpenEditor implements IEditorIdentifier {
258258
return this.editor.isDirty();
259259
}
260260

261-
public getResource(): URI | null {
261+
public getResource(): URI | undefined {
262262
return toResource(this.editor, { supportSideBySide: SideBySideEditor.MASTER });
263263
}
264264
}

src/vs/workbench/services/history/browser/history.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -958,7 +958,7 @@ export class HistoryService extends Disposable implements IHistoryService {
958958
getLastActiveFile(filterByScheme: string): URI | undefined {
959959
const history = this.getHistory();
960960
for (const input of history) {
961-
let resource: URI | null;
961+
let resource: URI | undefined;
962962
if (input instanceof EditorInput) {
963963
resource = toResource(input, { filterByScheme });
964964
} else {

0 commit comments

Comments
 (0)