Вызовите ReSharper ContextAction из действия
Я хочу написать ReSharper Action
это просто называет ContextAction
, Это возможно? ContextAction
занимает Solution
в качестве параметра и Action
получает DataContext
на строительстве. Таким образом, вопрос действительно становится:
Вы можете получить текущий Solution
из экземпляра DataContext
?
РЕДАКТИРОВАТЬ: Ой! Я спросил не ту вещь. Вышесказанное является правдой, но не реальной проблемой. Как говорит Дмитрий ниже, вы действительно можете получить решение, например, так:
var solution =
dataContext.GetData(JetBrains.ProjectModel.DataContext.DataConstants.SOLUTION);
Сложно получить _psiModule
, который можно получить из ICSharpContextDataProvider
который передается, когда ContextAction
построен через provider.PsiModule
, Вы можете получить ICSharpContextDataProvider
или правильный PsiModule
от DataContext
?
2 ответа
var document = context.GetData(DocumentModel.DataConstants.DOCUMENT);
var solution = context.GetData(JetBrains.ProjectModel.DataContext.DataConstants.SOLUTION);
var psiModule = document.GetPsiSourceFile(solution).GetPsiModule();
Вы можете попробовать получить решение так:
var solution =
dataContext.GetData(JetBrains.ProjectModel.DataContext.DataConstants.SOLUTION)