CodeEditorWidget has its contributions and actions overridable

This commit is contained in:
Alex Dima
2016-09-01 09:08:54 +02:00
parent 76f690054e
commit ff89cc1291
2 changed files with 19 additions and 7 deletions
+12 -2
View File
@@ -7,15 +7,18 @@
import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation';
import {ICommandService} from 'vs/platform/commands/common/commands';
import {IContextKeyService} from 'vs/platform/contextkey/common/contextkey';
import * as editorCommon from 'vs/editor/common/editorCommon';
import {IEditorOptions} from 'vs/editor/common/editorCommon';
import {IEditorContributionDescriptor} from 'vs/editor/browser/editorBrowser';
import {ICodeEditorService} from 'vs/editor/common/services/codeEditorService';
import {CodeEditorWidget} from 'vs/editor/browser/widget/codeEditorWidget';
import {EditorAction, CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions';
import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions';
export class CodeEditor extends CodeEditorWidget {
constructor(
domElement:HTMLElement,
options:editorCommon.IEditorOptions,
options:IEditorOptions,
@IInstantiationService instantiationService: IInstantiationService,
@ICodeEditorService codeEditorService: ICodeEditorService,
@ICommandService commandService: ICommandService,
@@ -24,4 +27,11 @@ export class CodeEditor extends CodeEditorWidget {
super(domElement, options, instantiationService, codeEditorService, commandService, contextKeyService);
}
protected _getContributions(): IEditorContributionDescriptor[] {
return [].concat(EditorBrowserRegistry.getEditorContributions()).concat(CommonEditorRegistry.getEditorContributions());
}
protected _getActions(): EditorAction[] {
return CommonEditorRegistry.getEditorActions();
}
}
@@ -18,11 +18,10 @@ import {CommonEditorConfiguration} from 'vs/editor/common/config/commonEditorCon
import {Range} from 'vs/editor/common/core/range';
import {Selection} from 'vs/editor/common/core/selection';
import * as editorCommon from 'vs/editor/common/editorCommon';
import {CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions';
import {EditorAction} from 'vs/editor/common/editorCommonExtensions';
import {ICodeEditorService} from 'vs/editor/common/services/codeEditorService';
import {Configuration} from 'vs/editor/browser/config/configuration';
import * as editorBrowser from 'vs/editor/browser/editorBrowser';
import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions';
import {Colorizer} from 'vs/editor/browser/standalone/colorizer';
import {View} from 'vs/editor/browser/view/viewImpl';
import {Disposable, IDisposable} from 'vs/base/common/lifecycle';
@@ -30,7 +29,7 @@ import Event, {Emitter} from 'vs/base/common/event';
import {IKeyboardEvent} from 'vs/base/browser/keyboardEvent';
import {InternalEditorAction} from 'vs/editor/common/editorAction';
export class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.ICodeEditor {
export abstract class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.ICodeEditor {
public onMouseUp(listener: (e:editorBrowser.IEditorMouseEvent)=>void): IDisposable {
return this.addListener2(editorCommon.EventType.MouseUp, listener);
@@ -99,7 +98,7 @@ export class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.
this.contentWidgets = {};
this.overlayWidgets = {};
let contributionDescriptors = [].concat(EditorBrowserRegistry.getEditorContributions()).concat(CommonEditorRegistry.getEditorContributions());
let contributionDescriptors = this._getContributions();
for (let i = 0, len = contributionDescriptors.length; i < len; i++) {
try {
let contribution = contributionDescriptors[i].createInstance(this._instantiationService, this);
@@ -109,7 +108,7 @@ export class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.
}
}
CommonEditorRegistry.getEditorActions().forEach((action) => {
this._getActions().forEach((action) => {
let internalAction = new InternalEditorAction(action, this, this._instantiationService, this._contextKeyService);
this._actions[internalAction.id] = internalAction;
});
@@ -117,6 +116,9 @@ export class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.
this._codeEditorService.addCodeEditor(this);
}
protected abstract _getContributions(): editorBrowser.IEditorContributionDescriptor[];
protected abstract _getActions(): EditorAction[];
protected _createConfiguration(options:editorCommon.ICodeEditorWidgetCreationOptions): CommonEditorConfiguration {
return new Configuration(options, this.domElement);
}