Code navigation functionality, the ability to jump to different symbols and functions, within a code editor is not in itself a new concept. But what is new and different is that the Translator allows you not to just navigate through functions, but also navigate through the calls.
To see what I mean take a glance at this dummy code:
In this dummy code the function
foo() is called in two places. Once directly from the
main() function and once from the
bar() function. Code navigation allows us to easily see these two calls. By hovering the mouse over the pink
foo() in the annotation block on line two you’ll see something like this:
By clicking on the pink foo annotation the editor will highlight where the
foo() function is defined and if need be switch the editor over to the file where the function is defined. A small green highlight will appear and fade away rather like this:
Now by clicking on the second call of foo on line 11 the editor will again highlight line seven but notice how the iteration it is showing is now 2 of 2. The editor is actually showing the actual iteration of when
foo() is called by
Now what’s even more fun is that the navigation is bidirectional. We can navigate back the other way by clicking on foo in the annotation window, we go different places depending on whether we are on annotation 1 of 2 or 2 of 2.
main() from call one:
bar() from call two:
And a nice refinement we introduced in Iguana 5.6, you can also navigate back from the last line of of a function. This is very helpful with long functions (that you you cannot see on a single screen), because it means you do not have to scroll back up to the start of the function:
All this makes it extra-ordinarily easy to navigate through finding out the source of those calls that produce those odd boundary cases and so on.
This is also nicely complemented by the Error Stack Trace window for exceptions.