提交 feb45ac3 编写于 作者: J Johannes Rieken

cancel future code action compute, fixes #23433

上级 1e4e1724
......@@ -5,6 +5,7 @@
'use strict';
import 'vs/css!./lightBulbWidget';
import { CancellationTokenSource } from 'vs/base/common/cancellation';
import { IDisposable } from 'vs/base/common/lifecycle';
import Event, { Emitter } from 'vs/base/common/event';
import * as dom from 'vs/base/browser/dom';
......@@ -27,6 +28,7 @@ export class LightBulbWidget implements IDisposable {
private _decorationIds: string[] = [];
private _currentLine: number;
private _model: QuickFixComputeEvent;
private _futureFixes = new CancellationTokenSource();
constructor(editor: ICodeEditor) {
this._editor = editor;
......@@ -63,9 +65,11 @@ export class LightBulbWidget implements IDisposable {
set model(e: QuickFixComputeEvent) {
this._model = e;
this.hide();
const modelNow = this._model;
this._futureFixes = new CancellationTokenSource();
const { token } = this._futureFixes;
e.fixes.done(fixes => {
if (modelNow === this._model && fixes && fixes.length > 0) {
if (!token.isCancellationRequested && fixes && fixes.length > 0) {
this.show(e);
} else {
this.hide();
......@@ -99,6 +103,7 @@ export class LightBulbWidget implements IDisposable {
hide(): void {
this._decorationIds = this._editor.deltaDecorations(this._decorationIds, []);
this._futureFixes.cancel();
this._currentLine = undefined;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册