mirror of
https://github.com/Microsoft/vscode
synced 2024-09-19 02:26:04 +00:00
debug model: introduce OutputExpressionContainer
This commit is contained in:
parent
0e17c435ad
commit
db40db0a34
|
@ -173,6 +173,12 @@ export abstract class ExpressionContainer implements debug.IExpressionContainer
|
|||
}
|
||||
}
|
||||
|
||||
export class OutputExpressionContainer extends ExpressionContainer {
|
||||
constructor(public name: string, stackFrame: debug.IStackFrame, reference: number, public annotation: string) {
|
||||
super(stackFrame, reference, generateUuid());
|
||||
}
|
||||
}
|
||||
|
||||
export class Expression extends ExpressionContainer implements debug.IExpression {
|
||||
static DEFAULT_VALUE = nls.localize('notAvailable', "not available");
|
||||
|
||||
|
@ -830,7 +836,7 @@ export class Model implements debug.IModel {
|
|||
}
|
||||
} else {
|
||||
// key-value output
|
||||
this.addReplElement(new KeyValueOutputElement((<any>value).prototype, value, nls.localize('snapshotObj', "Only primitive values are shown for this object.")));
|
||||
this.addReplElement(new NameValueOutputElement((<any>value).prototype, value, nls.localize('snapshotObj', "Only primitive values are shown for this object.")));
|
||||
}
|
||||
|
||||
this._onDidChangeREPLElements.fire();
|
||||
|
|
|
@ -20,7 +20,7 @@ import { IActionProvider } from 'vs/base/parts/tree/browser/actionsRenderer';
|
|||
import { ICancelableEvent } from 'vs/base/parts/tree/browser/treeDefaults';
|
||||
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
|
||||
import { IExpressionContainer, IExpression, IDebugService } from 'vs/workbench/parts/debug/common/debug';
|
||||
import { Model, NameValueOutputElement, Expression, ValueOutputElement, Variable } from 'vs/workbench/parts/debug/common/debugModel';
|
||||
import { Model, NameValueOutputElement, Expression, ValueOutputElement, Variable, OutputExpressionContainer } from 'vs/workbench/parts/debug/common/debugModel';
|
||||
import { renderVariable, renderExpressionValue, IVariableTemplateData, BaseDebugController } from 'vs/workbench/parts/debug/electron-browser/debugViewer';
|
||||
import { AddToWatchExpressionsAction, ClearReplAction } from 'vs/workbench/parts/debug/browser/debugActions';
|
||||
import { CopyAction } from 'vs/workbench/parts/debug/electron-browser/electronDebugActions';
|
||||
|
@ -86,7 +86,7 @@ export class ReplExpressionsRenderer implements IRenderer {
|
|||
private static VARIABLE_TEMPLATE_ID = 'variable';
|
||||
private static EXPRESSION_TEMPLATE_ID = 'inputOutputPair';
|
||||
private static VALUE_OUTPUT_TEMPLATE_ID = 'outputValue';
|
||||
private static NAME_VALUE_OUTPUT_TEMPLATE_ID = 'outputKeyValue';
|
||||
private static NAME_VALUE_OUTPUT_TEMPLATE_ID = 'outputNameValue';
|
||||
|
||||
private static FILE_LOCATION_PATTERNS: RegExp[] = [
|
||||
// group 0: the full thing :)
|
||||
|
@ -146,7 +146,7 @@ export class ReplExpressionsRenderer implements IRenderer {
|
|||
if (element instanceof ValueOutputElement) {
|
||||
return ReplExpressionsRenderer.VALUE_OUTPUT_TEMPLATE_ID;
|
||||
}
|
||||
if (element instanceof NameValueOutputElement) {
|
||||
if (element instanceof NameValueOutputElement || element instanceof OutputExpressionContainer) {
|
||||
return ReplExpressionsRenderer.NAME_VALUE_OUTPUT_TEMPLATE_ID;
|
||||
}
|
||||
|
||||
|
@ -397,7 +397,7 @@ export class ReplExpressionsRenderer implements IRenderer {
|
|||
}, event.ctrlKey || event.metaKey).done(null, errors.onUnexpectedError);
|
||||
}
|
||||
|
||||
private renderOutputNameValue(tree: ITree, output: NameValueOutputElement, templateData: IKeyValueOutputTemplateData): void {
|
||||
private renderOutputNameValue(tree: ITree, output: NameValueOutputElement | OutputExpressionContainer, templateData: IKeyValueOutputTemplateData): void {
|
||||
|
||||
// key
|
||||
if (output.name) {
|
||||
|
|
Loading…
Reference in a new issue