I started writing this extension because I was annoyed that there was no shortcut to navigate from a _mediator.Send(command)
line to its corresponding Handle()
method.
I soon realized that this is useful for more cases, too. Whenever I have the cursor under a variable or a type declaration, I can now use the command Navigate to Handler
to see every public or protected method that takes that type as a parameter.
Tip
It is recommended that you create a shortcut for convenience. I'm using CTRL+ALT+H.
If only one method takes the type as a parameter, the command navigates directly to it by opening that file and positioning the cursor on the relevant method.
If more than one match exists, the results will be shown in a tool window that you can either have floating or docked.
Multiple matches are also shown in Visual Studio's output window under Public Handler Results.
In either case, you can double-click on the match you prefer.
So, if you press the shortcut and nothing seems to happen, your Output Window
will see it there.
Updates
v1.9
- Fixes an issue where not all symbols were found in some cases (by Giorgi)
- Removes private methods from the search results
- Adds Method Access to the search results (protected, internal, public)
- Removes the parentheses from the "as" column in the search results
- Adds (...) behind each method name in search results to better indicate that it is a method
- Updates Nuget package references
v1.8
- Improves on generic types (probably not perfect yet, but the weekend is only so long)
- Slight performance improvements
- Slight visual improvement in the tool window (not dialog window as previously mentioned in v1.7)
v1.7
- Now shows multiple results in a dialog window, allowing you to choose which one to navigate to
This is the first iteration and will be improved in the future. Feedback is appreciated, either here or on GitHub.
v1.6
- Significantly improves on finding generic types. Does not work on covariant or contravariant types yet.
If your interface is declared as ICommand<out TInput, out TOutput>, which is covariant, the extension will not work,
but it will work if your cursor is over any types that implement it, like ICommand<string, int> or ICommand<Boat, Result>.
v1.5
- Now matches interfaces
- Additional performance and stability improvements
v1.4
- Stabilize how generic types are found
- Fixes an issue where the extension would not work in some cases
- Performance improvements
v1.3
- Now also finds inherited types
- Now also finds interface type implementations
- If more than one result is found, the Output window is brought to focus
- Introduces Release Notes
- Introduces License information
v1.2
- Fix an issue where navigating from an unsupported document type in VS would lead to the extension stopping to respond.
- Add support for enum types.
v1.1
- Add support for generic types
v1.0
- Adds the command to the code editor context menu. You can now right-click and invoke the command directly.
v0.9
- Include results from protected methods
v0.8
- Improves detection of public methods
- Improves writing to output windows
If you enjoy this extension and want to support me, feel free to buy me a coffee over at
https://ko-fi.com/digitaldias