Skip to content

Commit ff89cc1

Browse files
committed
CodeEditorWidget has its contributions and actions overridable
1 parent 76f6900 commit ff89cc1

2 files changed

Lines changed: 19 additions & 7 deletions

File tree

src/vs/editor/browser/codeEditor.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,18 @@
77
import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation';
88
import {ICommandService} from 'vs/platform/commands/common/commands';
99
import {IContextKeyService} from 'vs/platform/contextkey/common/contextkey';
10-
import * as editorCommon from 'vs/editor/common/editorCommon';
10+
import {IEditorOptions} from 'vs/editor/common/editorCommon';
11+
import {IEditorContributionDescriptor} from 'vs/editor/browser/editorBrowser';
1112
import {ICodeEditorService} from 'vs/editor/common/services/codeEditorService';
1213
import {CodeEditorWidget} from 'vs/editor/browser/widget/codeEditorWidget';
14+
import {EditorAction, CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions';
15+
import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions';
1316

1417
export class CodeEditor extends CodeEditorWidget {
1518

1619
constructor(
1720
domElement:HTMLElement,
18-
options:editorCommon.IEditorOptions,
21+
options:IEditorOptions,
1922
@IInstantiationService instantiationService: IInstantiationService,
2023
@ICodeEditorService codeEditorService: ICodeEditorService,
2124
@ICommandService commandService: ICommandService,
@@ -24,4 +27,11 @@ export class CodeEditor extends CodeEditorWidget {
2427
super(domElement, options, instantiationService, codeEditorService, commandService, contextKeyService);
2528
}
2629

30+
protected _getContributions(): IEditorContributionDescriptor[] {
31+
return [].concat(EditorBrowserRegistry.getEditorContributions()).concat(CommonEditorRegistry.getEditorContributions());
32+
}
33+
34+
protected _getActions(): EditorAction[] {
35+
return CommonEditorRegistry.getEditorActions();
36+
}
2737
}

src/vs/editor/browser/widget/codeEditorWidget.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,18 @@ import {CommonEditorConfiguration} from 'vs/editor/common/config/commonEditorCon
1818
import {Range} from 'vs/editor/common/core/range';
1919
import {Selection} from 'vs/editor/common/core/selection';
2020
import * as editorCommon from 'vs/editor/common/editorCommon';
21-
import {CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions';
21+
import {EditorAction} from 'vs/editor/common/editorCommonExtensions';
2222
import {ICodeEditorService} from 'vs/editor/common/services/codeEditorService';
2323
import {Configuration} from 'vs/editor/browser/config/configuration';
2424
import * as editorBrowser from 'vs/editor/browser/editorBrowser';
25-
import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions';
2625
import {Colorizer} from 'vs/editor/browser/standalone/colorizer';
2726
import {View} from 'vs/editor/browser/view/viewImpl';
2827
import {Disposable, IDisposable} from 'vs/base/common/lifecycle';
2928
import Event, {Emitter} from 'vs/base/common/event';
3029
import {IKeyboardEvent} from 'vs/base/browser/keyboardEvent';
3130
import {InternalEditorAction} from 'vs/editor/common/editorAction';
3231

33-
export class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.ICodeEditor {
32+
export abstract class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.ICodeEditor {
3433

3534
public onMouseUp(listener: (e:editorBrowser.IEditorMouseEvent)=>void): IDisposable {
3635
return this.addListener2(editorCommon.EventType.MouseUp, listener);
@@ -99,7 +98,7 @@ export class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.
9998
this.contentWidgets = {};
10099
this.overlayWidgets = {};
101100

102-
let contributionDescriptors = [].concat(EditorBrowserRegistry.getEditorContributions()).concat(CommonEditorRegistry.getEditorContributions());
101+
let contributionDescriptors = this._getContributions();
103102
for (let i = 0, len = contributionDescriptors.length; i < len; i++) {
104103
try {
105104
let contribution = contributionDescriptors[i].createInstance(this._instantiationService, this);
@@ -109,14 +108,17 @@ export class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.
109108
}
110109
}
111110

112-
CommonEditorRegistry.getEditorActions().forEach((action) => {
111+
this._getActions().forEach((action) => {
113112
let internalAction = new InternalEditorAction(action, this, this._instantiationService, this._contextKeyService);
114113
this._actions[internalAction.id] = internalAction;
115114
});
116115

117116
this._codeEditorService.addCodeEditor(this);
118117
}
119118

119+
protected abstract _getContributions(): editorBrowser.IEditorContributionDescriptor[];
120+
protected abstract _getActions(): EditorAction[];
121+
120122
protected _createConfiguration(options:editorCommon.ICodeEditorWidgetCreationOptions): CommonEditorConfiguration {
121123
return new Configuration(options, this.domElement);
122124
}

0 commit comments

Comments
 (0)