hex13 / atom-lupa

Atom extension which displays outline for JavaScript files
MIT License
41 stars 4 forks source link

[FEATURE] Show call hierarchy: shows callers and callees #46

Open ocoka opened 7 years ago

ocoka commented 7 years ago

It's would be nice if it could be able to show a call hierarchy. Can't find any package or other software that can do this and at the same time has a go to line functionality. There is a separate software that can do Static File Analysis, with a lot of excessive features. Yes, I know that JS is dynamic language and this is complex problem to get definitely what call hierarchy can be, and what execution flow occurs... but I need to have at least something. Just for single file, without consideration of other files, and inner closures...

hex13 commented 7 years ago

It was always a plan. This will be possible with the new backend (it's my library called power-scope). But the new backend is not done yet. Although I'll look if there is a possibility to add in simple way feature you talk about to the backend, and then I might try to connect it to Lupa as second backend (it would be available in settings as opt in).

Generally it looks like that:

image

ocoka commented 7 years ago

Hi ! It's look impressive, I hope your idea will succeed ! btw. maybe you already know, but I want to mention that TernJS and blog post about it project behind the scenes build such map of possible call linkage

hex13 commented 7 years ago

Yeah, I've read this article of Marijn Haverbeke and it was very educational, Tern as library also can be good inspiration and starting point for such analysis.

But I had issues with Tern (it doesn't have things I need, and its codebase is too monolithic to extend this properly). I tried to use other Tern-like libraries (namely escope and babel-traverse) but none of these libraries didn't fit my needs, so I decided to write my own.