From ffbb046cd4b41e22615f21fe4414fa3f94a056bf Mon Sep 17 00:00:00 2001 From: uniqueiniquity Date: Mon, 2 Apr 2018 13:58:31 -0700 Subject: [PATCH] Consume extra parts of file path --- src/server/server.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/server/server.ts b/src/server/server.ts index 4b23b37f9f9..d4c20428a35 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -598,7 +598,9 @@ namespace ts.server { if (option && value) { switch (option) { case "-file": - logEnv.file = getLogPath(args, i); + const logPathAndNumberOfExtraParts = getLogPath(args, i + 1); + logEnv.file = logPathAndNumberOfExtraParts[0]; + i += logPathAndNumberOfExtraParts[1]; break; case "-level": const level = getLogLevel(value); @@ -616,17 +618,19 @@ namespace ts.server { return logEnv; } - function getLogPath(args: string[], initialIndex: number) { - let pathStart = args[initialIndex + 1]; + function getLogPath(args: string[], initialIndex: number): [string, number] { + let pathStart = args[initialIndex]; + let extraPartCounter = 0; if (pathStart.charCodeAt(0) === CharacterCodes.doubleQuote && pathStart.charCodeAt(pathStart.length - 1) !== CharacterCodes.doubleQuote) { - for (let i = initialIndex + 2; i < args.length; i++) { + for (let i = initialIndex + 1; i < args.length; i++) { pathStart += " "; pathStart += args[i]; + extraPartCounter++; if (pathStart.charCodeAt(pathStart.length - 1) === CharacterCodes.doubleQuote) break; } } - return stripQuotes(pathStart); + return [stripQuotes(pathStart), extraPartCounter]; } function getLogLevel(level: string) {