This commit is contained in:
isidor
2017-01-12 16:17:35 +01:00
parent cc7e44fbee
commit 2e82adbfa2
5 changed files with 21 additions and 8 deletions
@@ -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 {