Browse Source

Sort variables alphabetically

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3134 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 18 years ago
parent
commit
755f269c55
  1. 34
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Ast/ArrayIndexerExpression.cs
  2. 4
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Ast/LocalVariableIdentifierExpression.cs
  3. 51
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Ast/MemberReferenceExpression.cs
  4. 3
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Expression.Create.cs
  5. 7
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Expression.cs

34
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Ast/ArrayIndexerExpression.cs

@ -18,6 +18,7 @@ namespace Debugger.Expressions @@ -18,6 +18,7 @@ namespace Debugger.Expressions
{
Expression targetObject;
Expression[] arguments;
string name;
public Expression TargetObject {
get { return targetObject; }
@ -39,6 +40,7 @@ namespace Debugger.Expressions @@ -39,6 +40,7 @@ namespace Debugger.Expressions
indicesAst.Add(new PrimitiveExpression(indice));
}
this.arguments = indicesAst.ToArray();
this.name = GetName();
}
public ArrayIndexerExpression(Expression targetObject, Expression[] arguments)
@ -48,6 +50,24 @@ namespace Debugger.Expressions @@ -48,6 +50,24 @@ namespace Debugger.Expressions
this.targetObject = targetObject;
this.arguments = arguments;
this.name = GetName();
}
string GetName()
{
StringBuilder sb = new StringBuilder();
sb.Append("[");
bool isFirst = true;
foreach(Expression argument in arguments) {
if (isFirst) {
isFirst = false;
} else {
sb.Append(", ");
}
sb.Append(argument.Code);
}
sb.Append("]");
return sb.ToString();
}
public override string Code {
@ -58,19 +78,7 @@ namespace Debugger.Expressions @@ -58,19 +78,7 @@ namespace Debugger.Expressions
public override string CodeTail {
get {
StringBuilder sb = new StringBuilder();
sb.Append("[");
bool isFirst = true;
foreach(Expression argument in arguments) {
if (isFirst) {
isFirst = false;
} else {
sb.Append(", ");
}
sb.Append(argument.Code);
}
sb.Append("]");
return sb.ToString();
return name;
}
}

4
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Ast/LocalVariableIdentifierExpression.cs

@ -20,6 +20,7 @@ namespace Debugger.Expressions @@ -20,6 +20,7 @@ namespace Debugger.Expressions
{
MethodInfo method;
ISymUnmanagedVariable symVar;
string name;
public MethodInfo Method {
get { return method; }
@ -36,11 +37,12 @@ namespace Debugger.Expressions @@ -36,11 +37,12 @@ namespace Debugger.Expressions
this.method = method;
this.symVar = symVar;
this.name = symVar.Name;
}
public override string Code {
get {
return symVar.Name;
return name;
}
}

51
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Ast/MemberReferenceExpression.cs

@ -22,6 +22,7 @@ namespace Debugger.Expressions @@ -22,6 +22,7 @@ namespace Debugger.Expressions
Expression targetObject;
MemberInfo memberInfo;
Expression[] arguments;
string name;
public Expression TargetObject {
get { return targetObject; }
@ -42,6 +43,7 @@ namespace Debugger.Expressions @@ -42,6 +43,7 @@ namespace Debugger.Expressions
this.targetObject = targetObject;
this.memberInfo = memberInfo;
this.arguments = arguments ?? new Expression[0];
this.name = GetName();
}
public override string Code {
@ -53,38 +55,43 @@ namespace Debugger.Expressions @@ -53,38 +55,43 @@ namespace Debugger.Expressions
sb.Append(targetObject.Code);
}
sb.Append(".");
sb.Append(this.CodeTail);
sb.Append(name);
return sb.ToString();
}
}
public override string CodeTail {
get {
StringBuilder sb = new StringBuilder();
sb.Append(memberInfo.Name);
if (arguments.Length > 0) {
if (memberInfo is PropertyInfo) {
sb.Append("[");
} else {
sb.Append("(");
}
bool isFirst = true;
foreach(Expression argument in arguments) {
if (isFirst) {
isFirst = false;
} else {
sb.Append(", ");
}
sb.Append(argument.Code);
}
if (memberInfo is PropertyInfo) {
sb.Append("]");
return name;
}
}
string GetName()
{
StringBuilder sb = new StringBuilder();
sb.Append(memberInfo.Name);
if (arguments.Length > 0) {
if (memberInfo is PropertyInfo) {
sb.Append("[");
} else {
sb.Append("(");
}
bool isFirst = true;
foreach(Expression argument in arguments) {
if (isFirst) {
isFirst = false;
} else {
sb.Append(")");
sb.Append(", ");
}
sb.Append(argument.Code);
}
if (memberInfo is PropertyInfo) {
sb.Append("]");
} else {
sb.Append(")");
}
return sb.ToString();
}
return sb.ToString();
}
protected override Value EvaluateInternal(StackFrame context)

3
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Expression.Create.cs

@ -55,6 +55,7 @@ namespace Debugger.Expressions @@ -55,6 +55,7 @@ namespace Debugger.Expressions
members.Add(this.AppendPropertyReference(property));
}
members.Sort();
return members.ToArray();
}
@ -87,6 +88,7 @@ namespace Debugger.Expressions @@ -87,6 +88,7 @@ namespace Debugger.Expressions
pars.Add(new ParameterIdentifierExpression(methodInfo, i));
}
pars.Sort();
return pars.ToArray();
}
@ -99,6 +101,7 @@ namespace Debugger.Expressions @@ -99,6 +101,7 @@ namespace Debugger.Expressions
vars.Add(new LocalVariableIdentifierExpression(methodInfo, var));
}
vars.Sort();
return vars.ToArray();
}
}

7
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Expression.cs

@ -14,7 +14,7 @@ namespace Debugger.Expressions @@ -14,7 +14,7 @@ namespace Debugger.Expressions
/// Represents a piece of code that can be evaluated.
/// For example "a[15] + 15".
/// </summary>
public abstract partial class Expression: DebuggerObject
public abstract partial class Expression: DebuggerObject, IComparable<Expression>
{
static Dictionary<Expression, Value> expressionCache;
static DebuggeeState expressionCache_debuggerState;
@ -31,6 +31,11 @@ namespace Debugger.Expressions @@ -31,6 +31,11 @@ namespace Debugger.Expressions
}
}
public int CompareTo(Expression other)
{
return this.CodeTail.CompareTo(other.CodeTail);
}
public override string ToString()
{
return this.Code;

Loading…
Cancel
Save