diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 5b97853ef25bc309d0566c88daa1833420cf5b36..ddd0be8e6d741638579d55059b3e1816b8530296 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -432,10 +432,10 @@ export class Thread implements debug.IThread { return response.body.stackFrames.map((rsf, level) => { if (!rsf) { - return new StackFrame(this, 0, new Source({ name: UNKNOWN_SOURCE_LABEL }, false), nls.localize('unknownStack', "Unknown stack location"), null, null); + return new StackFrame(this, 0, new Source({ name: UNKNOWN_SOURCE_LABEL }, true), nls.localize('unknownStack', "Unknown stack location"), null, null); } - return new StackFrame(this, rsf.id, rsf.source ? new Source(rsf.source) : new Source({ name: UNKNOWN_SOURCE_LABEL }, false), rsf.name, rsf.line, rsf.column); + return new StackFrame(this, rsf.id, rsf.source ? new Source(rsf.source, rsf.source.presentationHint === 'deemphasize') : new Source({ name: UNKNOWN_SOURCE_LABEL }, true), rsf.name, rsf.line, rsf.column); }); }, (err: Error) => { if (this.stoppedDetails) { @@ -560,7 +560,7 @@ export class Process implements debug.IProcess { this.threads.forEach(thread => { thread.getCallStack().forEach(stackFrame => { if (stackFrame.source.uri.toString() === uri.toString()) { - stackFrame.source.available = false; + stackFrame.source.deemphasize = true; } }); }); diff --git a/src/vs/workbench/parts/debug/common/debugSource.ts b/src/vs/workbench/parts/debug/common/debugSource.ts index e51a24cfefb882ed0084dca578746d29f297dea5..f616063b26859fcc762c9cb9ebc2eb381a2dd73b 100644 --- a/src/vs/workbench/parts/debug/common/debugSource.ts +++ b/src/vs/workbench/parts/debug/common/debugSource.ts @@ -9,14 +9,12 @@ import { DEBUG_SCHEME } from 'vs/workbench/parts/debug/common/debug'; export class Source { public uri: uri; - public available: boolean; private static INTERNAL_URI_PREFIX = `${DEBUG_SCHEME}://internal/`; - constructor(public raw: DebugProtocol.Source, available = true) { + constructor(public raw: DebugProtocol.Source, public deemphasize: boolean) { const path = raw.path || raw.name; this.uri = raw.sourceReference > 0 ? uri.parse(Source.INTERNAL_URI_PREFIX + raw.sourceReference + '/' + path) : uri.file(path); - this.available = available; } public get name() { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts index f6a27539f9b6354fa22da6f1ea2396918d8e2f88..4ba2c467049236083a710be94860192e048c4839 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts @@ -554,7 +554,7 @@ export class CallStackRenderer implements IRenderer { } private renderStackFrame(stackFrame: debug.IStackFrame, data: IStackFrameTemplateData): void { - stackFrame.source.available ? dom.removeClass(data.stackFrame, 'disabled') : dom.addClass(data.stackFrame, 'disabled'); + stackFrame.source.deemphasize ? dom.addClass(data.stackFrame, 'disabled') : dom.removeClass(data.stackFrame, 'disabled'); data.file.title = stackFrame.source.raw.path || stackFrame.source.name; data.label.textContent = stackFrame.name; data.label.title = stackFrame.name; diff --git a/src/vs/workbench/parts/debug/test/common/debugSource.test.ts b/src/vs/workbench/parts/debug/test/common/debugSource.test.ts index ae95f3710e20931a04fb1d7679106a0847c79f9f..890b93aa85192c07380a5c228b25ba968e8176d1 100644 --- a/src/vs/workbench/parts/debug/test/common/debugSource.test.ts +++ b/src/vs/workbench/parts/debug/test/common/debugSource.test.ts @@ -15,9 +15,9 @@ suite('Debug - Source', () => { path: '/xx/yy/zz', sourceReference: 0 }; - const source = new Source(rawSource); + const source = new Source(rawSource, false); - assert.equal(source.available, true); + assert.equal(source.deemphasize, false); assert.equal(source.name, rawSource.name); assert.equal(source.inMemory, false); assert.equal(source.reference, rawSource.sourceReference); @@ -30,9 +30,9 @@ suite('Debug - Source', () => { name: 'internalModule.js', sourceReference: 11 }; - const source = new Source(rawSource); + const source = new Source(rawSource, true); - assert.equal(source.available, true); + assert.equal(source.deemphasize, true); assert.equal(source.name, rawSource.name); assert.equal(source.inMemory, true); assert.equal(source.reference, rawSource.sourceReference);