initial commit
This commit is contained in:
+105
@@ -0,0 +1,105 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
|
||||
namespace Microsoft.CodeAnalysis;
|
||||
|
||||
public static class CSharpExtensions
|
||||
{
|
||||
public static bool IsKind(this SyntaxToken token, SyntaxKind kind)
|
||||
{
|
||||
return ((SyntaxToken)(ref token)).RawKind == (int)kind;
|
||||
}
|
||||
|
||||
public static bool IsKind(this SyntaxTrivia trivia, SyntaxKind kind)
|
||||
{
|
||||
return ((SyntaxTrivia)(ref trivia)).RawKind == (int)kind;
|
||||
}
|
||||
|
||||
public static bool IsKind([NotNullWhen(true)] this SyntaxNode? node, SyntaxKind kind)
|
||||
{
|
||||
return ((node != null) ? new int?(node.RawKind) : ((int?)null)) == (int?)kind;
|
||||
}
|
||||
|
||||
public static bool IsKind(this SyntaxNodeOrToken nodeOrToken, SyntaxKind kind)
|
||||
{
|
||||
return ((SyntaxNodeOrToken)(ref nodeOrToken)).RawKind == (int)kind;
|
||||
}
|
||||
|
||||
public static bool ContainsDirective(this SyntaxNode node, SyntaxKind kind)
|
||||
{
|
||||
return node.ContainsDirective((int)kind);
|
||||
}
|
||||
|
||||
internal static SyntaxKind ContextualKind(this SyntaxToken token)
|
||||
{
|
||||
if ((object)((SyntaxToken)(ref token)).Language != "C#")
|
||||
{
|
||||
return SyntaxKind.None;
|
||||
}
|
||||
return (SyntaxKind)((SyntaxToken)(ref token)).RawContextualKind;
|
||||
}
|
||||
|
||||
internal static bool IsUnderscoreToken(this SyntaxToken identifier)
|
||||
{
|
||||
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
|
||||
return identifier.ContextualKind() == SyntaxKind.UnderscoreToken;
|
||||
}
|
||||
|
||||
public static int IndexOf<TNode>(this SyntaxList<TNode> list, SyntaxKind kind) where TNode : SyntaxNode
|
||||
{
|
||||
return list.IndexOf((int)kind);
|
||||
}
|
||||
|
||||
public static bool Any<TNode>(this SyntaxList<TNode> list, SyntaxKind kind) where TNode : SyntaxNode
|
||||
{
|
||||
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
|
||||
return list.IndexOf<TNode>(kind) >= 0;
|
||||
}
|
||||
|
||||
public static int IndexOf<TNode>(this SeparatedSyntaxList<TNode> list, SyntaxKind kind) where TNode : SyntaxNode
|
||||
{
|
||||
return list.IndexOf((int)kind);
|
||||
}
|
||||
|
||||
public static bool Any<TNode>(this SeparatedSyntaxList<TNode> list, SyntaxKind kind) where TNode : SyntaxNode
|
||||
{
|
||||
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
|
||||
return list.IndexOf<TNode>(kind) >= 0;
|
||||
}
|
||||
|
||||
public static int IndexOf(this SyntaxTriviaList list, SyntaxKind kind)
|
||||
{
|
||||
return ((SyntaxTriviaList)(ref list)).IndexOf((int)kind);
|
||||
}
|
||||
|
||||
public static bool Any(this SyntaxTriviaList list, SyntaxKind kind)
|
||||
{
|
||||
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
|
||||
return list.IndexOf(kind) >= 0;
|
||||
}
|
||||
|
||||
public static int IndexOf(this SyntaxTokenList list, SyntaxKind kind)
|
||||
{
|
||||
return ((SyntaxTokenList)(ref list)).IndexOf((int)kind);
|
||||
}
|
||||
|
||||
public static bool Any(this SyntaxTokenList list, SyntaxKind kind)
|
||||
{
|
||||
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
|
||||
return list.IndexOf(kind) >= 0;
|
||||
}
|
||||
|
||||
internal static SyntaxToken FirstOrDefault(this SyntaxTokenList list, SyntaxKind kind)
|
||||
{
|
||||
//IL_0000: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
|
||||
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
|
||||
int num = list.IndexOf(kind);
|
||||
if (num < 0)
|
||||
{
|
||||
return default(SyntaxToken);
|
||||
}
|
||||
return ((SyntaxTokenList)(ref list))[num];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user