src/vs/workbench/browser/parts/editor/binaryEditor.ts/BaseBinaryResourceEditor/renderInput
class BaseBinaryResourceEditor:	private renderInput(input: EditorInput, options: IEditorOptions | undefined, model: BinaryEditorModel): IDisposable {
		const [binaryContainer, scrollbar] = assertAllDefined(this.binaryContainer, this.scrollbar);

		clearNode(binaryContainer);

		const disposables = new DisposableStore();

		const label = document.createElement('p');
		label.textContent = localize('nativeBinaryError', "The file is not displayed in the editor because it is either binary or uses an unsupported text encoding.");
		binaryContainer.appendChild(label);

		const link = append(label, $('a.embedded-link'));
		link.setAttribute('role', 'button');
		link.textContent = localize('openAsText', "Do you want to open it anyway?");

		disposables.add(addDisposableListener(link, EventType.CLICK, async () => {
			await this.callbacks.openInternal(input, options);

			// Signal to listeners that the binary editor has been opened in-place
			this._onDidOpenInPlace.fire();
		}));

		scrollbar.scanDomNode();

		// Update metadata
		const size = model.getSize();
		this.handleMetadataChanged(typeof size === 'number' ? ByteSize.formatSize(size) : '');

		return disposables;
	}