src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.ts/BinaryFileEditor/openInternal
class BinaryFileEditor:	private async openInternal(input: EditorInput, options: IEditorOptions | undefined): Promise<void> {
		if (input instanceof FileEditorInput && this.group && this.group.activeEditor) {

			// We operate on the active editor here to support re-opening
			// diff editors where `input` may just be one side of the
			// diff editor.
			// Since `openInternal` can only ever be selected from the
			// active editor of the group, this is a safe assumption.
			// (https://github.com/microsoft/vscode/issues/124222)
			const editor = this.group.activeEditor;

			// Enforce to open the input as text to enable our text based viewer
			input.setForceOpenAsText();

			// Try to let the user pick an override if there is one availabe
			let overridenInput: ReturnedOverride | undefined = await this.editorOverrideService.resolveEditorInput({ resource: editor.resource, options: { ...options, override: EditorOverride.PICK } }, this.group);
			if (overridenInput === OverrideStatus.NONE) {
				overridenInput = undefined;
			} else if (overridenInput === OverrideStatus.ABORT) {
				return;
			}

			// Replace the overrriden input, with the text based input
			await this.editorService.replaceEditors([{
				editor,
				replacement: overridenInput?.editor ?? input,
				options: {
					...overridenInput?.options ?? options,
					override: EditorOverride.DISABLED
				}
			}], this.group);
		}
	}