Search code examples
c#resharperresharper-pluginsresharper-8.2

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?


Solution

  • 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.