src/vs/editor/browser/editorExtensions.ts/EditorAction2/run
class EditorAction2:	run(accessor: ServicesAccessor, ...args: any[]) {
		// Find the editor with text focus or active
		const codeEditorService = accessor.get(ICodeEditorService);
		const editor = codeEditorService.getFocusedCodeEditor() || codeEditorService.getActiveCodeEditor();
		if (!editor) {
			// well, at least we tried...
			return;
		}
		// precondition does hold
		return editor.invokeWithinContext((editorAccessor) => {
			const kbService = editorAccessor.get(IContextKeyService);
			if (kbService.contextMatchesRules(withNullAsUndefined(this.desc.precondition))) {
				return this.runEditorCommand(editorAccessor, editor!, args);
			}
		});
	}