From 2957c2d05e8d8574e457e4be59f26775993bb9c8 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Thu, 16 Dec 2010 15:37:14 +0300 Subject: [PATCH] Lookahead is now aware of whitespace and comment tokens that should not be count --- .../src/com/intellij/lang/impl/PsiBuilderImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java b/platform/lang-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java index 522c70575b82..5d9f5e95ea24 100644 --- a/platform/lang-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java +++ b/platform/lang-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java @@ -620,8 +620,17 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { @Nullable @Override public IElementType lookAhead(int steps) { - if (steps + myCurrentLexeme >= myLexemeCount) return null; - return myLexTypes[myCurrentLexeme + steps]; + int cur = myCurrentLexeme; + + while (steps > 0) { + while (cur < myLexemeCount && whitespaceOrComment(myLexTypes[cur])) { + cur++; + } + + steps--; + } + + return cur < myLexemeCount ? myLexTypes[cur] : null; } @Override