From ef6d44f53aaec7afe6bcb4da80976ae459a4f8b8 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 5 Mar 2021 15:21:05 +0100 Subject: [PATCH] debug console shouldn't collapse messages when they have different source locations fixes #118210 --- src/vs/workbench/contrib/debug/common/replModel.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/debug/common/replModel.ts b/src/vs/workbench/contrib/debug/common/replModel.ts index cb0918d67ad..61fde3f5893 100644 --- a/src/vs/workbench/contrib/debug/common/replModel.ts +++ b/src/vs/workbench/contrib/debug/common/replModel.ts @@ -198,6 +198,17 @@ export class ReplGroup implements IReplElement { } } +function areSourcesEqual(first: IReplElementSource | undefined, second: IReplElementSource | undefined): boolean { + if (!first && !second) { + return true; + } + if (first && second) { + return first.column === second.column && first.lineNumber === second.lineNumber && first.source.uri.toString() === second.source.uri.toString(); + } + + return false; +} + export class ReplModel { private replElements: IReplElement[] = []; private readonly _onDidChangeElements = new Emitter(); @@ -229,7 +240,7 @@ export class ReplModel { const previousElement = this.replElements.length ? this.replElements[this.replElements.length - 1] : undefined; if (previousElement instanceof SimpleReplElement && previousElement.severity === sev) { const config = this.configurationService.getValue('debug'); - if (previousElement.value === data && config.console.collapseIdenticalLines) { + if (previousElement.value === data && areSourcesEqual(previousElement.sourceData, source) && config.console.collapseIdenticalLines) { previousElement.count++; // No need to fire an event, just the count updates and badge will adjust automatically return;