mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-21 03:36:14 +01:00
CodeEditorWidget has its contributions and actions overridable
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user