diff options
Diffstat (limited to 'main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs')
-rw-r--r-- | main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs index 998368be6a..76fa3cf026 100644 --- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs +++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs @@ -281,6 +281,54 @@ namespace MonoDevelop.CSharp.Highlighting } tree.AddStyle (startOffset, endOffset, color); } + + public override void VisitSimpleType (SimpleType simpleType) + { + var identifierToken = simpleType.IdentifierToken; + VisitChildrenUntil(simpleType, identifierToken); + var resolveResult = resolver.Resolve (simpleType, cancellationToken); + if (resolveResult.Type.Namespace == "System") { + switch (resolveResult.Type.Name) { + case "nfloat": + case "nint": + case "nuint": + Colorize(identifierToken, "Keyword(Type)"); + break; + default: + Colorize (identifierToken, resolveResult); + break; + } + } else { + Colorize (identifierToken, resolveResult); + } + VisitChildrenAfter(simpleType, identifierToken); + } + + public override void VisitIdentifierExpression (IdentifierExpression identifierExpression) + { + var identifier = identifierExpression.IdentifierToken; + VisitChildrenUntil(identifierExpression, identifier); + if (isInAccessorContainingValueParameter && identifierExpression.Identifier == "value") { + Colorize(identifier, valueKeywordColor); + } else { + var resolveResult = resolver.Resolve (identifierExpression, cancellationToken); + if (resolveResult.Type.Namespace == "System") { + switch (resolveResult.Type.Name) { + case "nfloat": + case "nint": + case "nuint": + Colorize(identifier, "Keyword(Type)"); + break; + default: + Colorize (identifier, resolveResult); + break; + } + } else { + Colorize (identifier, resolveResult); + } + } + VisitChildrenAfter(identifierExpression, identifier); + } } class QuickTaskVisitor : DepthFirstAstVisitor |