mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 21:55:38 +00:00
Revert "add Event.debouncedListener
as replacement for debounce
, https://github.com/microsoft/vscode/issues/123487"
This reverts commit f41273cd78
.
This commit is contained in:
parent
854309e8f2
commit
63cb496df6
|
@ -145,45 +145,16 @@ export namespace Event {
|
||||||
return emitter.event;
|
return emitter.event;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function debouncedListener<T, O = T>(event: Event<T>, listener: (data: O) => any, merge: (last: O | undefined, event: T) => O, delay: number = 100, leading: boolean = false): IDisposable {
|
|
||||||
|
|
||||||
let output: O | undefined = undefined;
|
|
||||||
let handle: any = undefined;
|
|
||||||
let numDebouncedCalls = 0;
|
|
||||||
|
|
||||||
return event(cur => {
|
|
||||||
numDebouncedCalls++;
|
|
||||||
output = merge(output, cur);
|
|
||||||
|
|
||||||
if (leading && !handle) {
|
|
||||||
listener(output);
|
|
||||||
output = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
clearTimeout(handle);
|
|
||||||
handle = setTimeout(() => {
|
|
||||||
const _output = output;
|
|
||||||
output = undefined;
|
|
||||||
handle = undefined;
|
|
||||||
if (!leading || numDebouncedCalls > 1) {
|
|
||||||
listener(_output!);
|
|
||||||
}
|
|
||||||
|
|
||||||
numDebouncedCalls = 0;
|
|
||||||
}, delay);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated this leaks memory, {@link debouncedListener} or {@link DebounceEmitter} instead
|
* @deprecated DO NOT use, this leaks memory
|
||||||
*/
|
*/
|
||||||
export function debounce<T>(event: Event<T>, merge: (last: T | undefined, event: T) => T, delay?: number, leading?: boolean, leakWarningThreshold?: number, disposable?: DisposableStore): Event<T>;
|
export function debounce<T>(event: Event<T>, merge: (last: T | undefined, event: T) => T, delay?: number, leading?: boolean, leakWarningThreshold?: number, disposable?: DisposableStore): Event<T>;
|
||||||
/**
|
/**
|
||||||
* @deprecated this leaks memory, {@link debouncedListener} or {@link DebounceEmitter} instead
|
* @deprecated DO NOT use, this leaks memory
|
||||||
*/
|
*/
|
||||||
export function debounce<I, O>(event: Event<I>, merge: (last: O | undefined, event: I) => O, delay?: number, leading?: boolean, leakWarningThreshold?: number, disposable?: DisposableStore): Event<O>;
|
export function debounce<I, O>(event: Event<I>, merge: (last: O | undefined, event: I) => O, delay?: number, leading?: boolean, leakWarningThreshold?: number, disposable?: DisposableStore): Event<O>;
|
||||||
/**
|
/**
|
||||||
* @deprecated this leaks memory, {@link debouncedListener} or {@link DebounceEmitter} instead
|
* @deprecated DO NOT use, this leaks memory
|
||||||
*/
|
*/
|
||||||
export function debounce<I, O>(event: Event<I>, merge: (last: O | undefined, event: I) => O, delay: number = 100, leading = false, leakWarningThreshold?: number, disposable?: DisposableStore): Event<O> {
|
export function debounce<I, O>(event: Event<I>, merge: (last: O | undefined, event: I) => O, delay: number = 100, leading = false, leakWarningThreshold?: number, disposable?: DisposableStore): Event<O> {
|
||||||
|
|
||||||
|
|
|
@ -507,12 +507,11 @@ class NotebookEditorManager implements IWorkbenchContribution {
|
||||||
|
|
||||||
// OPEN notebook editor for models that have turned dirty without being visible in an editor
|
// OPEN notebook editor for models that have turned dirty without being visible in an editor
|
||||||
type E = IResolvedNotebookEditorModel;
|
type E = IResolvedNotebookEditorModel;
|
||||||
this._disposables.add(Event.debouncedListener<E, E[]>(
|
this._disposables.add(Event.debounce<E, E[]>(
|
||||||
this._notebookEditorModelService.onDidChangeDirty,
|
this._notebookEditorModelService.onDidChangeDirty,
|
||||||
this._openMissingDirtyNotebookEditors.bind(this),
|
|
||||||
(last, current) => !last ? [current] : [...last, current],
|
(last, current) => !last ? [current] : [...last, current],
|
||||||
100
|
100
|
||||||
));
|
)(this._openMissingDirtyNotebookEditors, this));
|
||||||
|
|
||||||
// CLOSE notebook editor for models that have no more serializer
|
// CLOSE notebook editor for models that have no more serializer
|
||||||
this._disposables.add(notebookService.onWillRemoveViewType(e => {
|
this._disposables.add(notebookService.onWillRemoveViewType(e => {
|
||||||
|
|
Loading…
Reference in a new issue