Skip to content

Commit e97cf68

Browse files
committed
Strict null work on explorer and files
1 parent cb4b80b commit e97cf68

3 files changed

Lines changed: 11 additions & 7 deletions

File tree

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,8 @@ class PasteFileAction extends BaseErrorReportingAction {
513513
this.explorerService.setToCopy([], false);
514514
}
515515
if (!stat.isDirectory) {
516-
return this.editorService.openEditor({ resource: stat.resource, options: { pinned: true, preserveFocus: true } });
516+
return this.editorService.openEditor({ resource: stat.resource, options: { pinned: true, preserveFocus: true } })
517+
.then(types.withNullAsUndefined);
517518
}
518519

519520
return undefined;

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService
4949
import { isMacintosh } from 'vs/base/common/platform';
5050
import { KeyCode } from 'vs/base/common/keyCodes';
5151
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
52+
import { withNullAsUndefined } from 'vs/base/common/types';
5253

5354
export class ExplorerView extends ViewletPanel {
5455
static readonly ID: string = 'workbench.explorer.fileView';
@@ -258,7 +259,7 @@ export class ExplorerView extends ViewletPanel {
258259
// No action needed, active file is already focused
259260
return;
260261
}
261-
this.explorerService.select(this.getActiveFile(), reveal);
262+
this.explorerService.select(activeFile, reveal);
262263
} else if (deselect) {
263264
this.tree.setSelection([]);
264265
this.tree.setFocus([]);
@@ -408,7 +409,7 @@ export class ExplorerView extends ViewletPanel {
408409
private onFocusChanged(elements: ExplorerItem[]): void {
409410
const stat = elements && elements.length ? elements[0] : undefined;
410411
const isSingleFolder = this.contextService.getWorkbenchState() === WorkbenchState.FOLDER;
411-
const resource = stat ? stat.resource : isSingleFolder ? this.contextService.getWorkspace().folders[0].uri : undefined;
412+
const resource = stat ? stat.resource : isSingleFolder ? this.contextService.getWorkspace().folders[0].uri : null;
412413
this.resourceContext.set(resource);
413414
this.folderContext.set((isSingleFolder && !stat) || !!stat && stat.isDirectory);
414415
this.readonlyContext.set(!!stat && stat.isReadonly);
@@ -504,7 +505,7 @@ export class ExplorerView extends ViewletPanel {
504505
}
505506

506507
// check for files
507-
return toResource(input, { supportSideBySide: true });
508+
return withNullAsUndefined(toResource(input, { supportSideBySide: true }));
508509
}
509510

510511
private onSelectItem(fileStat: ExplorerItem, reveal = this.autoReveal): Promise<void> {

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -638,9 +638,11 @@ export class FileDragAndDrop implements ITreeDragAndDrop<ExplorerItem> {
638638

639639
// Check for name collisions
640640
const targetNames = new Set<string>();
641-
targetStat.children.forEach((child) => {
642-
targetNames.add(isLinux ? child.name : child.name.toLowerCase());
643-
});
641+
if (targetStat.children) {
642+
targetStat.children.forEach((child) => {
643+
targetNames.add(isLinux ? child.name : child.name.toLowerCase());
644+
});
645+
}
644646

645647
let overwritePromise: Promise<IConfirmationResult> = Promise.resolve({ confirmed: true });
646648
if (resources.some(resource => {

0 commit comments

Comments
 (0)