Esempio n. 1
0
        public bool SearchInPdb(out string filename, out int lineNumber, RenamedBase item)
        {
            filename   = null;
            lineNumber = -1;

            string s = item.NameOldPlain;
            int    i = s.LastIndexOf('.');

            if (i == -1)
            {
                return(false);
            }

            string       className = s.Substring(0, i);
            string       itemName  = s.Substring(i + 1);
            CodeLocation location  = null;

            foreach (PdbFile file in pdbfiles)
            {
                location = file.Resolver.FindLocation(className, itemName);
                if (location != null)
                {
                    break;
                }
            }

            if (location == null)
            {
                return(false);
            }

            filename   = location.FileName;
            lineNumber = (int)location.Line;
            return(true);
        }
Esempio n. 2
0
        private bool DetectMarkersForVS(out string filename, out int lineNumber, RenamedBase item)
        {
            filename   = null;
            lineNumber = -1;

            if (pdbfiles.Count == 0 || item.EntityType != EntityType.Method)
            {
                return(false);
            }

            return(SearchInPdb(out filename, out lineNumber, item));
        }
Esempio n. 3
0
        private void ptvElements_NodeSelect(object sender, NodeSelectEventArgs e)
        {
            focusedItem = null;
            if (e.Node != null && e.Node.Selected)
            {
                focusedItem = e.Node.Tag as RenamedBase;
            }

            EnableSelectionActions(focusedItem != null);
            slblSelected.Text = focusedItem == null ? "" : focusedItem.TransformSimple;
            commandManager.SetEnabled(Actions.OpenInEditor, focusedItem != null && DetectMarkersForVS(out focusedFilename, out focusedLine, focusedItem));
        }
        private void BuildResult(RenamedBase item)
        {
            ListViewItem l = new ListViewItem(item.NameOldSimple);

            l.ImageIndex = TreeBuilder.GetIconForEntity(item.EntityType, mainForm);
            lvResults.Items.Add(l);
            ItemDescriptor d = new ItemDescriptor(item);

            l.Tag = d;
            string tip;

            if (item is RenamedClass)
            {
                tip = TreeBuilder.BuildHintForClass((RenamedClass)item);
            }
            else
            {
                tip = TreeBuilder.BuildHintForItem((RenamedItem)item);
            }

            if (!mainForm.HavePdb)
            {
                tip += "Unable to map to source code, no PDB files attached.";
            }
            else
            {
                if (item.EntityType != EntityType.Method)
                {
                    tip += "Mapping to source code works only for methods.";
                }
                else
                {
                    string filename;
                    int    line;
                    if (mainForm.SearchInPdb(out filename, out line, item))
                    {
                        tip       += "Source position:\n" + filename + ":" + line + " (Ctrl+Click to open)";
                        d.Filename = filename;
                        d.Line     = line;
                    }
                    else
                    {
                        tip += "Unable to map to source code.";
                    }
                }
            }

            tip += "\nDouble-click to select in classes tree.";

            l.ToolTipText = tip;
        }
        public void UpdateGenericParams(IEntitySearcher searcher)
        {
            if (genericParams == null)
            {
                return;
            }

            for (int i = 0; i < genericParams.Length; i++)
            {
                if (genericParams[i].@namespace != null &&
                    (string.Compare(genericParams[i].nsCache[0], "System", StringComparison.Ordinal) != 0 || searcher.HaveSystemEntities))
                {
                    RenamedBase renamedBase = searcher.SearchForOldName(genericParams[i]);
                    if (renamedBase != null)
                    {
                        genericParams[i].AssignName(renamedBase.Name.NameNew);
                    }

                    genericParams[i].UpdateGenericParams(searcher);
                }
            }
        }
Esempio n. 6
0
 public Entity(Entity entity, RenamedBase item, IList <EntityName> methodParams)
 {
     this.methodParams = new List <EntityName>(methodParams);
     result            = entity.result;
     name = item.NameOldFull + "." + entity.name.Name;
 }
 public ItemDescriptor(RenamedBase item)
 {
     this.item = item;
 }
 public Entity(Entity entity, RenamedBase item, IList<EntityName> methodParams)
 {
   this.methodParams = new List<EntityName>(methodParams);
   result = entity.result;
   name = item.NameOldFull + "." + entity.name.Name;
 }
    private void BuildResult(RenamedBase item)
    {
      ListViewItem l = new ListViewItem(item.NameOldSimple);
      l.ImageIndex = TreeBuilder.GetIconForEntity(item.EntityType);
      lvResults.Items.Add(l);
      ItemDescriptor d = new ItemDescriptor(item);
      l.Tag = d;
      string tip;
      if (item is RenamedClass)
        tip = TreeBuilder.BuildHintForClass((RenamedClass)item);
      else
        tip = TreeBuilder.BuildHintForItem((RenamedItem)item);

      if (!mainForm.HavePdb)
        tip += "Unable to map to source code, no PDB files attached.";
      else
      {
        if (item.EntityType != EntityType.Method)
          tip += "Mapping to source code works only for methods.";
        else
        {
          string filename;
          int line;
          if (mainForm.SearchInPdb(out filename, out line, item))
          {
            tip += "Source position:\n" + filename + ":" + line + " (Ctrl+Click to open)";
            d.Filename = filename;
            d.Line = line;
          }
          else
            tip += "Unable to map to source code.";
        }
      }

      tip += "\nDouble-click to select in classes tree.";

      l.ToolTipText = tip;
    }
 public ItemDescriptor(INamedEntity entity)
 {
   this.entity = entity;
   renamed = entity as RenamedBase;
 }
 public ItemDescriptor(RenamedBase item)
 {
   this.item = item;
 }
Esempio n. 12
0
 public PineappleTreeNode FindNode(RenamedBase renamed)
 {
     return(nodesMap.TryGetValue(renamed, out PineappleTreeNode node) ? node : null);
 }
Esempio n. 13
0
 public void MapRenamed(RenamedBase renamed, PineappleTreeNode node)
 {
     nodesMap.Add(renamed, node);
 }
        private void BuildNormalNode(PineappleTreeNode node, INamedEntity entity, string originalLine)
        {
            node.ImageIndex = TreeBuilder.GetIconForEntity(entity.EntityType, mainForm);
            ItemDescriptor descriptor = new ItemDescriptor(entity);
            string         tooltip    = descriptor.GetToolTip();

            node.Tag = descriptor;

            RenamedItem item = entity as RenamedItem;

            if (item != null)
            {
                node.Text += "\nOwner class: " + item.Owner.NameOldFull;
            }

            RenamedBase renamedBase = (RenamedBase)entity;

            if (tbtnShort.Checked)
            {
                node.Text += "\nNew name: " + renamedBase.NameNew;
            }
            if (tbtnSimple.Checked)
            {
                node.Text += "\nNew name: " + renamedBase.NameNewSimple;
            }
            if (tbtnFull.Checked)
            {
                node.Text += "\nNew name: " + renamedBase.NameNewFull;
            }

            if (originalLine != null && Configs.Instance.ShowOriginal)
            {
                node.Text += "\nOriginal line: " + originalLine;
            }

            if (!mainForm.HavePdb)
            {
                tooltip += "Unable to map to source code, no PDB files attached.";
            }
            else
            {
                if (entity.EntityType != EntityType.Method)
                {
                    tooltip += "Mapping to source code works only for methods.";
                }
                else
                {
                    ProcessPdb(descriptor);
                    if (descriptor.Filename != null)
                    {
                        node.Text += "\n" + PathUtils.ShortenPath(descriptor.Filename, 100) + ":" + descriptor.Line;
                        tooltip   += descriptor.Filename + ":" + descriptor.Line;
                    }
                    else
                    {
                        tooltip += "Unable to map to source code.";
                    }
                }
            }

            node.ToolTipText = tooltip;
        }
 public ItemDescriptor(INamedEntity entity)
 {
     this.entity = entity;
     renamed     = entity as RenamedBase;
 }