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