diff --git a/platform/lang-impl/src/com/intellij/indentation/AbstractIndentParser.java b/platform/lang-impl/src/com/intellij/indentation/AbstractIndentParser.java index a298b73fda23..f159acd70915 100644 --- a/platform/lang-impl/src/com/intellij/indentation/AbstractIndentParser.java +++ b/platform/lang-impl/src/com/intellij/indentation/AbstractIndentParser.java @@ -186,6 +186,22 @@ public abstract class AbstractIndentParser implements PsiParser { } } + public void recalculateCurrentIndent() { + int i = 0; + int firstIndentOffset = myBuilder.getCurrentOffset(); + while (myBuilder.rawLookup(i) != null && myBuilder.rawLookup(i) != getEolElementType()) { + firstIndentOffset = myBuilder.rawTokenTypeStart(i); + i--; + } + int lastIndentOffset = firstIndentOffset; + i++; + while (myBuilder.rawLookup(i) == getIndentElementType()) { + i++; + lastIndentOffset = myBuilder.rawTokenTypeStart(i); + } + myCurrentIndent = lastIndentOffset - firstIndentOffset; + } + protected void advanceUntil(TokenSet tokenSet) { while (getTokenType() != null && !isNewLine() && !tokenSet.contains(getTokenType())) { advance();