From eacbc248f8382e937ba18c39da6fcfe46680c9ca Mon Sep 17 00:00:00 2001 From: Wei Hu Date: Wed, 4 Sep 2024 17:23:17 +0800 Subject: [PATCH] Remove extra space to fix VS debug attachment (#4333) Resolves https://github.com/microsoft/typespec/issues/4332 extra space in argument for `child_process.spawn` ended up into missing --- packages/http-client-csharp/emitter/src/emitter.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/http-client-csharp/emitter/src/emitter.ts b/packages/http-client-csharp/emitter/src/emitter.ts index 159fdf033f..e3e44d5d38 100644 --- a/packages/http-client-csharp/emitter/src/emitter.ts +++ b/packages/http-client-csharp/emitter/src/emitter.ts @@ -139,7 +139,7 @@ export async function $onEmit(context: EmitContext) { const existingProjectOption = options["existing-project-folder"] ? `--existing-project-folder ${options["existing-project-folder"]}` : ""; - const debugFlag = (options.debug ?? false) ? " --debug" : ""; + const debugFlag = (options.debug ?? false) ? "--debug" : ""; const emitterPath = options["emitter-extension-path"] ?? import.meta.url; const projectRoot = findProjectRoot(dirname(fileURLToPath(emitterPath))); @@ -147,7 +147,7 @@ export async function $onEmit(context: EmitContext) { projectRoot + "/dist/generator/Microsoft.Generator.CSharp.dll" ); - const command = `dotnet --roll-forward Major ${generatorPath} ${outputFolder} -p ${options["plugin-name"]} ${newProjectOption} ${existingProjectOption}${debugFlag}`; + const command = `dotnet --roll-forward Major ${generatorPath} ${outputFolder} -p ${options["plugin-name"]}${constructCommandArg(newProjectOption)}${constructCommandArg(existingProjectOption)}${constructCommandArg(debugFlag)}`; Logger.getInstance().info(command); const result = await execAsync( @@ -180,6 +180,10 @@ export async function $onEmit(context: EmitContext) { } } +function constructCommandArg(arg: string): string { + return arg !== "" ? ` ${arg}` : ""; +} + async function execAsync( command: string, args: string[] = [],