提交 a25b0499 编写于 作者: C Cyrus Najmabadi

Simplify by moving to extensions

上级 f71ac339
......@@ -1529,12 +1529,6 @@ public SyntaxToken GetOperatorTokenOfPrefixUnaryExpression(SyntaxNode node)
public SyntaxNode GetNextExecutableStatement(SyntaxNode statement)
=> ((StatementSyntax)statement).GetNextStatement();
public override bool IsWhitespaceTrivia(SyntaxTrivia trivia)
=> trivia.IsWhitespace();
public override bool IsEndOfLineTrivia(SyntaxTrivia trivia)
=> trivia.IsEndOfLine();
public override bool IsSingleLineCommentTrivia(SyntaxTrivia trivia)
=> trivia.IsSingleLineComment();
......
......@@ -24,6 +24,7 @@ public override TSyntaxKind Convert<TSyntaxKind>(int kind)
public override int DisabledTextTrivia => (int)SyntaxKind.DisabledTextTrivia;
public override int EndOfLineTrivia => (int)SyntaxKind.EndOfLineTrivia;
public override int SkippedTokensTrivia => (int)SyntaxKind.SkippedTokensTrivia;
public override int WhitespaceTrivia => (int)SyntaxKind.WhitespaceTrivia;
public override int CharacterLiteralToken => (int)SyntaxKind.CharacterLiteralToken;
public override int DotToken => (int)SyntaxKind.DotToken;
......
......@@ -158,8 +158,12 @@ protected AbstractSyntaxFactsService()
Matcher.Repeat(singleBlankLine));
}
public abstract bool IsWhitespaceTrivia(SyntaxTrivia trivia);
public abstract bool IsEndOfLineTrivia(SyntaxTrivia trivia);
private bool IsWhitespaceTrivia(SyntaxTrivia trivia)
=> SyntaxKinds.WhitespaceTrivia == trivia.RawKind;
private bool IsEndOfLineTrivia(SyntaxTrivia trivia)
=> SyntaxKinds.EndOfLineTrivia == trivia.RawKind;
public abstract bool IsSingleLineCommentTrivia(SyntaxTrivia trivia);
public abstract bool IsMultiLineCommentTrivia(SyntaxTrivia trivia);
public abstract bool IsSingleLineDocCommentTrivia(SyntaxTrivia trivia);
......
......@@ -201,8 +201,6 @@ internal interface ISyntaxFactsService : ILanguageService
SyntaxNode GetDefaultOfParameter(SyntaxNode node);
SyntaxNode GetParameterList(SyntaxNode node);
bool IsWhitespaceTrivia(SyntaxTrivia trivia);
bool IsEndOfLineTrivia(SyntaxTrivia trivia);
bool IsDocumentationCommentExteriorTrivia(SyntaxTrivia trivia);
void GetPartsOfElementAccessExpression(SyntaxNode node, out SyntaxNode expression, out SyntaxNode argumentList);
......
......@@ -187,6 +187,17 @@ public static void GetPartsOfMemberAccessExpression(this ISyntaxFactsService syn
public static void GetPartsOfConditionalAccessExpression(this ISyntaxFactsService syntaxFacts, SyntaxNode node, out SyntaxNode expression, out SyntaxNode whenNotNull)
=> syntaxFacts.GetPartsOfConditionalAccessExpression(node, out expression, out _, out whenNotNull);
#region ISyntaxKinds forwarding methods
public static bool IsEndOfLineTrivia(this ISyntaxFactsService syntaxFacts, SyntaxTrivia trivia)
=> trivia.RawKind == syntaxFacts.SyntaxKinds.EndOfLineTrivia;
public static bool IsWhitespaceTrivia(this ISyntaxFactsService syntaxFacts, SyntaxTrivia trivia)
=> trivia.RawKind == syntaxFacts.SyntaxKinds.WhitespaceTrivia;
public static bool IsSkippedTokensTrivia(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node)
=> node?.RawKind == syntaxFacts.SyntaxKinds.SkippedTokensTrivia;
public static bool IsAwaitKeyword(this ISyntaxFactsService syntaxFacts, SyntaxToken token)
=> token.RawKind == syntaxFacts.SyntaxKinds.AwaitKeyword;
......@@ -208,9 +219,6 @@ public static bool IsInterpolatedStringTextToken(this ISyntaxFactsService syntax
public static bool IsStringLiteral(this ISyntaxFactsService syntaxFacts, SyntaxToken token)
=> token.RawKind == syntaxFacts.SyntaxKinds.StringLiteralToken;
public static bool IsSkippedTokensTrivia(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node)
=> node?.RawKind == syntaxFacts.SyntaxKinds.SkippedTokensTrivia;
public static bool IsGenericName(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode? node)
=> node?.RawKind == syntaxFacts.SyntaxKinds.GenericName;
......@@ -309,5 +317,7 @@ public static bool IsVariableDeclarator(this ISyntaxFactsService syntaxFacts, [N
public static bool IsTypeArgumentList(this ISyntaxFactsService syntaxFacts, [NotNullWhen(true)] SyntaxNode node)
=> node?.RawKind == syntaxFacts.SyntaxKinds.TypeArgumentList;
#endregion
}
}
......@@ -20,6 +20,7 @@ internal interface ISyntaxKindsService : ILanguageService
int DisabledTextTrivia { get; }
int EndOfLineTrivia { get; }
int SkippedTokensTrivia { get; }
int WhitespaceTrivia { get; }
int CharacterLiteralToken { get; }
int DotToken { get; }
......@@ -98,6 +99,7 @@ internal abstract class AbstractSyntaxKindsService : ISyntaxKindsService
public abstract int DisabledTextTrivia { get; }
public abstract int EndOfLineTrivia { get; }
public abstract int SkippedTokensTrivia { get; }
public abstract int WhitespaceTrivia { get; }
public abstract int CharacterLiteralToken { get; }
public abstract int DotToken { get; }
......
......@@ -1567,14 +1567,6 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Return DirectCast(statement, StatementSyntax).GetNextStatement()?.FirstAncestorOrSelf(Of ExecutableStatementSyntax)
End Function
Public Overrides Function IsWhitespaceTrivia(trivia As SyntaxTrivia) As Boolean Implements ISyntaxFactsService.IsWhitespaceTrivia
Return trivia.IsWhitespace()
End Function
Public Overrides Function IsEndOfLineTrivia(trivia As SyntaxTrivia) As Boolean Implements ISyntaxFactsService.IsEndOfLineTrivia
Return trivia.IsEndOfLine()
End Function
Public Overrides Function IsSingleLineCommentTrivia(trivia As SyntaxTrivia) As Boolean
Return trivia.Kind = SyntaxKind.CommentTrivia
End Function
......
......@@ -22,6 +22,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.LanguageServices
Public Overrides ReadOnly Property DisabledTextTrivia As Integer = SyntaxKind.DisabledTextTrivia
Public Overrides ReadOnly Property EndOfLineTrivia As Integer = SyntaxKind.EndOfLineTrivia
Public Overrides ReadOnly Property SkippedTokensTrivia As Integer = SyntaxKind.SkippedTokensTrivia
Public Overrides ReadOnly Property WhitespaceTrivia As Integer = SyntaxKind.WhitespaceTrivia
Public Overrides ReadOnly Property CharacterLiteralToken As Integer = SyntaxKind.CharacterLiteralToken
Public Overrides ReadOnly Property DotToken As Integer = SyntaxKind.DotToken
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册