private static string GetHighlightingAttributeId()

in Backend/ReSharperPlugin/ForTea.ReSharperPlugin/Daemon/Processes/T4CSharpHighlightingProcess.cs [81:121]


    private static string GetHighlightingAttributeId([NotNull] ITreeNode element)
    {
      TokenNodeType tokenType = element.GetTokenType();
      if (tokenType == null)
        return null;

      if (tokenType.IsKeyword)
        return PredefinedHighlighterIds.Keyword;
      if (tokenType.IsComment)
        return PredefinedHighlighterIds.Comment;
      if (tokenType.IsStringLiteral)
      {
        // TODO: see why this highlighter fails (no MEF classification)
        //if (element.GetText().IndexOf('@') == 0)
        //	return T4CSharpVerbatimStringHighlighting.Instance;
        return PredefinedHighlighterIds.String;
      }

      if (tokenType.IsConstantLiteral)
      {
        if (tokenType == CSharpTokenType.CHARACTER_LITERAL)
          return PredefinedHighlighterIds.String;
        return PredefinedHighlighterIds.Number;
      }

      if (_csharpOperators[tokenType])
        return PredefinedHighlighterIds.Operator;

      if (tokenType.IsIdentifier)
      {
        if (element.Parent is ITypeDeclaration declaration)
          return GetTypeElementHighlightingAttributeId(declaration.DeclaredElement);

        if ((element.Parent as IReferenceName)?.Reference.Resolve().DeclaredElement is ITypeElement typeElement)
          return GetTypeElementHighlightingAttributeId(typeElement);

        return PredefinedHighlighterIds.Identifier;
      }

      return null;
    }