mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 17:19:48 +01:00
fixes #17739
This commit is contained in:
@@ -6,14 +6,13 @@
|
||||
import * as lifecycle from 'vs/base/common/lifecycle';
|
||||
import uri from 'vs/base/common/uri';
|
||||
import { TPromise } from 'vs/base/common/winjs.base';
|
||||
import { guessMimeTypes } from 'vs/base/common/mime';
|
||||
import { guessMimeTypes, MIME_TEXT } from 'vs/base/common/mime';
|
||||
import { IModel } from 'vs/editor/common/editorCommon';
|
||||
import { IModelService } from 'vs/editor/common/services/modelService';
|
||||
import { IModeService } from 'vs/editor/common/services/modeService';
|
||||
import { ITextModelResolverService, ITextModelContentProvider } from 'vs/editor/common/services/resolverService';
|
||||
import { IWorkbenchContribution } from 'vs/workbench/common/contributions';
|
||||
import { DEBUG_SCHEME, IDebugService, State } from 'vs/workbench/parts/debug/common/debug';
|
||||
import { Model } from 'vs/workbench/parts/debug/common/debugModel';
|
||||
import { Source } from 'vs/workbench/parts/debug/common/debugSource';
|
||||
|
||||
export class DebugContentProvider implements IWorkbenchContribution, ITextModelContentProvider {
|
||||
@@ -52,9 +51,12 @@ export class DebugContentProvider implements IWorkbenchContribution, ITextModelC
|
||||
this.modelsToDispose.push(model);
|
||||
|
||||
return model;
|
||||
}, err => {
|
||||
(<Model>this.debugService.getModel()).sourceIsUnavailable(resource);
|
||||
return err;
|
||||
}, (err: DebugProtocol.ErrorResponse) => {
|
||||
this.debugService.deemphasizeSource(resource);
|
||||
const modePromise = this.modeService.getOrCreateMode(MIME_TEXT);
|
||||
const model = this.modelService.createModel(err.message, modePromise, resource);
|
||||
|
||||
return model;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -476,6 +476,11 @@ export interface IDebugService {
|
||||
*/
|
||||
restartProcess(process: IProcess): TPromise<any>;
|
||||
|
||||
/**
|
||||
* Deemphasizes all sources with the passed uri. Source will appear as grayed out in callstack view.
|
||||
*/
|
||||
deemphasizeSource(uri: uri): void;
|
||||
|
||||
/**
|
||||
* Gets the current debug model.
|
||||
*/
|
||||
|
||||
@@ -556,7 +556,7 @@ export class Process implements debug.IProcess {
|
||||
}
|
||||
}
|
||||
|
||||
public sourceIsUnavailable(uri: uri): void {
|
||||
public deemphasizeSource(uri: uri): void {
|
||||
this.threads.forEach(thread => {
|
||||
thread.getCallStack().forEach(stackFrame => {
|
||||
if (stackFrame.source.uri.toString() === uri.toString()) {
|
||||
@@ -926,8 +926,8 @@ export class Model implements debug.IModel {
|
||||
this._onDidChangeWatchExpressions.fire();
|
||||
}
|
||||
|
||||
public sourceIsUnavailable(uri: uri): void {
|
||||
this.processes.forEach(p => p.sourceIsUnavailable(uri));
|
||||
public deemphasizeSource(uri: uri): void {
|
||||
this.processes.forEach(p => p.deemphasizeSource(uri));
|
||||
this._onDidChangeCallStack.fire();
|
||||
}
|
||||
|
||||
|
||||
@@ -801,6 +801,10 @@ export class DebugService implements debug.IDebugService {
|
||||
});
|
||||
}
|
||||
|
||||
public deemphasizeSource(uri: uri): void {
|
||||
this.model.deemphasizeSource(uri);
|
||||
}
|
||||
|
||||
public restartProcess(process: debug.IProcess): TPromise<any> {
|
||||
if (!process) {
|
||||
return this.createProcess(this.viewModel.selectedConfigurationName);
|
||||
|
||||
@@ -86,6 +86,8 @@ export class MockDebugService implements debug.IDebugService {
|
||||
public getViewModel(): debug.IViewModel {
|
||||
return null;
|
||||
}
|
||||
|
||||
public deemphasizeSource(uri: uri): void { }
|
||||
}
|
||||
|
||||
export class MockSession implements debug.ISession {
|
||||
|
||||
Reference in New Issue
Block a user