BT

Future Focus: Call Hierarchy in Visual Studio

| by Abel Avram Follow 10 Followers on Mar 13, 2008. Estimated reading time: 2 minutes |

The Visual Studio team has started to shed some light on the current development of Visual Studio, revealing some of the features that will most likely be available in the next release of Microsoft's IDE, and inviting everyone to comment on those features while in their incipient phase.

Code Gallery has been chosen as the open forum to discuss new Visual Studio features, and the project is available here. The latest feature to be discussed is Call Hierarchy.

What is Call Hierarchy?

According to Charlie Calvert, Call Hierarchy is:

One of many features that the team has planned for the next version of the IDE. It allows developers to explore a code execution path by showing all calls to, or calls from, a selected method. There are several scenarios in which this functionality might be useful. It will allow developers to:

  • Get a better understanding of how code flows
  • Navigate through their code
  • Understand the impact of making changes to their code.

This is what it makes it different from other features:

  • Unlike Find All References, it will allow you to drill down several levels deep so that you can view complex chains of method calls and additional entry points.
  • Unlike the run time Call Stack displayed by the debugger which shows a single code execution path, the Call Hierarchy will be available at design time, and it will allow you to explore all possible execution paths.

Implementing Call Hierarchy

There are currently two ways proposed to display the Call Hierarchy:

  • The "In-Depth Understanding" visualization will allow developers to thoroughly explore a call hierarchy.
  • The "Quick Understanding" visualization will help developers quickly navigate or explore a call hierarchy while still inside the editor window.

The "In-Depth Understanding" will open up a docking window displaying the following information:

  • The Calls To tree view shows all the methods that call the selected method. The tree visible in this sub-window can be expanded so that you can drill deeper into the stack of callers.
  • The Calls From tree view shows all the methods called by the selected method. This tree can be expanded to further explore the stack of called methods.
  • Preview – This pane provides a quick read-only preview of the code surrounding the selected method.

The "Quick Understanding" will not display the Call Hierarchy information in a docking window but inside an inline view, allowing the developer to stay in the code context. Either way, everyone is invited to comment on this proposed feature and give a feedback here.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

It was time ! by Pablo García

It was time MS introduce this feature on its development IDE !

Re: It was time ! by Pavel Samokha

As far as I remember Eclipse has such feature for a long time.
As well as in .Net Reflector can show this for you (from user-side a little slow).

Typical Microsoft by Neil Bartlett

Well, this is hardly the first time Microsoft have copied a feature that the competition has had for many years, and then claim it as an amazing new innovation.

Re: Typical Microsoft by Charles Cherry

<Rant>
My IDE can beat up YOUR IDE, so THERE! Nyah!

My IDE had it first! You copy-cat!

Would the Microsoft Bashers please take their comments elsewhere? Your prepubescent desire to always prove that "your" language or "your" IDE is better really gets old, you know?

Exactly WHERE in this article is Microsoft claiming innovation on this feature?

Exactly WHERE in this article is Microsoft claiming that they are the first to introduce this amazing new feature for the first time?

And can you explain WHY it matters that other IDE's already have this feature?
</rant>

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

4 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT