Skip to content

Commit 408e032

Browse files
committed
event namespace consolidation & docs
1 parent 392ccd9 commit 408e032

109 files changed

Lines changed: 724 additions & 674 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/vs/base/browser/event.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { Event, Emitter, mapEvent } from 'vs/base/common/event';
6+
import { Event, Emitter } from 'vs/base/common/event';
77

88
export type EventHandler = HTMLElement | HTMLDocument | Window;
99

@@ -32,7 +32,7 @@ export interface CancellableEvent {
3232
}
3333

3434
export function stop<T extends CancellableEvent>(event: Event<T>): Event<T> {
35-
return mapEvent(event, e => {
35+
return Event.map(event, e => {
3636
e.preventDefault();
3737
e.stopPropagation();
3838
return e;

src/vs/base/browser/ui/centered/centeredViewLayout.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import { SplitView, Orientation, ISplitViewStyles, IView as ISplitViewView } from 'vs/base/browser/ui/splitview/splitview';
77
import { $ } from 'vs/base/browser/dom';
8-
import { Event, mapEvent } from 'vs/base/common/event';
8+
import { Event } from 'vs/base/common/event';
99
import { IView } from 'vs/base/browser/ui/grid/gridview';
1010
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
1111
import { Color } from 'vs/base/common/color';
@@ -39,7 +39,7 @@ function toSplitViewView(view: IView, getHeight: () => number): ISplitViewView {
3939
element: view.element,
4040
get maximumSize() { return view.maximumWidth; },
4141
get minimumSize() { return view.minimumWidth; },
42-
onDidChange: mapEvent(view.onDidChange, e => e && e.width),
42+
onDidChange: Event.map(view.onDidChange, e => e && e.width),
4343
layout: size => view.layout(size, getHeight())
4444
};
4545
}

src/vs/base/browser/ui/grid/gridview.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import 'vs/css!./gridview';
7-
import { Event, anyEvent, Emitter, mapEvent, Relay } from 'vs/base/common/event';
7+
import { Event, Emitter, Relay } from 'vs/base/common/event';
88
import { Orientation, Sash } from 'vs/base/browser/ui/sash/sash';
99
import { SplitView, IView as ISplitView, Sizing, LayoutPriority, ISplitViewStyles } from 'vs/base/browser/ui/splitview/splitview';
1010
import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
@@ -150,7 +150,7 @@ class BranchNode implements ISplitView, IDisposable {
150150
this.splitview = new SplitView(this.element, { orientation, styles });
151151
this.splitview.layout(size);
152152

153-
const onDidSashReset = mapEvent(this.splitview.onDidSashReset, i => [i]);
153+
const onDidSashReset = Event.map(this.splitview.onDidSashReset, i => [i]);
154154
this.splitviewSashResetDisposable = onDidSashReset(this._onDidSashReset.fire, this._onDidSashReset);
155155
}
156156

@@ -300,11 +300,11 @@ class BranchNode implements ISplitView, IDisposable {
300300
}
301301

302302
private onDidChildrenChange(): void {
303-
const onDidChildrenChange = anyEvent(...this.children.map(c => c.onDidChange));
303+
const onDidChildrenChange = Event.any(...this.children.map(c => c.onDidChange));
304304
this.childrenChangeDisposable.dispose();
305305
this.childrenChangeDisposable = onDidChildrenChange(this._onDidChange.fire, this._onDidChange);
306306

307-
const onDidChildrenSashReset = anyEvent(...this.children.map((c, i) => mapEvent(c.onDidSashReset, location => [i, ...location])));
307+
const onDidChildrenSashReset = Event.any(...this.children.map((c, i) => Event.map(c.onDidSashReset, location => [i, ...location])));
308308
this.childrenSashResetDisposable.dispose();
309309
this.childrenSashResetDisposable = onDidChildrenSashReset(this._onDidSashReset.fire, this._onDidSashReset);
310310

@@ -414,8 +414,8 @@ class LeafNode implements ISplitView, IDisposable {
414414
) {
415415
this._orthogonalSize = orthogonalSize;
416416

417-
this._onDidViewChange = mapEvent(this.view.onDidChange, this.orientation === Orientation.HORIZONTAL ? e => e && e.width : e => e && e.height);
418-
this.onDidChange = anyEvent(this._onDidViewChange, this._onDidSetLinkedNode.event, this._onDidLinkedWidthNodeChange.event, this._onDidLinkedHeightNodeChange.event);
417+
this._onDidViewChange = Event.map(this.view.onDidChange, this.orientation === Orientation.HORIZONTAL ? e => e && e.width : e => e && e.height);
418+
this.onDidChange = Event.any(this._onDidViewChange, this._onDidSetLinkedNode.event, this._onDidLinkedWidthNodeChange.event, this._onDidLinkedHeightNodeChange.event);
419419
}
420420

421421
get width(): number {
@@ -547,7 +547,7 @@ export class GridView implements IDisposable {
547547
this._root = root;
548548
this.element.appendChild(root.element);
549549
this.onDidSashResetRelay.input = root.onDidSashReset;
550-
this._onDidChange.input = mapEvent(root.onDidChange, () => undefined); // TODO
550+
this._onDidChange.input = Event.map(root.onDidChange, () => undefined); // TODO
551551
}
552552

553553
get orientation(): Orientation {

src/vs/base/browser/ui/list/listPaging.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { range } from 'vs/base/common/arrays';
99
import { IListVirtualDelegate, IListRenderer, IListEvent, IListContextMenuEvent } from './list';
1010
import { List, IListStyles, IListOptions } from './listWidget';
1111
import { IPagedModel } from 'vs/base/common/paging';
12-
import { Event, mapEvent } from 'vs/base/common/event';
12+
import { Event } from 'vs/base/common/event';
1313
import { CancellationTokenSource } from 'vs/base/common/cancellation';
1414

1515
export interface IPagedRenderer<TElement, TTemplateData> extends IListRenderer<TElement, TTemplateData> {
@@ -118,23 +118,23 @@ export class PagedList<T> implements IDisposable {
118118
}
119119

120120
get onFocusChange(): Event<IListEvent<T>> {
121-
return mapEvent(this.list.onFocusChange, ({ elements, indexes }) => ({ elements: elements.map(e => this._model.get(e)), indexes }));
121+
return Event.map(this.list.onFocusChange, ({ elements, indexes }) => ({ elements: elements.map(e => this._model.get(e)), indexes }));
122122
}
123123

124124
get onOpen(): Event<IListEvent<T>> {
125-
return mapEvent(this.list.onOpen, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));
125+
return Event.map(this.list.onOpen, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));
126126
}
127127

128128
get onSelectionChange(): Event<IListEvent<T>> {
129-
return mapEvent(this.list.onSelectionChange, ({ elements, indexes }) => ({ elements: elements.map(e => this._model.get(e)), indexes }));
129+
return Event.map(this.list.onSelectionChange, ({ elements, indexes }) => ({ elements: elements.map(e => this._model.get(e)), indexes }));
130130
}
131131

132132
get onPin(): Event<IListEvent<T>> {
133-
return mapEvent(this.list.onPin, ({ elements, indexes }) => ({ elements: elements.map(e => this._model.get(e)), indexes }));
133+
return Event.map(this.list.onPin, ({ elements, indexes }) => ({ elements: elements.map(e => this._model.get(e)), indexes }));
134134
}
135135

136136
get onContextMenu(): Event<IListContextMenuEvent<T>> {
137-
return mapEvent(this.list.onContextMenu, ({ element, index, anchor, browserEvent }) => (typeof element === 'undefined' ? { element, index, anchor, browserEvent } : { element: this._model.get(element), index, anchor, browserEvent }));
137+
return Event.map(this.list.onContextMenu, ({ element, index, anchor, browserEvent }) => (typeof element === 'undefined' ? { element, index, anchor, browserEvent } : { element: this._model.get(element), index, anchor, browserEvent }));
138138
}
139139

140140
get model(): IPagedModel<T> {

src/vs/base/browser/ui/list/listView.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { getOrDefault } from 'vs/base/common/objects';
77
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
88
import { Gesture, EventType as TouchEventType, GestureEvent } from 'vs/base/browser/touch';
99
import * as DOM from 'vs/base/browser/dom';
10-
import { Event, mapEvent, filterEvent, Emitter, latch } from 'vs/base/common/event';
10+
import { Event, Emitter } from 'vs/base/common/event';
1111
import { domEvent } from 'vs/base/browser/event';
1212
import { ScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';
1313
import { ScrollEvent, ScrollbarVisibility, INewScrollDimensions } from 'vs/base/common/scrollable';
@@ -84,7 +84,7 @@ export class ListView<T> implements ISpliceable<T>, IDisposable {
8484
private disposables: IDisposable[];
8585

8686
private _onDidChangeContentHeight = new Emitter<number>();
87-
readonly onDidChangeContentHeight: Event<number> = latch(this._onDidChangeContentHeight.event);
87+
readonly onDidChangeContentHeight: Event<number> = Event.latch(this._onDidChangeContentHeight.event);
8888
get contentHeight(): number { return this.rangeMap.size; }
8989

9090
constructor(
@@ -134,7 +134,7 @@ export class ListView<T> implements ISpliceable<T>, IDisposable {
134134
domEvent(this.scrollableElement.getDomNode(), 'scroll')
135135
(e => (e.target as HTMLElement).scrollTop = 0, null, this.disposables);
136136

137-
const onDragOver = mapEvent(domEvent(this.rowsContainer, 'dragover'), e => new DragMouseEvent(e));
137+
const onDragOver = Event.map(domEvent(this.rowsContainer, 'dragover'), e => new DragMouseEvent(e));
138138
onDragOver(this.onDragOver, this, this.disposables);
139139

140140
this.setRowLineHeight = getOrDefault(options, o => o.setRowLineHeight, DefaultOptions.setRowLineHeight);
@@ -411,17 +411,17 @@ export class ListView<T> implements ISpliceable<T>, IDisposable {
411411

412412
// Events
413413

414-
@memoize get onMouseClick(): Event<IListMouseEvent<T>> { return mapEvent(domEvent(this.domNode, 'click'), e => this.toMouseEvent(e)); }
415-
@memoize get onMouseDblClick(): Event<IListMouseEvent<T>> { return mapEvent(domEvent(this.domNode, 'dblclick'), e => this.toMouseEvent(e)); }
416-
@memoize get onMouseMiddleClick(): Event<IListMouseEvent<T>> { return filterEvent(mapEvent(domEvent(this.domNode, 'auxclick'), e => this.toMouseEvent(e as MouseEvent)), e => e.browserEvent.button === 1); }
417-
@memoize get onMouseUp(): Event<IListMouseEvent<T>> { return mapEvent(domEvent(this.domNode, 'mouseup'), e => this.toMouseEvent(e)); }
418-
@memoize get onMouseDown(): Event<IListMouseEvent<T>> { return mapEvent(domEvent(this.domNode, 'mousedown'), e => this.toMouseEvent(e)); }
419-
@memoize get onMouseOver(): Event<IListMouseEvent<T>> { return mapEvent(domEvent(this.domNode, 'mouseover'), e => this.toMouseEvent(e)); }
420-
@memoize get onMouseMove(): Event<IListMouseEvent<T>> { return mapEvent(domEvent(this.domNode, 'mousemove'), e => this.toMouseEvent(e)); }
421-
@memoize get onMouseOut(): Event<IListMouseEvent<T>> { return mapEvent(domEvent(this.domNode, 'mouseout'), e => this.toMouseEvent(e)); }
422-
@memoize get onContextMenu(): Event<IListMouseEvent<T>> { return mapEvent(domEvent(this.domNode, 'contextmenu'), e => this.toMouseEvent(e)); }
423-
@memoize get onTouchStart(): Event<IListTouchEvent<T>> { return mapEvent(domEvent(this.domNode, 'touchstart'), e => this.toTouchEvent(e)); }
424-
@memoize get onTap(): Event<IListGestureEvent<T>> { return mapEvent(domEvent(this.rowsContainer, TouchEventType.Tap), e => this.toGestureEvent(e)); }
414+
@memoize get onMouseClick(): Event<IListMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'click'), e => this.toMouseEvent(e)); }
415+
@memoize get onMouseDblClick(): Event<IListMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'dblclick'), e => this.toMouseEvent(e)); }
416+
@memoize get onMouseMiddleClick(): Event<IListMouseEvent<T>> { return Event.filter(Event.map(domEvent(this.domNode, 'auxclick'), e => this.toMouseEvent(e as MouseEvent)), e => e.browserEvent.button === 1); }
417+
@memoize get onMouseUp(): Event<IListMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mouseup'), e => this.toMouseEvent(e)); }
418+
@memoize get onMouseDown(): Event<IListMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mousedown'), e => this.toMouseEvent(e)); }
419+
@memoize get onMouseOver(): Event<IListMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mouseover'), e => this.toMouseEvent(e)); }
420+
@memoize get onMouseMove(): Event<IListMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mousemove'), e => this.toMouseEvent(e)); }
421+
@memoize get onMouseOut(): Event<IListMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mouseout'), e => this.toMouseEvent(e)); }
422+
@memoize get onContextMenu(): Event<IListMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'contextmenu'), e => this.toMouseEvent(e)); }
423+
@memoize get onTouchStart(): Event<IListTouchEvent<T>> { return Event.map(domEvent(this.domNode, 'touchstart'), e => this.toTouchEvent(e)); }
424+
@memoize get onTap(): Event<IListGestureEvent<T>> { return Event.map(domEvent(this.rowsContainer, TouchEventType.Tap), e => this.toGestureEvent(e)); }
425425

426426
private toMouseEvent(browserEvent: MouseEvent): IListMouseEvent<T> {
427427
const index = this.getItemIndexFromEventTarget(browserEvent.target || null);

src/vs/base/browser/ui/list/listWidget.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import * as platform from 'vs/base/common/platform';
1414
import { Gesture } from 'vs/base/browser/touch';
1515
import { KeyCode } from 'vs/base/common/keyCodes';
1616
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
17-
import { Event, Emitter, EventBufferer, chain, mapEvent, anyEvent, debounceEvent, reduceEvent } from 'vs/base/common/event';
17+
import { Event, Emitter, EventBufferer } from 'vs/base/common/event';
1818
import { domEvent } from 'vs/base/browser/event';
1919
import { IListVirtualDelegate, IListRenderer, IListEvent, IListContextMenuEvent, IListMouseEvent, IListTouchEvent, IListGestureEvent, IIdentityProvider, ITypeLabelProvider } from './list';
2020
import { ListView, IListViewOptions } from './listView';
@@ -246,7 +246,7 @@ class KeyboardController<T> implements IDisposable {
246246

247247
this.openController = options.openController || DefaultOpenController;
248248

249-
const onKeyDown = chain(domEvent(view.domNode, 'keydown'))
249+
const onKeyDown = Event.chain(domEvent(view.domNode, 'keydown'))
250250
.filter(e => !isInputElement(e.target as HTMLElement))
251251
.map(e => new StandardKeyboardEvent(e));
252252

@@ -338,7 +338,7 @@ class TypeLabelController<T> implements IDisposable {
338338
private view: ListView<T>,
339339
private typeLabelProvider: ITypeLabelProvider<T>
340340
) {
341-
const onChar = chain(domEvent(view.domNode, 'keydown'))
341+
const onChar = Event.chain(domEvent(view.domNode, 'keydown'))
342342
.map(event => new StandardKeyboardEvent(event))
343343
.filter(event => {
344344
if (event.ctrlKey || event.metaKey || event.altKey) {
@@ -352,8 +352,8 @@ class TypeLabelController<T> implements IDisposable {
352352
.map(event => event.browserEvent.key)
353353
.event;
354354

355-
const onClear = debounceEvent<string, null>(onChar, () => null, 800);
356-
const onInput = reduceEvent<string | null, string | null>(anyEvent(onChar, onClear), (r, i) => i === null ? null : ((r || '') + i));
355+
const onClear = Event.debounce<string, null>(onChar, () => null, 800);
356+
const onInput = Event.reduce<string | null, string | null>(Event.any(onChar, onClear), (r, i) => i === null ? null : ((r || '') + i));
357357

358358
onInput(this.onInput, this, this.disposables);
359359
}
@@ -396,7 +396,7 @@ class DOMFocusController<T> implements IDisposable {
396396
) {
397397
this.disposables = [];
398398

399-
const onKeyDown = chain(domEvent(view.domNode, 'keydown'))
399+
const onKeyDown = Event.chain(domEvent(view.domNode, 'keydown'))
400400
.filter(e => !isInputElement(e.target as HTMLElement))
401401
.map(e => new StandardKeyboardEvent(e));
402402

@@ -947,19 +947,19 @@ export class List<T> implements ISpliceable<T>, IDisposable {
947947
private styleController: IStyleController;
948948

949949
@memoize get onFocusChange(): Event<IListEvent<T>> {
950-
return mapEvent(this.eventBufferer.wrapEvent(this.focus.onChange), e => this.toListEvent(e));
950+
return Event.map(this.eventBufferer.wrapEvent(this.focus.onChange), e => this.toListEvent(e));
951951
}
952952

953953
@memoize get onSelectionChange(): Event<IListEvent<T>> {
954-
return mapEvent(this.eventBufferer.wrapEvent(this.selection.onChange), e => this.toListEvent(e));
954+
return Event.map(this.eventBufferer.wrapEvent(this.selection.onChange), e => this.toListEvent(e));
955955
}
956956

957957
private _onOpen = new Emitter<IListEvent<T>>();
958958
readonly onOpen: Event<IListEvent<T>> = this._onOpen.event;
959959

960960
private _onPin = new Emitter<number[]>();
961961
@memoize get onPin(): Event<IListEvent<T>> {
962-
return mapEvent(this._onPin.event, indexes => this.toListEvent({ indexes }));
962+
return Event.map(this._onPin.event, indexes => this.toListEvent({ indexes }));
963963
}
964964

965965
get onMouseClick(): Event<IListMouseEvent<T>> { return this.view.onMouseClick; }
@@ -975,7 +975,7 @@ export class List<T> implements ISpliceable<T>, IDisposable {
975975

976976
private didJustPressContextMenuKey: boolean = false;
977977
@memoize get onContextMenu(): Event<IListContextMenuEvent<T>> {
978-
const fromKeydown = chain(domEvent(this.view.domNode, 'keydown'))
978+
const fromKeydown = Event.chain(domEvent(this.view.domNode, 'keydown'))
979979
.map(e => new StandardKeyboardEvent(e))
980980
.filter(e => this.didJustPressContextMenuKey = e.keyCode === KeyCode.ContextMenu || (e.shiftKey && e.keyCode === KeyCode.F10))
981981
.filter(e => { e.preventDefault(); e.stopPropagation(); return false; })
@@ -987,7 +987,7 @@ export class List<T> implements ISpliceable<T>, IDisposable {
987987
})
988988
.event;
989989

990-
const fromKeyup = chain(domEvent(this.view.domNode, 'keyup'))
990+
const fromKeyup = Event.chain(domEvent(this.view.domNode, 'keyup'))
991991
.filter(() => {
992992
const didJustPressContextMenuKey = this.didJustPressContextMenuKey;
993993
this.didJustPressContextMenuKey = false;
@@ -1003,12 +1003,12 @@ export class List<T> implements ISpliceable<T>, IDisposable {
10031003
.filter(({ anchor }) => !!anchor)
10041004
.event;
10051005

1006-
const fromMouse = chain(this.view.onContextMenu)
1006+
const fromMouse = Event.chain(this.view.onContextMenu)
10071007
.filter(() => !this.didJustPressContextMenuKey)
10081008
.map(({ element, index, browserEvent }) => ({ element, index, anchor: { x: browserEvent.clientX + 1, y: browserEvent.clientY }, browserEvent }))
10091009
.event;
10101010

1011-
return anyEvent<IListContextMenuEvent<T>>(fromKeydown, fromKeyup, fromMouse);
1011+
return Event.any<IListContextMenuEvent<T>>(fromKeydown, fromKeyup, fromMouse);
10121012
}
10131013

10141014
get onKeyDown(): Event<KeyboardEvent> { return domEvent(this.view.domNode, 'keydown'); }
@@ -1057,8 +1057,8 @@ export class List<T> implements ISpliceable<T>, IDisposable {
10571057

10581058
this.disposables = [this.focus, this.selection, this.view, this._onDidDispose];
10591059

1060-
this.onDidFocus = mapEvent(domEvent(this.view.domNode, 'focus', true), () => null!);
1061-
this.onDidBlur = mapEvent(domEvent(this.view.domNode, 'blur', true), () => null!);
1060+
this.onDidFocus = Event.map(domEvent(this.view.domNode, 'focus', true), () => null!);
1061+
this.onDidBlur = Event.map(domEvent(this.view.domNode, 'blur', true), () => null!);
10621062

10631063
this.disposables.push(new DOMFocusController(this, this.view));
10641064

src/vs/base/browser/ui/selectBox/selectBoxCustom.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import 'vs/css!./selectBoxCustom';
77

88
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
9-
import { Event, Emitter, chain } from 'vs/base/common/event';
9+
import { Event, Emitter } from 'vs/base/common/event';
1010
import { KeyCode, KeyCodeUtils } from 'vs/base/common/keyCodes';
1111
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
1212
import * as dom from 'vs/base/browser/dom';
@@ -759,7 +759,7 @@ export class SelectBoxList implements ISelectBoxDelegate, IListVirtualDelegate<I
759759
});
760760

761761
// SetUp list keyboard controller - control navigation, disabled items, focus
762-
const onSelectDropDownKeyDown = chain(domEvent(this.selectDropDownListContainer, 'keydown'))
762+
const onSelectDropDownKeyDown = Event.chain(domEvent(this.selectDropDownListContainer, 'keydown'))
763763
.filter(() => this.selectList.length > 0)
764764
.map(e => new StandardKeyboardEvent(e));
765765

@@ -775,7 +775,7 @@ export class SelectBoxList implements ISelectBoxDelegate, IListVirtualDelegate<I
775775

776776
// SetUp list mouse controller - control navigation, disabled items, focus
777777

778-
chain(domEvent(this.selectList.getHTMLElement(), 'mouseup'))
778+
Event.chain(domEvent(this.selectList.getHTMLElement(), 'mouseup'))
779779
.filter(() => this.selectList.length > 0)
780780
.on(e => this.onMouseUp(e), this, this.toDispose);
781781

0 commit comments

Comments
 (0)