Skip to content

Commit 8407516

Browse files
Move progress notification to cover entire saveModeledMethods message handler
1 parent 899cfb0 commit 8407516

1 file changed

Lines changed: 36 additions & 16 deletions

File tree

extensions/ql-vscode/src/model-editor/model-editor-view.ts

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ import { promptImportGithubDatabase } from "../databases/database-fetcher";
2727
import { App } from "../common/app";
2828
import { showResolvableLocation } from "../databases/local-databases/locations";
2929
import { redactableError } from "../common/errors";
30-
import { runExternalApiQueries } from "./external-api-usage-queries";
30+
import {
31+
externalApiQueriesProgressMaxStep,
32+
runExternalApiQueries,
33+
} from "./external-api-usage-queries";
3134
import { Method, Usage } from "./method";
3235
import { ModeledMethod } from "./modeled-method";
3336
import { ExtensionPack } from "./shared/extension-pack";
@@ -205,22 +208,39 @@ export class ModelEditorView extends AbstractWebview<
205208

206209
break;
207210
case "saveModeledMethods":
208-
await saveModeledMethods(
209-
this.extensionPack,
210-
this.databaseItem.name,
211-
this.databaseItem.language,
212-
msg.methods,
213-
msg.modeledMethods,
214-
this.mode,
215-
this.cliServer,
216-
this.app.logger,
217-
);
218-
await Promise.all([
219-
this.setViewState(),
220-
withProgress((progress) => this.loadExternalApiUsages(progress), {
211+
await withProgress(
212+
async (progress) => {
213+
progress({
214+
step: 1,
215+
maxStep: 500 + externalApiQueriesProgressMaxStep,
216+
message: "Writing model files",
217+
});
218+
await saveModeledMethods(
219+
this.extensionPack,
220+
this.databaseItem.name,
221+
this.databaseItem.language,
222+
msg.methods,
223+
msg.modeledMethods,
224+
this.mode,
225+
this.cliServer,
226+
this.app.logger,
227+
);
228+
229+
await Promise.all([
230+
this.setViewState(),
231+
this.loadExternalApiUsages((update) =>
232+
progress({
233+
step: update.step + 500,
234+
maxStep: 500 + externalApiQueriesProgressMaxStep,
235+
message: `Reloading models: ${update.message}`,
236+
}),
237+
),
238+
]);
239+
},
240+
{
221241
cancellable: false,
222-
}),
223-
]);
242+
},
243+
);
224244
void telemetryListener?.sendUIInteraction(
225245
"model-editor-save-modeled-methods",
226246
);

0 commit comments

Comments
 (0)