Browse Source

use pretty print of an expression... much better!

pull/11/head
Eusebiu Marcu 16 years ago
parent
commit
c079a6806e
  1. 54
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs

54
src/AddIns/Debugger/Debugger.AddIn/TreeModel/ExpressionNode.cs

@ -78,62 +78,10 @@ namespace Debugger.AddIn.TreeModel @@ -78,62 +78,10 @@ namespace Debugger.AddIn.TreeModel
get {
if (!evaluated) EvaluateExpression();
return GetFullName() ?? Name.Trim();
return this.expression.PrettyPrint() ?? Name.Trim();
}
}
private string GetFullName()
{
// TODO : do this better
if (expression is MemberReferenceExpression) {
var memberExpression = (MemberReferenceExpression)expression;
Expression currentExpression = memberExpression;
Stack<string> stack = new Stack<string>();
while (currentExpression is MemberReferenceExpression)
{
var exp = (MemberReferenceExpression)currentExpression;
stack.Push(exp.MemberName);
stack.Push(".");
currentExpression = exp.TargetObject;
}
if (currentExpression is CastExpression) {
var castExpression = (CastExpression)currentExpression;
currentExpression = castExpression.Expression;
while (currentExpression is MemberReferenceExpression)
{
var exp = (MemberReferenceExpression)currentExpression;
stack.Push(exp.MemberName);
stack.Push(".");
currentExpression = exp.TargetObject;
}
}
if (currentExpression is IdentifierExpression) {
var identifierExpression = (IdentifierExpression)currentExpression;
stack.Push(identifierExpression.Identifier);
}
if (currentExpression is ThisReferenceExpression) {
stack.Push("this");
}
// create fullname
StringBuilder sb = new StringBuilder();
while(stack.Count > 0)
sb.Append(stack.Pop());
fullName = sb.ToString();
return fullName;
}
return null;
}
public override string Type {
get {
if (!evaluated) EvaluateExpression();

Loading…
Cancel
Save