league1991 / CodeAtlasVsix

A graph-based code navigation plugin for Visual Studio
https://marketplace.visualstudio.com/items?itemName=YaobinOuyang.CodeAtlas
GNU General Public License v2.0
247 stars 40 forks source link

Unable to add symbol/classes to graph #15

Open smalltimepro opened 3 years ago

smalltimepro commented 3 years ago

Hi, Installed the extension from marketplace for 2019 and ran for solution and projects seperately for c# coding. Ananlysis runs and saves file but no graph is created except for the projects. Have tried many times with variation. unable to click and add any method/class/symbol to graph even manually.

league1991 commented 3 years ago

@smalltimepro Please check if there is anything below the CodeGraphData\Result_solution\xml folder.

If it's empty, that means something wrong happened during analysis process. If not, that means the analysis process actually succeeded, symbols should be shown when you place the cursor on a function/class and press Alt+F.

thelazydogsback commented 3 years ago

I'm having the same problem -- analysis looks ok (tons of XML files generated) but the only graph items that have any information or are connected in any way are the two projects. If a use "sync w/editor" or ALT-F or "Show in graph", then an item will be generated in the graph for the item, but it is alone/orphaned in the graph and not connected to anything and has no information -- there don't seem to be any relationships between any entities. For example, "find callers" or "find calees" does nothing.

Ah, I just saw this: "I usually work on C++ and the support of C# is incomplete. Theoretically it's possible because doxygen should support C# interface. I'll do that later."

If this is the case, you should probably display a warning to the user when a .CS project is analyzed. I wonder if Doxygen understands the latest C# 8 (and now C# 9) syntax -- it could be that it just generates partially bad data for modern C# files?

league1991 commented 3 years ago

@thelazydogsback I think it is because of the limited capability of doxygen. It can't dig out the relationship sometimes, even for C++. I am afraid you have to add the edges indicating the relationships manually.