JBeurer
JBeurer

Reputation: 1717

Is there a "Go To Variable Type Declaration" function for C# in Visual Studio 2015 or a free plugin which does it?

void MagicalFunction(MagicalType magic)
{
    ...
    magic.Poof("something");
    ...
    var foo = magic.GetFoo();
    ...
}

Pressing the hotkey on variable magic would navigate to definition of type MagicalType.

Pressing the hotkey on foo would go to definition of type Foo which is not directly visible here because of type-inference.

Resharper plugin has this functionality (called Go To Type of Symbol) , but is there a built-in alternative or a free-extension that does this?

Upvotes: 16

Views: 4618

Answers (4)

Svein Terje Gaup
Svein Terje Gaup

Reputation: 1578

Right click on the "var" keyword, select "Go to definition" from context menu, and it will take you to the type definition of the inferred type of the variable. I have some tools installed, like Productivity Power Tools which were mentioned, so not sure if this option is available through clean VS2015.

Edit:

You can also with cursor on the "var" keyword press Ctrl-F12 (Go to Implementation), if you prefer to use keyboard. Ref: https://www.youtube.com/watch?v=xWcQhF-1hxA

Upvotes: 13

JuanR
JuanR

Reputation: 7783

The function you are looking for is "Navigate To".

For some weird reason, the keyboard shortcut was removed from VS 2015. You can see this by going into the Edit menu. The option will be there but has no shortcut assigned to it.

You can fix this manually. The default was:

CTRL + ,

Go to Tools > Options > Environment > Keyboard, search for "Edit.NavigateTo" and reassign the shortcut. You can then place the cursor on the variable and hit the shortcut and a tiny window will overlay on the top right hand corner with possible candidates, one of them being the type definition.

Upvotes: 5

Liu
Liu

Reputation: 982

Productivity Power Tools has a feature "Ctrl + Click Go To Definition This extension gives the editor a web browser by adding clickable hyperlinks to symbols in your code as you hold down the Ctrl key."

https://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef

it deosn't work in the first case but it works very well when you ctrl click "var" in the second case

Upvotes: -1

PMV
PMV

Reputation: 2128

Sort of.

You could press F12 on "magic" to get to its definition, and then F12 again to get to its class.

Also, while you can't get anything meaningful by F12 on "foo" since it would just highlight the line you're already on, if you F12 from the "var" immediately prior to foo, it will jump you to the Foo class, even though that type is being inferred.

Upvotes: 5

Related Questions