-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Follow calls to external batch scripts #40
Comments
Some additional thoughts.. regarding points above |
Thanks @cmg-src for volunteering to take this on! I like the mock-up! I had another idea as well: to have a rectangle enclose all the nodes of the external script, but I'm not sure how easy it is to do in graphviz. Also, since it's just aesthetics at that point, we can definitely go with whatever works for you first and then maybe iterate. Thanks again! |
Did some research on the idea of to have a rectangle enclose all the nodes of the external script, but I'm not sure how easy it is to do in graphviz. It looks like this could be handled with subgraph 'clusters' .. [https://graphviz.org/Gallery/directed/cluster.html] |
The cluster is exactly what I had in mind, but if you think it becomes too busy let's stick to the design you have with the folder shape. Thanks! |
We could extend the tool to follow calls to external batch scripts, and produce a larger call graph including a set of scripts.
There is already some primitive logic to identify external calls in
CallGraph._AnnotateNode
, as it generatesCommand
instances of typeexternal_call
, but those commands are not processed in the later loop that goes through allCommand
instances. Therefore the logic to process external calls can be added to that loop.What we can do there is simply call
CallGraph.Build
again to recursively generate another instance ofCallGraph
, that we would need to add to a container in the originalCallGraph
instance itself, keeping track of this new type of connection.There are a few open questions that come to mind:
depth
parameter to limit how deep we go in the chain of calls.depth
). For example, by adding a single node for the file if we don't want or can't expand the given fileThe text was updated successfully, but these errors were encountered: