in Backend/Core/ForTea.Core/Daemon/ProblemAnalyzers/T4MissingRequiredAttributeAnalyzer.cs [21:44]
protected override void Run(
IT4Directive element,
ElementProblemAnalyzerData data,
IHighlightingConsumer consumer
)
{
var nameToken = element.Name;
if (nameToken == null) return;
var directiveInfo = T4DirectiveInfoManager.GetDirectiveByName(nameToken.GetText());
var missingInfos = directiveInfo?.SupportedAttributes
.Where(requiredAttributeInfo =>
requiredAttributeInfo.IsRequired
&& !element
.AttributesEnumerable
.Select(attribute => attribute.Name)
.Any(name => name
.GetText()
.Equals(requiredAttributeInfo.Name, StringComparison.OrdinalIgnoreCase)
)
)
.AsList();
if (missingInfos?.Any() != true) return;
consumer.AddHighlighting(new MissingRequiredAttributeError(nameToken, CreateMessage(missingInfos)));
}