提交 64e810dd 编写于 作者: A Alex Dima

Simplify AbstractCodeEditorService implementation

上级 4407ea2c
...@@ -11,26 +11,32 @@ import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService ...@@ -11,26 +11,32 @@ import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService
import { ICodeEditor, IDiffEditor } from 'vs/editor/browser/editorBrowser'; import { ICodeEditor, IDiffEditor } from 'vs/editor/browser/editorBrowser';
import { IResourceInput } from 'vs/platform/editor/common/editor'; import { IResourceInput } from 'vs/platform/editor/common/editor';
import { TPromise } from 'vs/base/common/winjs.base'; import { TPromise } from 'vs/base/common/winjs.base';
import { Disposable } from 'vs/base/common/lifecycle';
export abstract class AbstractCodeEditorService implements ICodeEditorService { export abstract class AbstractCodeEditorService extends Disposable implements ICodeEditorService {
_serviceBrand: any; _serviceBrand: any;
private readonly _onCodeEditorAdd: Emitter<ICodeEditor>; private readonly _onCodeEditorAdd: Emitter<ICodeEditor> = this._register(new Emitter<ICodeEditor>());
private readonly _onCodeEditorRemove: Emitter<ICodeEditor>; public readonly onCodeEditorAdd: Event<ICodeEditor> = this._onCodeEditorAdd.event;
private _codeEditors: { [editorId: string]: ICodeEditor; };
private readonly _onCodeEditorRemove: Emitter<ICodeEditor> = this._register(new Emitter<ICodeEditor>());
public readonly onCodeEditorRemove: Event<ICodeEditor> = this._onCodeEditorRemove.event;
private readonly _onDiffEditorAdd: Emitter<IDiffEditor> = this._register(new Emitter<IDiffEditor>());
public readonly onDiffEditorAdd: Event<IDiffEditor> = this._onDiffEditorAdd.event;
private readonly _onDiffEditorRemove: Emitter<IDiffEditor> = this._register(new Emitter<IDiffEditor>());
public readonly onDiffEditorRemove: Event<IDiffEditor> = this._onDiffEditorRemove.event;
private readonly _onDiffEditorAdd: Emitter<IDiffEditor>;
private readonly _onDiffEditorRemove: Emitter<IDiffEditor>; private _codeEditors: { [editorId: string]: ICodeEditor; };
private _diffEditors: { [editorId: string]: IDiffEditor; }; private _diffEditors: { [editorId: string]: IDiffEditor; };
constructor() { constructor() {
super();
this._codeEditors = Object.create(null); this._codeEditors = Object.create(null);
this._diffEditors = Object.create(null); this._diffEditors = Object.create(null);
this._onCodeEditorAdd = new Emitter<ICodeEditor>();
this._onCodeEditorRemove = new Emitter<ICodeEditor>();
this._onDiffEditorAdd = new Emitter<IDiffEditor>();
this._onDiffEditorRemove = new Emitter<IDiffEditor>();
} }
addCodeEditor(editor: ICodeEditor): void { addCodeEditor(editor: ICodeEditor): void {
...@@ -38,20 +44,12 @@ export abstract class AbstractCodeEditorService implements ICodeEditorService { ...@@ -38,20 +44,12 @@ export abstract class AbstractCodeEditorService implements ICodeEditorService {
this._onCodeEditorAdd.fire(editor); this._onCodeEditorAdd.fire(editor);
} }
get onCodeEditorAdd(): Event<ICodeEditor> {
return this._onCodeEditorAdd.event;
}
removeCodeEditor(editor: ICodeEditor): void { removeCodeEditor(editor: ICodeEditor): void {
if (delete this._codeEditors[editor.getId()]) { if (delete this._codeEditors[editor.getId()]) {
this._onCodeEditorRemove.fire(editor); this._onCodeEditorRemove.fire(editor);
} }
} }
get onCodeEditorRemove(): Event<ICodeEditor> {
return this._onCodeEditorRemove.event;
}
listCodeEditors(): ICodeEditor[] { listCodeEditors(): ICodeEditor[] {
return Object.keys(this._codeEditors).map(id => this._codeEditors[id]); return Object.keys(this._codeEditors).map(id => this._codeEditors[id]);
} }
...@@ -61,20 +59,12 @@ export abstract class AbstractCodeEditorService implements ICodeEditorService { ...@@ -61,20 +59,12 @@ export abstract class AbstractCodeEditorService implements ICodeEditorService {
this._onDiffEditorAdd.fire(editor); this._onDiffEditorAdd.fire(editor);
} }
get onDiffEditorAdd(): Event<IDiffEditor> {
return this._onDiffEditorAdd.event;
}
removeDiffEditor(editor: IDiffEditor): void { removeDiffEditor(editor: IDiffEditor): void {
if (delete this._diffEditors[editor.getId()]) { if (delete this._diffEditors[editor.getId()]) {
this._onDiffEditorRemove.fire(editor); this._onDiffEditorRemove.fire(editor);
} }
} }
get onDiffEditorRemove(): Event<IDiffEditor> {
return this._onDiffEditorRemove.event;
}
listDiffEditors(): IDiffEditor[] { listDiffEditors(): IDiffEditor[] {
return Object.keys(this._diffEditors).map(id => this._diffEditors[id]); return Object.keys(this._diffEditors).map(id => this._diffEditors[id]);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册