Вызовите 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)
Другие вопросы по тегам