src/vs/workbench/services/editor/browser/editorResolverService.ts/EditorResolverService/registerEditor
class EditorResolverService:	registerEditor(
		globPattern: string | glob.IRelativePattern,
		editorInfo: RegisteredEditorInfo,
		options: RegisteredEditorOptions,
		createEditorInput: EditorInputFactoryFunction,
		createUntitledEditorInput?: UntitledEditorInputFactoryFunction | undefined,
		createDiffEditorInput?: DiffEditorInputFactoryFunction
	): IDisposable {
		let registeredEditor = this._editors.get(globPattern);
		if (registeredEditor === undefined) {
			registeredEditor = [];
			this._editors.set(globPattern, registeredEditor);
		}
		const remove = insert(registeredEditor, {
			globPattern,
			editorInfo,
			options,
			createEditorInput,
			createUntitledEditorInput,
			createDiffEditorInput
		});
		this._onDidChangeEditorRegistrations.fire();
		return toDisposable(() => {
			remove();
			this._onDidChangeEditorRegistrations.fire();
		});
	}