From f30e74a4c808290fa5f52dfb16dcd5a7aa5f19c8 Mon Sep 17 00:00:00 2001 From: Andrey Vokin Date: Thu, 11 Jul 2013 15:41:36 +0400 Subject: [PATCH] Stylus. Inroduced IndentProprocessorParser for Stylus and SASS --- .../indentation/AbstractIndentParser.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/indentation/AbstractIndentParser.java b/platform/lang-impl/src/com/intellij/indentation/AbstractIndentParser.java index 8ad9c931ad40..ba29c5def7ff 100644 --- a/platform/lang-impl/src/com/intellij/indentation/AbstractIndentParser.java +++ b/platform/lang-impl/src/com/intellij/indentation/AbstractIndentParser.java @@ -164,6 +164,34 @@ public abstract class AbstractIndentParser implements PsiParser { } } + protected void advanceUntil(TokenSet tokenSet) { + while (getTokenType() != null && !isNewLine() && !tokenSet.contains(getTokenType())) { + advance(); + } + } + + protected void advanceUntilEol() { + advanceUntil(TokenSet.EMPTY); + } + + protected void errorUntil(TokenSet tokenSet, String message) { + PsiBuilder.Marker errorMarker = mark(); + advanceUntil(tokenSet); + errorMarker.error(message); + } + + protected void errorUntilEol(String message) { + PsiBuilder.Marker errorMarker = mark(); + advanceUntilEol(); + errorMarker.error(message); + } + + protected void expectEolOrEof() { + if (!isNewLine() && !eof()) { + errorUntilEol("End of line expected"); + } + } + protected abstract IElementType getIndentElementType(); protected abstract IElementType getEolElementType(); }