From ecb7f9311a3a62c6f465a5ce25978b8013e73004 Mon Sep 17 00:00:00 2001 From: Benjin Dubishar Date: Fri, 15 Oct 2021 23:42:57 -0700 Subject: [PATCH] Adding progress indicator for autorest generation (#17371) --- extensions/sql-database-projects/src/common/constants.ts | 1 + .../src/controllers/projectController.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/extensions/sql-database-projects/src/common/constants.ts b/extensions/sql-database-projects/src/common/constants.ts index 04bcfffdcd..599dcf3116 100644 --- a/extensions/sql-database-projects/src/common/constants.ts +++ b/extensions/sql-database-projects/src/common/constants.ts @@ -433,6 +433,7 @@ export function generatingProjectFailed(errorMessage: string) { return localize( export const noSqlFilesGenerated = localize('noSqlFilesGenerated', "No .sql files were generated by Autorest. Please confirm that your spec contains model definitions, or check the output log for details."); export function multipleMostDeploymentScripts(count: number) { return localize('multipleMostDeploymentScripts', "Unexpected number of {0} files: {1}", autorestPostDeploymentScriptName, count); } export const specSelectionText = localize('specSelectionText', "OpenAPI/Swagger spec"); +export function generatingProjectFromAutorest(specName: string) { return localize('generatingProjectFromAutorest', "Generating new SQL project from {0}... Check output window for details.", specName); } // System dbs export const systemDbs = ['master', 'msdb', 'tempdb', 'model']; diff --git a/extensions/sql-database-projects/src/controllers/projectController.ts b/extensions/sql-database-projects/src/controllers/projectController.ts index b75701be26..6300933a32 100644 --- a/extensions/sql-database-projects/src/controllers/projectController.ts +++ b/extensions/sql-database-projects/src/controllers/projectController.ts @@ -914,7 +914,14 @@ export class ProjectsController { } public async generateAutorestFiles(specPath: string, newProjectFolder: string): Promise { - return this.autorestHelper.generateAutorestFiles(specPath, newProjectFolder); + return vscode.window.withProgress( + { + location: vscode.ProgressLocation.Notification, + title: constants.generatingProjectFromAutorest(path.basename(specPath)), + cancellable: false + }, async (_progress, _token) => { + return this.autorestHelper.generateAutorestFiles(specPath, newProjectFolder); + }); } public async openProjectInWorkspace(projectFilePath: string): Promise {