Skip to content

Commit 1b4ceb7

Browse files
authored
Clean-up solution convert messages in output channel
1 parent 5c7fea1 commit 1b4ceb7

8 files changed

Lines changed: 42 additions & 49 deletions

File tree

src/solutions/cmsis-toolbox.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,15 @@ describe('CmsisToolbox', () => {
127127

128128
await toolbox.runCmsisTool('cpackget', ['arg1', 'arg2'], outputSpy);
129129

130-
expect(outputSpy).toHaveBeenCalledWith('🔄 Execute: cpackget arg1 arg2\r\n');
130+
expect(outputSpy).toHaveBeenCalledWith('cpackget arg1 arg2\r\n');
131131
});
132132

133133
it('does not emit execute line when emitExecuteLine is false', async () => {
134134
const outputSpy = jest.fn();
135135

136136
await toolbox.runCmsisTool('cbuild', ['arg1', 'arg2'], outputSpy, undefined, undefined, undefined, false);
137137

138-
expect(outputSpy).not.toHaveBeenCalledWith('🔄 Execute: cbuild arg1 arg2\r\n');
138+
expect(outputSpy).not.toHaveBeenCalledWith('cbuild arg1 arg2\r\n');
139139
});
140140

141141
it('collect setup messages', () => {

src/solutions/cmsis-toolbox.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,11 @@ export interface CmsisToolboxManager {
6969
/** Run csolution RPC method
7070
* @param method name of RPC method to be executed
7171
* @param args list of arguments to be passed into the method request
72-
* @param onOutput output messages reflecting method's result success or failure
7372
* @return method result according to each RPC method signature
7473
*/
7574
runCsolutionRpc(
7675
method: RpcMethod,
7776
args: unknown,
78-
onOutput: (line: string) => void,
7977
): Promise<unknown>
8078

8179
/** Collect Setup Messages
@@ -178,7 +176,7 @@ export class CmsisToolboxManagerImpl implements CmsisToolboxManager {
178176
}
179177
// execute call
180178
if (emitExecuteLine) {
181-
msg = `🔄 Execute: ${tool} ${args.join(' ')}\r\n`;
179+
msg = `${tool} ${args.join(' ')}\r\n`;
182180
console.log(msg);
183181
onOutput(msg);
184182
}
@@ -195,7 +193,6 @@ export class CmsisToolboxManagerImpl implements CmsisToolboxManager {
195193
// Print messages
196194
msg = `${returnCode === 0 ? '✅' : '🟥'} Completed: ${tool} ${cmdMsg}\r\n`;
197195
console.log(msg);
198-
onOutput(msg);
199196
// release mutex
200197
release();
201198
this.runCmsisToolEmitter.fire([false]);
@@ -241,7 +238,6 @@ export class CmsisToolboxManagerImpl implements CmsisToolboxManager {
241238
public async runCsolutionRpc(
242239
method: RpcMethod,
243240
args: unknown,
244-
onOutput: (line: string) => void,
245241
): Promise<unknown> {
246242
let msg: string;
247243
const argsArray = Object.entries(args as never).map(([k, v]) => `${k}: ${v}`);
@@ -265,7 +261,6 @@ export class CmsisToolboxManagerImpl implements CmsisToolboxManager {
265261
msg = `${(result as rpc.SuccessResult).success ? '☑️' : '🟥'} RPC: ${method}` +
266262
`${argsArray.length > 0 ? ` { ${argsArray.join(', ')} }` : ''}`;
267263
console.log(msg);
268-
onOutput(msg);
269264
if (method === 'Shutdown' && (result as rpc.SuccessResult).success) {
270265
// wait for csolution process to exit
271266
await this.csolutionService.waitForExit();

src/solutions/intellisense/compile-commands-generator.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ export class CompileCommandsGeneratorImpl implements CompileCommandsGenerator {
4141
const task = this.buildTaskProvider.createTask(definition);
4242
const revealKind = definition.west ? vscode.TaskRevealKind?.Always : vscode.TaskRevealKind?.Silent;
4343
task.presentationOptions = {
44-
...(revealKind !== undefined ? { reveal: revealKind } : {}),
45-
showReuseMessage: false,
44+
...(revealKind !== undefined ? { reveal: revealKind } : {})
4645
};
4746
const execution = await vscode.tasks.executeTask(task);
4847

src/solutions/solution-converter.test.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -211,14 +211,12 @@ describe('SolutionConverter', () => {
211211

212212
expect(outputChannel!.mockAppendedStrings).toEqual([
213213
expect.stringContaining('⚙️ Converting solution...'),
214-
expect.stringContaining('☑️ RPC: ListMissingPacks'),
215-
expect.stringContaining('☑️ RPC: ConvertSolution'),
216-
expect.stringContaining('☑️ cbuild setup database'),
217-
expect.stringContaining('☑️ RPC: GetLogMessages'),
214+
expect.stringContaining('Check for missing packs...'),
215+
expect.stringContaining('Convert solution...'),
216+
expect.stringContaining('Setup database...'),
217+
expect.stringContaining('Get log messages...'),
218218
expect.stringContaining('✅ Convert solution completed'),
219-
expect.stringContaining(''),
220219
]);
221-
222220
expect(completedListener).toHaveBeenCalledTimes(1);
223221
});
224222

@@ -231,11 +229,10 @@ describe('SolutionConverter', () => {
231229

232230
expect(outputChannel!.mockAppendedStrings).toEqual([
233231
expect.stringContaining('⚙️ Converting solution...'),
234-
expect.stringContaining('🟥 RPC: ListMissingPacks'),
235-
expect.stringContaining('🟥 RPC: ConvertSolution'),
236-
expect.stringContaining('☑️ RPC: GetLogMessages'),
232+
expect.stringContaining('Check for missing packs...'),
233+
expect.stringContaining('Convert solution...'),
234+
expect.stringContaining('Get log messages...'),
237235
expect.stringContaining('🟥 Convert solution failed'),
238-
expect.stringContaining(''),
239236
]);
240237

241238
expect(completedListener).toHaveBeenCalledTimes(1);

src/solutions/solution-converter.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,11 @@ export class SolutionConverterImpl implements SolutionConverter {
112112

113113
// restart rpc server to pick up new environment variables
114114
if (this.data?.restartRpc) {
115-
outputChannel.appendLine('🔄 Environment changed: restarting RPC server...');
116-
await this.cmsisToolboxManager.runCsolutionRpc('Shutdown', {},
117-
line => outputChannel.appendLine(line));
118-
await this.cmsisToolboxManager.runCsolutionRpc('LoadPacks', {},
119-
line => outputChannel.appendLine(line));
120-
outputChannel.appendLine('');
115+
outputChannel.append('🔄 Environment changed: restarting RPC server... ');
116+
await this.cmsisToolboxManager.runCsolutionRpc('Shutdown', {});
117+
outputChannel.append('Loading packs... ');
118+
await this.cmsisToolboxManager.runCsolutionRpc('LoadPacks', {});
119+
outputChannel.append('\n\n');
121120
}
122121

123122
if (signal.aborted) {
@@ -127,13 +126,13 @@ export class SolutionConverterImpl implements SolutionConverter {
127126
outputChannel.appendLine('⚙️ Converting solution...');
128127
if (this.isDownloadPacksEnabled()) {
129128
// rpc method: ListMissingPacks
129+
outputChannel.append('Check for missing packs... ');
130130
const result = await this.cmsisToolboxManager.runCsolutionRpc(
131131
'ListMissingPacks',
132132
{
133133
solution: activeSolution,
134134
activeTarget: activeTarget,
135-
},
136-
line => outputChannel.appendLine(line)
135+
}
137136
) as rpc.ListMissingPacksResult;
138137
if (result.success && result.packs && result.packs.length > 0) {
139138
// download missing packs if any
@@ -145,14 +144,14 @@ export class SolutionConverterImpl implements SolutionConverter {
145144
}
146145

147146
// rpc method: ConvertSolution
147+
outputChannel.append('Convert solution... ');
148148
const result = await this.cmsisToolboxManager.runCsolutionRpc(
149149
'ConvertSolution',
150150
{
151151
solution: activeSolution,
152152
activeTarget: activeTarget,
153153
updateRte: this.data.updateRte ?? false,
154-
},
155-
line => outputChannel.appendLine(line)
154+
}
156155
) as rpc.ConvertSolutionResult;
157156

158157
if (signal.aborted) {
@@ -168,13 +167,13 @@ export class SolutionConverterImpl implements SolutionConverter {
168167
if (!detection) {
169168
if (result.success) {
170169
// check if compile commands need to be updated: call cbuild setup skipping csolution convert step
170+
outputChannel.append('Setup database... ');
171171
[result.success, cbuildOutput] = await this.compileCommandsGenerator.runCbuildSetup();
172-
outputChannel.appendLine(`${result.success ? '☑️' : '🟥'} cbuild setup database`);
173172
}
174173
// rpc method: GetLogMessages
174+
outputChannel.append('Get log messages... ');
175175
logResult = await this.cmsisToolboxManager.runCsolutionRpc(
176-
'GetLogMessages', {},
177-
line => outputChannel.appendLine(line)
176+
'GetLogMessages', {}
178177
) as rpc.LogMessages;
179178
if (logResult?.errors || logResult?.warnings) {
180179
this.printErrorsWarnings(logResult);
@@ -191,32 +190,33 @@ export class SolutionConverterImpl implements SolutionConverter {
191190
csolution?.setLogMessages(logResult);
192191

193192
// print result to output channel
194-
outputChannel.appendLine(detection ?
195-
'⏳ Action needed: see Configure Solution dialog' :
196-
severity == 'error' ?
197-
'🟥 Convert solution failed' :
198-
severity == 'warning' ?
199-
'🟨 Convert solution completed with warnings' :
200-
'✅ Convert solution completed'
201-
);
202-
outputChannel.appendLine('');
193+
outputChannel.append('\n' + (
194+
detection ?
195+
'⏳ Action needed: see Configure Solution dialog' :
196+
severity == 'error' ?
197+
'🟥 Convert solution failed' :
198+
severity == 'warning' ?
199+
'🟨 Convert solution completed with warnings' :
200+
'✅ Convert solution completed'
201+
) + '\n\n');
203202
// notify conversion result and detection status asynchronously!
204203
this.eventHub.fireConvertCompleted({ severity: severity, detection: detection });
205204
}
206205

207206
private async printErrorsWarnings(messages?: rpc.LogMessages): Promise<void> {
208207
const outputChannel = this.outputChannelProvider.getOrCreate(manifest.CMSIS_SOLUTION_OUTPUT_CHANNEL);
209208
for (const message of messages?.errors ?? []) {
210-
outputChannel.appendLine(`csolution error: ${message}`);
209+
outputChannel.append(`\ncsolution error: ${message}`);
211210
}
212211
for (const message of messages?.warnings ?? []) {
213-
outputChannel.appendLine(`csolution warning: ${message}`);
212+
outputChannel.append(`\ncsolution warning: ${message}`);
214213
}
215214
}
216215

217216
private async downloadMissingPacks(packs: string[]): Promise<void> {
218217
// call cpackget to download missing packs
219218
const outputChannel = this.outputChannelProvider.getOrCreate(manifest.CMSIS_SOLUTION_OUTPUT_CHANNEL);
219+
outputChannel.append('Downloading missing packs...\n');
220220
for (const pack of packs) {
221221
const args = ['add', pack, '--force-reinstall', '--agree-embedded-license', '--no-dependencies'];
222222
await this.cmsisToolboxManager.runCmsisTool('cpackget', args, line => outputChannel.appendLine(line.trimEnd()), undefined, undefined, true);
@@ -227,13 +227,13 @@ export class SolutionConverterImpl implements SolutionConverter {
227227
const outputChannel = this.outputChannelProvider.getOrCreate(manifest.CMSIS_SOLUTION_OUTPUT_CHANNEL);
228228
this.solutionManager.getCsolution()?.setVariablesConfigurations(undefined);
229229
// rpc method: DiscoverLayers
230+
outputChannel.append('Discover Layers... ');
230231
const result = await this.cmsisToolboxManager.runCsolutionRpc(
231232
'DiscoverLayers',
232233
{
233234
solution: this.data?.solutionPath ?? '',
234235
activeTarget: this.data?.targetSet ?? '',
235-
},
236-
line => outputChannel.appendLine(line)
236+
}
237237
) as rpc.DiscoverLayersInfo;
238238
this.solutionManager.getCsolution()?.setVariablesConfigurations(result.configurations);
239239
return result.success;

src/tasks/build/build-runner.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ describe('BuildRunner', () => {
175175

176176
await desktopBuildRunner.run(buildTaskDefinition, onOutput, cancellationTokenFactory().token);
177177

178-
expect(onOutput.mock.calls[0][0]).toContain('Completed: cbuild');
178+
expect(onOutput).toHaveBeenCalledTimes(0);
179179
});
180180

181181
it('sets the process env, including CMSIS env vars', async () => {

src/tasks/generator/generator-command.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ describe('GeneratorCommand', () => {
7070
await generatorCommand.handleRunGenerator('my-gen', 'debug');
7171

7272
expect(vscode.window.showInformationMessage).toHaveBeenCalledWith(
73-
'Starting generator my-gen for context debug ...'
73+
'Starting generator my-gen for context debug...'
7474
);
7575

7676
expect(cmsisToolboxManager.runCmsisTool).toHaveBeenCalledWith(

src/tasks/generator/generator-command.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,12 @@ export class GeneratorCommand {
5252
return;
5353
}
5454

55-
vscode.window.showInformationMessage(`Starting generator ${generator} for context ${context} ...`);
55+
const msg = `Starting generator ${generator} for context ${context}...`;
56+
vscode.window.showInformationMessage(msg);
5657

5758
const executableArgs = ['run', solutionFilePath, '-g', generator, '-c', context];
5859
const outputChannel = this.outputChannelProvider.getOrCreate(CMSIS_SOLUTION_OUTPUT_CHANNEL);
60+
outputChannel.appendLine(msg);
5961

6062
const [result] = await this.cmsisToolboxManager.runCmsisTool('csolution', executableArgs, line => outputChannel.appendLine(line.trimEnd()), undefined,
6163
undefined, true);

0 commit comments

Comments
 (0)