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

Simplify AbstractCodeEditorService implementation

上级 4407ea2c
......@@ -11,26 +11,32 @@ import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService
import { ICodeEditor, IDiffEditor } from 'vs/editor/browser/editorBrowser';
import { IResourceInput } from 'vs/platform/editor/common/editor';
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;
private readonly _onCodeEditorAdd: Emitter<ICodeEditor>;
private readonly _onCodeEditorRemove: Emitter<ICodeEditor>;
private _codeEditors: { [editorId: string]: ICodeEditor; };
private readonly _onCodeEditorAdd: Emitter<ICodeEditor> = this._register(new Emitter<ICodeEditor>());
public readonly onCodeEditorAdd: Event<ICodeEditor> = this._onCodeEditorAdd.event;
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; };
constructor() {
super();
this._codeEditors = 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 {
......@@ -38,20 +44,12 @@ export abstract class AbstractCodeEditorService implements ICodeEditorService {
this._onCodeEditorAdd.fire(editor);
}
get onCodeEditorAdd(): Event<ICodeEditor> {
return this._onCodeEditorAdd.event;
}
removeCodeEditor(editor: ICodeEditor): void {
if (delete this._codeEditors[editor.getId()]) {
this._onCodeEditorRemove.fire(editor);
}
}
get onCodeEditorRemove(): Event<ICodeEditor> {
return this._onCodeEditorRemove.event;
}
listCodeEditors(): ICodeEditor[] {
return Object.keys(this._codeEditors).map(id => this._codeEditors[id]);
}
......@@ -61,20 +59,12 @@ export abstract class AbstractCodeEditorService implements ICodeEditorService {
this._onDiffEditorAdd.fire(editor);
}
get onDiffEditorAdd(): Event<IDiffEditor> {
return this._onDiffEditorAdd.event;
}
removeDiffEditor(editor: IDiffEditor): void {
if (delete this._diffEditors[editor.getId()]) {
this._onDiffEditorRemove.fire(editor);
}
}
get onDiffEditorRemove(): Event<IDiffEditor> {
return this._onDiffEditorRemove.event;
}
listDiffEditors(): IDiffEditor[] {
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.
先完成此消息的编辑!
想要评论请 注册