public static int GetTrailingTriviaTokenEndIndex(IToken token, BufferedTokenStream tokenStream, int triviaChannel = -1)
{
IList<IToken> tokens = tokenStream.GetTokens();
int i = token.TokenIndex + 1;
int lastTriviaToken = token.TokenIndex;
while (i < tokens.Count)
{
IToken t = tokens[i];
string text = t.Text;
if (t.Channel == 0)
{
return lastTriviaToken;
}
else if (text.Contains('\r') || text.Contains('\n'))
{
if (string.IsNullOrWhiteSpace(text)) return lastTriviaToken;
else return i;
}
else if (triviaChannel < 0 || t.Channel == triviaChannel)
{
lastTriviaToken = i;
}
++i;
}
return lastTriviaToken;
}