[svn] r6425: nemerle/trunk/ncc/hierarchy/NamespaceTree.n
VladD2
svnadmin at nemerle.org
Mon Jul 3 08:20:16 CEST 2006
Log:
Add Add debugging display (in VS) to NamespaceTree.Node.
Author: VladD2
Date: Mon Jul 3 08:20:14 2006
New Revision: 6425
Modified:
nemerle/trunk/ncc/hierarchy/NamespaceTree.n
Modified: nemerle/trunk/ncc/hierarchy/NamespaceTree.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/NamespaceTree.n (original)
+++ nemerle/trunk/ncc/hierarchy/NamespaceTree.n Mon Jul 3 08:20:14 2006
@@ -53,12 +53,18 @@
[DebuggerDisplay("NamespaceTree.Node: '{GetDisplayName()}'")]
public class Node {
public Parent : Node;
+
+ [DebuggerBrowsable(DebuggerBrowsableState.Never)]
name : string; // the same as edge from parent to this
+
public mutable Value : TypeInfoCache;
- [Accessor]
+ [DebuggerBrowsable(DebuggerBrowsableState.Never)]
internal mutable children : Hashtable [string, Node];
+ [DebuggerBrowsable(DebuggerBrowsableState.Never)]
+ public Children : Hashtable [string, Node] { get { children } }
+
public this (parent : Node, n : string, v : TypeInfoCache) {
Parent = parent;
name = n;
@@ -94,6 +100,7 @@
Name.ToString(".")
}
+ [DebuggerBrowsable(DebuggerBrowsableState.Never)]
public Name : list [string]
{
get {
@@ -114,9 +121,7 @@
}
// some namespace nodes are faked for the need of namespace aliases
- internal IsFromAlias : bool {
- get { name == null }
- }
+ public IsFromAlias : bool { get { name == null } }
public Clear () : void
{
@@ -369,6 +374,41 @@
_ = s.Append (")\n");
s.ToString ();
}
+
+ // Debuging support.
+ #pragma warning disable 10003
+
+ [System.Runtime.InteropServices.ComVisible(false)]
+ [DebuggerDisplay("NamespaceTree.Node: '{Name}'")]
+ private class NodeDebugDisplayHelper
+ {
+ public this (node : NamespaceTree.Node) { _node = node; }
+
+ [DebuggerBrowsable(DebuggerBrowsableState.Never)]
+ _node : NamespaceTree.Node;
+
+ public Name : string { get { _node.Name.ToString(".") } }
+
+ public Children : array [NamespaceTree.Node]
+ {
+ get
+ {
+ if (_node.Children is null)
+ array (0)
+ else
+ _node.Children.Values.ToArray().SortInplace((x, y) =>
+ x.Name.ToString(".").CompareTo(y.Name.ToString(".")))
+ }
+ }
+ }
+
+ [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+ private NodeDebugDisplay : NodeDebugDisplayHelper
+ {
+ get { NodeDebugDisplayHelper (this) }
+ }
+
+ #pragma warning restore 10003
}
internal mutable macro_context : int;
More information about the svn
mailing list