protected override void Run()

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)));
    }