From e30cab7e2c52bc055f8359fd9a900bba02281977 Mon Sep 17 00:00:00 2001 From: David Simpson <45690499+davegarthsimpson@users.noreply.github.com> Date: Thu, 21 Jul 2022 16:32:50 +0200 Subject: [PATCH 1/2] ensure compile verbose pref is included on upload --- .../src/browser/contributions/upload-sketch.ts | 13 +++++++++++-- .../src/common/protocol/core-service.ts | 10 ++++++++-- .../src/node/core-service-impl.ts | 17 ++++++++++++++--- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/arduino-ide-extension/src/browser/contributions/upload-sketch.ts b/arduino-ide-extension/src/browser/contributions/upload-sketch.ts index 8da2b618d..ea770c0b5 100644 --- a/arduino-ide-extension/src/browser/contributions/upload-sketch.ts +++ b/arduino-ide-extension/src/browser/contributions/upload-sketch.ts @@ -217,6 +217,7 @@ export class UploadSketch extends CoreServiceContribution { verbose, sourceOverride, optimizeForDebug, + compileVerbose, ] = await Promise.all([ this.boardsDataStore.appendConfigToFqbn( boardsConfig.selectedBoard?.fqbn @@ -228,8 +229,13 @@ export class UploadSketch extends CoreServiceContribution { this.commandService.executeCommand( 'arduino-is-optimize-for-debug' ), + this.preferences.get('arduino.compile.verbose'), ]); + const compileStepOptions: Partial = { + verbose: compileVerbose, + }; + const board = { ...boardsConfig.selectedBoard, name: boardsConfig.selectedBoard?.name || '', @@ -277,9 +283,12 @@ export class UploadSketch extends CoreServiceContribution { } this.outputChannelManager.getChannel('Arduino').clear(); if (usingProgrammer) { - await this.coreService.uploadUsingProgrammer(options); + await this.coreService.uploadUsingProgrammer( + options, + compileStepOptions + ); } else { - await this.coreService.upload(options); + await this.coreService.upload(options, compileStepOptions); } this.messageService.info( nls.localize('arduino/sketch/doneUploading', 'Done uploading.'), diff --git a/arduino-ide-extension/src/common/protocol/core-service.ts b/arduino-ide-extension/src/common/protocol/core-service.ts index f720a7d61..2de2cd6da 100644 --- a/arduino-ide-extension/src/common/protocol/core-service.ts +++ b/arduino-ide-extension/src/common/protocol/core-service.ts @@ -67,8 +67,14 @@ export interface CoreService { compilerWarnings?: CompilerWarnings; }> ): Promise; - upload(options: CoreService.Upload.Options): Promise; - uploadUsingProgrammer(options: CoreService.Upload.Options): Promise; + upload( + options: CoreService.Upload.Options, + additionalCompileOptions: Partial + ): Promise; + uploadUsingProgrammer( + options: CoreService.Upload.Options, + additionalCompileOptions: Partial + ): Promise; burnBootloader(options: CoreService.Bootloader.Options): Promise; } diff --git a/arduino-ide-extension/src/node/core-service-impl.ts b/arduino-ide-extension/src/node/core-service-impl.ts index afe7f2099..a3922dd91 100644 --- a/arduino-ide-extension/src/node/core-service-impl.ts +++ b/arduino-ide-extension/src/node/core-service-impl.ts @@ -163,9 +163,13 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService { return request; } - upload(options: CoreService.Upload.Options): Promise { + upload( + options: CoreService.Upload.Options, + additionalCompileOptions: Partial + ): Promise { return this.doUpload( options, + additionalCompileOptions, () => new UploadRequest(), (client, req) => client.upload(req), (message: string, locations: CoreError.ErrorLocation[]) => @@ -175,10 +179,12 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService { } async uploadUsingProgrammer( - options: CoreService.Upload.Options + options: CoreService.Upload.Options, + additionalCompileOptions: Partial ): Promise { return this.doUpload( options, + additionalCompileOptions, () => new UploadUsingProgrammerRequest(), (client, req) => client.uploadUsingProgrammer(req), (message: string, locations: CoreError.ErrorLocation[]) => @@ -189,6 +195,7 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService { protected async doUpload( options: CoreService.Upload.Options, + additionalCompileOptions: Partial, requestFactory: () => UploadRequest | UploadUsingProgrammerRequest, responseHandler: ( client: ArduinoCoreServiceClient, @@ -200,7 +207,11 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService { ) => ApplicationError, task: string ): Promise { - await this.compile(Object.assign(options, { exportBinaries: false })); + await this.compile({ + ...options, + ...additionalCompileOptions, + exportBinaries: false, + }); const coreClient = await this.coreClient; const { client, instance } = coreClient; From 93a8bd943066474b2863928194d67137debdd7a2 Mon Sep 17 00:00:00 2001 From: Akos Kitta Date: Fri, 22 Jul 2022 08:36:28 +0200 Subject: [PATCH 2/2] better verbose typings Signed-off-by: Akos Kitta --- .../src/browser/contributions/upload-sketch.ts | 14 ++++---------- .../src/common/protocol/core-service.ts | 13 ++++--------- .../src/node/core-service-impl.ts | 15 ++++----------- 3 files changed, 12 insertions(+), 30 deletions(-) diff --git a/arduino-ide-extension/src/browser/contributions/upload-sketch.ts b/arduino-ide-extension/src/browser/contributions/upload-sketch.ts index ea770c0b5..c17143bbf 100644 --- a/arduino-ide-extension/src/browser/contributions/upload-sketch.ts +++ b/arduino-ide-extension/src/browser/contributions/upload-sketch.ts @@ -214,7 +214,7 @@ export class UploadSketch extends CoreServiceContribution { fqbn, { selectedProgrammer }, verify, - verbose, + uploadVerbose, sourceOverride, optimizeForDebug, compileVerbose, @@ -232,10 +232,7 @@ export class UploadSketch extends CoreServiceContribution { this.preferences.get('arduino.compile.verbose'), ]); - const compileStepOptions: Partial = { - verbose: compileVerbose, - }; - + const verbose = { compile: compileVerbose, upload: uploadVerbose }; const board = { ...boardsConfig.selectedBoard, name: boardsConfig.selectedBoard?.name || '', @@ -283,12 +280,9 @@ export class UploadSketch extends CoreServiceContribution { } this.outputChannelManager.getChannel('Arduino').clear(); if (usingProgrammer) { - await this.coreService.uploadUsingProgrammer( - options, - compileStepOptions - ); + await this.coreService.uploadUsingProgrammer(options); } else { - await this.coreService.upload(options, compileStepOptions); + await this.coreService.upload(options); } this.messageService.info( nls.localize('arduino/sketch/doneUploading', 'Done uploading.'), diff --git a/arduino-ide-extension/src/common/protocol/core-service.ts b/arduino-ide-extension/src/common/protocol/core-service.ts index 2de2cd6da..1ac6a2913 100644 --- a/arduino-ide-extension/src/common/protocol/core-service.ts +++ b/arduino-ide-extension/src/common/protocol/core-service.ts @@ -67,14 +67,8 @@ export interface CoreService { compilerWarnings?: CompilerWarnings; }> ): Promise; - upload( - options: CoreService.Upload.Options, - additionalCompileOptions: Partial - ): Promise; - uploadUsingProgrammer( - options: CoreService.Upload.Options, - additionalCompileOptions: Partial - ): Promise; + upload(options: CoreService.Upload.Options): Promise; + uploadUsingProgrammer(options: CoreService.Upload.Options): Promise; burnBootloader(options: CoreService.Bootloader.Options): Promise; } @@ -90,11 +84,12 @@ export namespace CoreService { } export namespace Upload { - export interface Options extends Compile.Options { + export interface Options extends Omit { readonly port?: Port; readonly programmer?: Programmer | undefined; readonly verify: boolean; readonly userFields: BoardUserField[]; + readonly verbose: { compile: boolean; upload: boolean }; } } diff --git a/arduino-ide-extension/src/node/core-service-impl.ts b/arduino-ide-extension/src/node/core-service-impl.ts index a3922dd91..a10b829da 100644 --- a/arduino-ide-extension/src/node/core-service-impl.ts +++ b/arduino-ide-extension/src/node/core-service-impl.ts @@ -163,13 +163,9 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService { return request; } - upload( - options: CoreService.Upload.Options, - additionalCompileOptions: Partial - ): Promise { + upload(options: CoreService.Upload.Options): Promise { return this.doUpload( options, - additionalCompileOptions, () => new UploadRequest(), (client, req) => client.upload(req), (message: string, locations: CoreError.ErrorLocation[]) => @@ -179,12 +175,10 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService { } async uploadUsingProgrammer( - options: CoreService.Upload.Options, - additionalCompileOptions: Partial + options: CoreService.Upload.Options ): Promise { return this.doUpload( options, - additionalCompileOptions, () => new UploadUsingProgrammerRequest(), (client, req) => client.uploadUsingProgrammer(req), (message: string, locations: CoreError.ErrorLocation[]) => @@ -195,7 +189,6 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService { protected async doUpload( options: CoreService.Upload.Options, - additionalCompileOptions: Partial, requestFactory: () => UploadRequest | UploadUsingProgrammerRequest, responseHandler: ( client: ArduinoCoreServiceClient, @@ -209,7 +202,7 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService { ): Promise { await this.compile({ ...options, - ...additionalCompileOptions, + verbose: options.verbose.compile, exportBinaries: false, }); @@ -273,7 +266,7 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService { if (programmer) { request.setProgrammer(programmer.id); } - request.setVerbose(options.verbose); + request.setVerbose(options.verbose.upload); request.setVerify(options.verify); options.userFields.forEach((e) => {