Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Bierner <matb@microsoft.com>2022-11-11 01:57:23 +0300
committerGitHub <noreply@github.com>2022-11-11 01:57:23 +0300
commit8294940ac6b30b652c8d140d4daa9491d8cfb16b (patch)
tree4ced63a1de698fdf92af22c4dc0056e13b3bb269
parent4f30fd5a83b31b86d4e141fe38c1cd27062d01d7 (diff)
Make CodeActionModel an idleValue (#166053)
For #164171
-rw-r--r--src/vs/editor/contrib/codeAction/browser/codeActionCommands.ts15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/vs/editor/contrib/codeAction/browser/codeActionCommands.ts b/src/vs/editor/contrib/codeAction/browser/codeActionCommands.ts
index c7ec289bde5..0b345e4ecb8 100644
--- a/src/vs/editor/contrib/codeAction/browser/codeActionCommands.ts
+++ b/src/vs/editor/contrib/codeAction/browser/codeActionCommands.ts
@@ -29,6 +29,7 @@ import { IMarkerService } from 'vs/platform/markers/common/markers';
import { IEditorProgressService } from 'vs/platform/progress/common/progress';
import { CodeActionModel, CodeActionsState, SUPPORTED_CODE_ACTIONS } from './codeActionModel';
import { CodeActionAutoApply, CodeActionCommandArgs, CodeActionFilter, CodeActionItem, CodeActionKind, CodeActionSet, CodeActionTrigger, CodeActionTriggerSource } from '../common/types';
+import { IdleValue } from 'vs/base/common/async';
function contextKeyForSupportedActions(kind: CodeActionKind) {
return ContextKeyExpr.regex(
@@ -92,7 +93,7 @@ export class CodeActionController extends Disposable implements IEditorContribut
}
private readonly _editor: ICodeEditor;
- private readonly _model: CodeActionModel;
+ private readonly _model: IdleValue<CodeActionModel>;
private readonly _ui: Lazy<CodeActionUi>;
constructor(
@@ -106,8 +107,14 @@ export class CodeActionController extends Disposable implements IEditorContribut
super();
this._editor = editor;
- this._model = this._register(new CodeActionModel(this._editor, languageFeaturesService.codeActionProvider, markerService, contextKeyService, progressService));
- this._register(this._model.onDidChangeState(newState => this.update(newState)));
+
+ this._model = this._register(new IdleValue(() => {
+ const model = this._register(new CodeActionModel(this._editor, languageFeaturesService.codeActionProvider, markerService, contextKeyService, progressService));
+
+ this._register(model.onDidChangeState(newState => this.update(newState)));
+
+ return model;
+ }));
this._ui = new Lazy(() =>
this._register(_instantiationService.createInstance(CodeActionUi, editor, QuickFixAction.Id, AutoFixAction.Id, {
@@ -149,7 +156,7 @@ export class CodeActionController extends Disposable implements IEditorContribut
}
private _trigger(trigger: CodeActionTrigger) {
- return this._model.trigger(trigger);
+ return this._model.value.trigger(trigger);
}
private _applyCodeAction(action: CodeActionItem, preview: boolean): Promise<void> {