diff --git a/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.ts b/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.ts index 57dcd68c78a3..bb1ddd7eca39 100644 --- a/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.ts +++ b/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.ts @@ -205,7 +205,7 @@ export function toLinkSuffix(match: RegExpExecArray | null): ILinkSuffix | null } // Paths cannot start with opening brackets -const linkWithSuffixPathCharacters = /(?[^\s\[\({][^\s]*)$/; +const linkWithSuffixPathCharacters = /(?[^\s\|\[\({][^\s\|]*)$/; export function detectLinks(line: string, os: OperatingSystem) { // 1: Detect all links on line via suffixes first diff --git a/src/vs/workbench/contrib/terminalContrib/links/test/browser/terminalLinkParsing.test.ts b/src/vs/workbench/contrib/terminalContrib/links/test/browser/terminalLinkParsing.test.ts index df5db85dd4a6..032e9207732c 100644 --- a/src/vs/workbench/contrib/terminalContrib/links/test/browser/terminalLinkParsing.test.ts +++ b/src/vs/workbench/contrib/terminalContrib/links/test/browser/terminalLinkParsing.test.ts @@ -329,6 +329,45 @@ suite('TerminalLinkParsing', () => { ); }); + test('should exclude pipe characters from link paths', () => { + deepStrictEqual( + detectLinks('|C:\\Github\\microsoft\\vscode|', OperatingSystem.Windows), + [ + { + path: { + index: 1, + text: 'C:\\Github\\microsoft\\vscode' + }, + prefix: undefined, + suffix: undefined + } + ] as IParsedLink[] + ); + }); + + test('should exclude pipe characters from link paths with suffixes', () => { + deepStrictEqual( + detectLinks('|C:\\Github\\microsoft\\vscode:400|', OperatingSystem.Windows), + [ + { + path: { + index: 1, + text: 'C:\\Github\\microsoft\\vscode' + }, + prefix: undefined, + suffix: { + col: undefined, + row: 400, + suffix: { + index: 27, + text: ':400' + } + } + } + ] as IParsedLink[] + ); + }); + suite('should detect file names in git diffs', () => { test('--- a/foo/bar', () => { deepStrictEqual(