Sam Holder
Sam Holder

Reputation: 32936

How do I get a window context so I can create NavigationOptions in a resharper plugin

I have a navigation plugin which I want to extend to allow support for context navigation. I've got everything I need except for the NavigationOptions instance. In my INavigateFromHereProvider I get called with an IDataContext so can create the NavigationOptions from this using the NavigationOptions.FromDataContext method. Great.

In my context action I don't get called with a IDataContext, I get given a ICSharpContextActionDataProvider during construction. I can get my IDeclaredElement from this to base my navigation decision on, but I'm not sure how to create my NavigationOptions instance. It feels like I should be using NavigationOptions.FromWindowContext but I seems to need a PopupWindowContextSource and I don't know where to get one of these from.

So where can I get a relevant PopupWindowContextSource to create my NavigationOptions from?

Upvotes: 1

Views: 78

Answers (2)

citizenmatt
citizenmatt

Reputation: 18573

You might be better off using NavigationOptions.FromDataContext. This will pull a window context from the IDataContext that you've already got. This should give you a popup window context that's appropriate to where you've been invoked from - anchored to the editor window, or the tree view, or whatever. Using the MainWindowPopupContext will give you a context that's based on the main Visual Studio window, which will likely work and be fine, but might not be the most relevant.

Upvotes: 0

Sam Holder
Sam Holder

Reputation: 32936

Ah, discovered the answer (well, an answer).

I can use this:

 var popupWindowContextSource = solution.GetComponent<MainWindowPopupWindowContext>().Source;

I'm not sure if this is the most appropriate thing to use, but it seems to work.

Upvotes: 1

Related Questions