mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 09:08:48 +01:00
fixes #25104
This commit is contained in:
@@ -24,7 +24,6 @@ import { Source } from 'vs/workbench/parts/debug/common/debugSource';
|
||||
import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||
|
||||
const MAX_REPL_LENGTH = 10000;
|
||||
const UNKNOWN_SOURCE_LABEL = nls.localize('unknownSource', "Unknown Source");
|
||||
|
||||
export abstract class AbstractOutputElement implements ITreeElement {
|
||||
private static ID_COUNTER = 0;
|
||||
@@ -388,7 +387,7 @@ export class StackFrame implements IStackFrame {
|
||||
|
||||
public openInEditor(editorService: IWorkbenchEditorService, preserveFocus?: boolean, sideBySide?: boolean): TPromise<any> {
|
||||
|
||||
return this.source.name === UNKNOWN_SOURCE_LABEL ? TPromise.as(null) : editorService.openEditor({
|
||||
return !this.source.available ? TPromise.as(null) : editorService.openEditor({
|
||||
resource: this.source.uri,
|
||||
description: this.source.origin,
|
||||
options: {
|
||||
@@ -466,10 +465,7 @@ export class Thread implements IThread {
|
||||
}
|
||||
|
||||
return response.body.stackFrames.map((rsf, level) => {
|
||||
if (!rsf) {
|
||||
return new StackFrame(this, 0, new Source({ name: UNKNOWN_SOURCE_LABEL }, rsf.presentationHint), nls.localize('unknownStack', "Unknown stack location"), null, null);
|
||||
}
|
||||
let source = rsf.source ? new Source(rsf.source, rsf.source.presentationHint) : new Source({ name: UNKNOWN_SOURCE_LABEL }, rsf.presentationHint);
|
||||
let source = new Source(rsf.source, rsf.source ? rsf.source.presentationHint : rsf.presentationHint);
|
||||
if (this.process.sources.has(source.uri.toString())) {
|
||||
const alreadyCreatedSource = this.process.sources.get(source.uri.toString());
|
||||
alreadyCreatedSource.presenationHint = source.presenationHint;
|
||||
|
||||
@@ -3,16 +3,22 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as nls from 'vs/nls';
|
||||
import uri from 'vs/base/common/uri';
|
||||
import { DEBUG_SCHEME } from 'vs/workbench/parts/debug/common/debug';
|
||||
|
||||
const UNKNOWN_SOURCE_LABEL = nls.localize('unknownSource', "Unknown Source");
|
||||
|
||||
export class Source {
|
||||
|
||||
public uri: uri;
|
||||
|
||||
constructor(public raw: DebugProtocol.Source, public presenationHint: string) {
|
||||
const path = raw.path || raw.name;
|
||||
this.uri = raw.sourceReference > 0 ? uri.parse(`${DEBUG_SCHEME}:${path}`) : uri.file(path);
|
||||
if (!raw) {
|
||||
this.raw = { name: UNKNOWN_SOURCE_LABEL };
|
||||
}
|
||||
const path = this.raw.path || this.raw.name;
|
||||
this.uri = this.raw.sourceReference > 0 ? uri.parse(`${DEBUG_SCHEME}:${path}`) : uri.file(path);
|
||||
}
|
||||
|
||||
public get name() {
|
||||
@@ -27,6 +33,10 @@ export class Source {
|
||||
return this.raw.sourceReference;
|
||||
}
|
||||
|
||||
public get available() {
|
||||
return this.raw.name !== UNKNOWN_SOURCE_LABEL;
|
||||
}
|
||||
|
||||
public get inMemory() {
|
||||
return this.uri.toString().indexOf(`${DEBUG_SCHEME}:`) === 0;
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ export class DebugService implements debug.IDebugService {
|
||||
thread.fetchCallStack().then(callStack => {
|
||||
if (callStack.length > 0 && !this.viewModel.focusedStackFrame) {
|
||||
// focus first stack frame from top that has source location if no other stack frame is focussed
|
||||
const stackFrameToFocus = first(callStack, sf => !!sf.source, callStack[0]);
|
||||
const stackFrameToFocus = first(callStack, sf => sf.source && sf.source.available, callStack[0]);
|
||||
this.focusStackFrameAndEvaluate(stackFrameToFocus).done(null, errors.onUnexpectedError);
|
||||
this.windowService.getWindow().focus();
|
||||
aria.alert(nls.localize('debuggingPaused', "Debugging paused, reason {0}, {1} {2}", event.body.reason, stackFrameToFocus.source ? stackFrameToFocus.source.name : '', stackFrameToFocus.lineNumber));
|
||||
|
||||
Reference in New Issue
Block a user