From ba25f9cd4cec7c9712f37c1f3cedfe5a7c7c9958 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 9 Jul 2025 18:50:18 +0200 Subject: [PATCH] Fix PowerShell terminal link detection for paths with spaces (#254504) --- .../links/browser/terminalLocalLinkDetector.ts | 4 ++-- .../links/test/browser/terminalLocalLinkDetector.test.ts | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLocalLinkDetector.ts b/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLocalLinkDetector.ts index 3cfea79b814..e7b27e43556 100644 --- a/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLocalLinkDetector.ts +++ b/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLocalLinkDetector.ts @@ -52,8 +52,8 @@ const fallbackMatchers: RegExp[] = [ // C:\foo/bar baz:339: error ... // C:\foo/bar baz:339:12: error ... [#178584, Clang] /^(?(?.+):(?\d+)(?::(?\d+))?) ?:/, - // Cmd prompt - /^(?(?.+))>/, + // PowerShell and cmd prompt + /^(?:PS\s+)?(?(?[^>]+))>/, // The whole line is the path /^ *(?(?.+))/ ]; diff --git a/src/vs/workbench/contrib/terminalContrib/links/test/browser/terminalLocalLinkDetector.test.ts b/src/vs/workbench/contrib/terminalContrib/links/test/browser/terminalLocalLinkDetector.test.ts index 04d0dfa7415..32d6d384bb8 100644 --- a/src/vs/workbench/contrib/terminalContrib/links/test/browser/terminalLocalLinkDetector.test.ts +++ b/src/vs/workbench/contrib/terminalContrib/links/test/browser/terminalLocalLinkDetector.test.ts @@ -158,6 +158,8 @@ const supportedFallbackLinkFormats: LinkFormatInfo[] = [ { urlFormat: '{0}:{1}:{2} :', line: '5', column: '3', linkCellEndOffset: -2 }, { urlFormat: '{0}:{1}:', line: '5', linkCellEndOffset: -1 }, { urlFormat: '{0}:{1}:{2}:', line: '5', column: '3', linkCellEndOffset: -1 }, + // PowerShell prompt + { urlFormat: 'PS {0}>', linkCellStartOffset: 3, linkCellEndOffset: -1 }, // Cmd prompt { urlFormat: '{0}>', linkCellEndOffset: -1 }, // The whole line is the path