deathmarine / Luyten

An Open Source Java Decompiler Gui for Procyon
Other
5k stars 999 forks source link

Improve classes navigation functionality #28

Closed greenozon closed 9 years ago

greenozon commented 9 years ago

An idea about improving the classes navigation functionality in the tool as follows:

1) Once you have a java class opened, you have java methods, classes instances, variables, etc etc on the right panel.

So how about this: if the user press down lets say [CTRL] button then click over some java class/method/var/etc) - Luyten will catch that event, will analyze the clicked token and will try to figure out if the currently opened tree items has that element (lets say user clicked over available java class) and then, the Luyten will navigate to the clicked object by opening a new tab (or activating the previously opened..)

2) Once feature number 1 will be available, add support for the popup menu for the underlying token - add lets say "Go to ..." menu item that will do the same steps as in step 1)

3) Once number 1 will be available, add history tracking like this: keep the object jumps in history list (internally) and allow user to navigate forward and backward over that history lets say using well-known key combination like [ALT} + [->](right arrow) and [ALT] + [<-} each combination will make user really happy cause that the intuitive way of sources browsing!

4) Once 3) will be available, consider adding Navigate forward/backward as menu items in main menu

deathmarine commented 9 years ago
zerdei commented 9 years ago

Hi, last year I started to develop this feature (1), try this branch on my fork: https://github.com/zerdei/Luyten/tree/hyperlinks

Ctrl+Click works on classes and methods. It generates link strings that can be used to make a navigation history (2-3).

The limitation is that local variable metadata are not fully available in Procyon result, so local variables are not navigable. And it will navigate you into Java classes like String or Integer, and decompiles their codes, I could not disble this.

But, it could be a starting point, I can generate a pull request if you like.

deathmarine commented 9 years ago

Sure that would be great.