Ejemplo n.º 1
0
        IEnumerable <IAnalyzerTreeNodeData> FindReferencesInType(TypeDef type)
        {
            IAnalyzerTreeNodeData newNode = null;

            try {
                if (!TypesHierarchyHelpers.IsBaseType(analyzedMethod.DeclaringType, type, resolveTypeArguments: false))
                {
                    yield break;
                }

                foreach (MethodDef method in type.Methods)
                {
                    if (TypesHierarchyHelpers.IsBaseMethod(analyzedMethod, method))
                    {
                        bool hidesParent = !method.IsVirtual ^ method.IsNewSlot;
                        newNode = new MethodNode(method, hidesParent)
                        {
                            Context = Context
                        };
                    }
                }
            }
            catch (ResolveException) {
                // ignore this type definition. maybe add a notification about such cases.
            }

            if (newNode != null)
            {
                yield return(newNode);
            }
        }
Ejemplo n.º 2
0
        public void OnActivated(IAnalyzerTreeNodeData node)
        {
            if (node == null)
            {
                throw new ArgumentNullException(nameof(node));
            }
            bool newTab = Keyboard.Modifiers == ModifierKeys.Control || Keyboard.Modifiers == ModifierKeys.Shift;

            FollowNode(node, newTab, null);
        }
Ejemplo n.º 3
0
 public void Add(IAnalyzerTreeNodeData node)
 {
     if (node is EntityNode)
     {
         var an    = node as EntityNode;
         var found = this.TreeView.Root.DataChildren.OfType <EntityNode>().FirstOrDefault(n => n.Member == an.Member);
         if (found != null)
         {
             found.TreeNode.IsExpanded = true;
             this.TreeView.SelectItems(new ITreeNodeData[] { found });
             this.TreeView.Focus();
             return;
         }
     }
     this.TreeView.Root.Children.Add(this.TreeView.Create(node));
     node.TreeNode.IsExpanded = true;
     this.TreeView.SelectItems(new ITreeNodeData[] { node });
     this.TreeView.Focus();
 }
Ejemplo n.º 4
0
		public void OnActivated(IAnalyzerTreeNodeData node) {
			if (node == null)
				throw new ArgumentNullException();
			bool newTab = Keyboard.Modifiers == ModifierKeys.Control || Keyboard.Modifiers == ModifierKeys.Shift;
			FollowNode(node, newTab, null);
		}
Ejemplo n.º 5
0
		public void Add(IAnalyzerTreeNodeData node) {
			if (node is EntityNode) {
				var an = node as EntityNode;
				var found = this.treeView.Root.DataChildren.OfType<EntityNode>().FirstOrDefault(n => n.Member == an.Member);
				if (found != null) {
					found.TreeNode.IsExpanded = true;
					this.treeView.SelectItems(new ITreeNodeData[] { found });
					this.treeView.Focus();
					return;
				}
			}
			this.treeView.Root.Children.Add(this.treeView.Create(node));
			node.TreeNode.IsExpanded = true;
			this.treeView.SelectItems(new ITreeNodeData[] { node });
			this.treeView.Focus();
		}