Improved Visual Studio Code Navigation

An area I’d like to see improved in a future release of VS is around code navigation. Specifically, I’d like to see the following suggested improvement:

When the developer enters a method in the active code window, an optional set of dockable windows appear and show methods calling the current method and methods called by the current method. Additional methods may be tied to the current method with a ShowWithMethodAttribute and shown below the callee methods on the right-hand side. This also works in reverse so that when viewing the attributed method, the referenced method is displayed on the left-hand side. Note that only source within the current solution is shown. A nice to have would be if we could capture data based on past forward/backward navigation through the code base to automatically suggest additional useful methods to show.

In the example below, the developer has opened his source code and navigated to the GetImage() method shown in the middle pane. Notice how the code flows across the screen. Notice the highlighting that leads the eyes naturally from callers to callees. Notice how some bugs and inconsistencies immediately stand out. For instance, in the top left DrawImage method, the values of the image out parameter is never tested for null. Notice the inconsistency in variable names of types RPLImage and System.Drawing.Image among the two DrawImage methods.

2007-05-18 Improved Visual Studio Code Navigation

Comments (3)

  1. iGurgi says:

    I second this suggestion.  Especially with widescreen monitors becoming more commonplace this would be infinitely useful.

  2. Mihailik says:

    I think the feature would make the GUI screen estate too crowded and ‘nerdish’. I mean it is really cool to see so much of related code but it’s still so far from ideal…

    Considering all pros and contras, it is better to stick with current simple-to-understand and really not overdesigned solution.

  3. says:

    With a single monitor, I completely agree this is way too much noise crowding around the actual code.  The first time I launch a new install of VS, I auto-hide all docked windows and disable auto-hide animiations.

    However, if you consider multimon scenarios, VS won’t (currently) let you split the main code viewing area across monitors but it will let you move dockable side windows to secondary screens.  It’s these dockable VS windows that I am suggesting should be used to wrap the primary code window so they can be moved to a periphery display to minimize noise and clutter.