public override bool IsAvailable(IDataContext dataContext)
{
Argument.IsNotNull(() => dataContext);
IGeneratorContextFactory generatorContextFactory = null;
var solution = dataContext.GetData(DataConstants.SOLUTION);
if (solution != null)
{
var generatorManager = GeneratorManager.GetInstance(solution);
if (generatorManager != null)
{
var languageType = generatorManager.GetPsiLanguageFromContext(dataContext);
if (languageType != null)
{
generatorContextFactory = LanguageManager.Instance.TryGetService<IGeneratorContextFactory>(languageType);
}
}
}
return generatorContextFactory != null;
}