diff --git a/src/vs/editor/browser/widget/codeEditorWidget.ts b/src/vs/editor/browser/widget/codeEditorWidget.ts index 32178916937..4548e94f9dd 100644 --- a/src/vs/editor/browser/widget/codeEditorWidget.ts +++ b/src/vs/editor/browser/widget/codeEditorWidget.ts @@ -24,40 +24,22 @@ import { Configuration } from 'vs/editor/browser/config/configuration'; import * as editorBrowser from 'vs/editor/browser/editorBrowser'; import { Colorizer } from 'vs/editor/browser/standalone/colorizer'; import { View } from 'vs/editor/browser/view/viewImpl'; -import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; -import Event, { Emitter } from 'vs/base/common/event'; +import { Disposable } from 'vs/base/common/lifecycle'; +import Event, { Emitter, fromEventEmitter } from 'vs/base/common/event'; import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { InternalEditorAction } from 'vs/editor/common/editorAction'; export abstract class CodeEditorWidget extends CommonCodeEditor implements editorBrowser.ICodeEditor { - public onMouseUp(listener: (e: editorBrowser.IEditorMouseEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.MouseUp, listener); - } - public onMouseDown(listener: (e: editorBrowser.IEditorMouseEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.MouseDown, listener); - } - public onContextMenu(listener: (e: editorBrowser.IEditorMouseEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.ContextMenu, listener); - } - public onMouseMove(listener: (e: editorBrowser.IEditorMouseEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.MouseMove, listener); - } - public onMouseLeave(listener: (e: editorBrowser.IEditorMouseEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.MouseLeave, listener); - } - public onKeyUp(listener: (e: IKeyboardEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.KeyUp, listener); - } - public onKeyDown(listener: (e: IKeyboardEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.KeyDown, listener); - } - public onDidLayoutChange(listener: (e: editorCommon.EditorLayoutInfo) => void): IDisposable { - return this.addListener2(editorCommon.EventType.EditorLayout, listener); - } - public onDidScrollChange(listener: (e: editorCommon.IScrollEvent) => void): IDisposable { - return this.addListener2('scroll', listener); - } + public readonly onMouseUp: Event = fromEventEmitter(this, editorCommon.EventType.MouseUp); + public readonly onMouseDown: Event = fromEventEmitter(this, editorCommon.EventType.MouseDown); + public readonly onContextMenu: Event = fromEventEmitter(this, editorCommon.EventType.ContextMenu); + public readonly onMouseMove: Event = fromEventEmitter(this, editorCommon.EventType.MouseMove); + public readonly onMouseLeave: Event = fromEventEmitter(this, editorCommon.EventType.MouseLeave); + public readonly onKeyUp: Event = fromEventEmitter(this, editorCommon.EventType.KeyUp); + public readonly onKeyDown: Event = fromEventEmitter(this, editorCommon.EventType.KeyDown); + public readonly onDidLayoutChange: Event = fromEventEmitter(this, editorCommon.EventType.EditorLayout); + public readonly onDidScrollChange: Event = fromEventEmitter(this, 'scroll'); private _codeEditorService: ICodeEditorService; private _commandService: ICommandService; diff --git a/src/vs/editor/common/commonCodeEditor.ts b/src/vs/editor/common/commonCodeEditor.ts index a6f4171071c..57d9d014c75 100644 --- a/src/vs/editor/common/commonCodeEditor.ts +++ b/src/vs/editor/common/commonCodeEditor.ts @@ -5,6 +5,7 @@ 'use strict'; import { onUnexpectedError } from 'vs/base/common/errors'; +import Event, { fromEventEmitter } from 'vs/base/common/event'; import { EventEmitter, IEventEmitter } from 'vs/base/common/eventEmitter'; import { Disposable, IDisposable, dispose } from 'vs/base/common/lifecycle'; import { TPromise } from 'vs/base/common/winjs.base'; @@ -36,48 +37,20 @@ var EDITOR_ID = 0; export abstract class CommonCodeEditor extends EventEmitter implements editorCommon.ICommonCodeEditor { - public onDidChangeModelRawContent(listener: (e: editorCommon.IModelContentChangedEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.ModelRawContentChanged, listener); - } - public onDidChangeModelContent(listener: (e: editorCommon.IModelContentChangedEvent2) => void): IDisposable { - return this.addListener2(editorCommon.EventType.ModelContentChanged2, listener); - } - public onDidChangeModelMode(listener: (e: editorCommon.IModelModeChangedEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.ModelModeChanged, listener); - } - public onDidChangeModelOptions(listener: (e: editorCommon.IModelOptionsChangedEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.ModelOptionsChanged, listener); - } - public onDidChangeModelDecorations(listener: (e: editorCommon.IModelDecorationsChangedEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.ModelDecorationsChanged, listener); - } - public onDidChangeConfiguration(listener: (e: editorCommon.IConfigurationChangedEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.ConfigurationChanged, listener); - } - public onDidChangeModel(listener: (e: editorCommon.IModelChangedEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.ModelChanged, listener); - } - public onDidChangeCursorPosition(listener: (e: editorCommon.ICursorPositionChangedEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.CursorPositionChanged, listener); - } - public onDidChangeCursorSelection(listener: (e: editorCommon.ICursorSelectionChangedEvent) => void): IDisposable { - return this.addListener2(editorCommon.EventType.CursorSelectionChanged, listener); - } - public onDidFocusEditorText(listener: () => void): IDisposable { - return this.addListener2(editorCommon.EventType.EditorTextFocus, listener); - } - public onDidBlurEditorText(listener: () => void): IDisposable { - return this.addListener2(editorCommon.EventType.EditorTextBlur, listener); - } - public onDidFocusEditor(listener: () => void): IDisposable { - return this.addListener2(editorCommon.EventType.EditorFocus, listener); - } - public onDidBlurEditor(listener: () => void): IDisposable { - return this.addListener2(editorCommon.EventType.EditorBlur, listener); - } - public onDidDispose(listener: () => void): IDisposable { - return this.addListener2(editorCommon.EventType.Disposed, listener); - } + public readonly onDidChangeModelRawContent: Event = fromEventEmitter(this, editorCommon.EventType.ModelRawContentChanged); + public readonly onDidChangeModelContent: Event = fromEventEmitter(this, editorCommon.EventType.ModelContentChanged2); + public readonly onDidChangeModelMode: Event = fromEventEmitter(this, editorCommon.EventType.ModelModeChanged); + public readonly onDidChangeModelOptions: Event = fromEventEmitter(this, editorCommon.EventType.ModelOptionsChanged); + public readonly onDidChangeModelDecorations: Event = fromEventEmitter(this, editorCommon.EventType.ModelDecorationsChanged); + public readonly onDidChangeConfiguration: Event = fromEventEmitter(this, editorCommon.EventType.ConfigurationChanged); + public readonly onDidChangeModel: Event = fromEventEmitter(this, editorCommon.EventType.ModelChanged); + public readonly onDidChangeCursorPosition: Event = fromEventEmitter(this, editorCommon.EventType.CursorPositionChanged); + public readonly onDidChangeCursorSelection: Event = fromEventEmitter(this, editorCommon.EventType.CursorSelectionChanged); + public readonly onDidFocusEditorText: Event = fromEventEmitter(this, editorCommon.EventType.EditorTextFocus); + public readonly onDidBlurEditorText: Event = fromEventEmitter(this, editorCommon.EventType.EditorTextBlur); + public readonly onDidFocusEditor: Event = fromEventEmitter(this, editorCommon.EventType.EditorFocus); + public readonly onDidBlurEditor: Event = fromEventEmitter(this, editorCommon.EventType.EditorBlur); + public readonly onDidDispose: Event = fromEventEmitter(this, editorCommon.EventType.Disposed); protected domElement: IContextKeyServiceTarget; diff --git a/src/vs/editor/contrib/quickFix/browser/lightBulbWidget.ts b/src/vs/editor/contrib/quickFix/browser/lightBulbWidget.ts index c5b99bf0eaa..04e9f3ac424 100644 --- a/src/vs/editor/contrib/quickFix/browser/lightBulbWidget.ts +++ b/src/vs/editor/contrib/quickFix/browser/lightBulbWidget.ts @@ -33,8 +33,8 @@ export class LightBulbWidget implements IOverlayWidget, IDisposable { } })); this._toDispose.push(any( - this._editor.onDidChangeConfiguration.bind(this._editor), - this._editor.onDidChangeModelDecorations.bind(this._editor) + this._editor.onDidChangeConfiguration, + this._editor.onDidChangeModelDecorations )(() => { // hide when something has been added to glyph margin if (this._visible && !this._hasSpaceInGlyphMargin(this._position.lineNumber)) {