From 0b84810cbf71d45f913e3e33a7fa155f0429ea14 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Wed, 30 Mar 2011 14:07:53 +0400 Subject: [PATCH] Handle incomplete macrocall gracefully, attempt to restore lexer state. --- .../src/com/intellij/lexer/LookAheadLexer.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/platform/platform-api/src/com/intellij/lexer/LookAheadLexer.java b/platform/platform-api/src/com/intellij/lexer/LookAheadLexer.java index 21deb0cd18c4..4c70406b5941 100644 --- a/platform/platform-api/src/com/intellij/lexer/LookAheadLexer.java +++ b/platform/platform-api/src/com/intellij/lexer/LookAheadLexer.java @@ -75,6 +75,17 @@ public abstract class LookAheadLexer extends LexerBase{ return myBaseLexer.getBufferEnd(); } + protected int getCacheSize() { + return myTypeCache.size(); + } + + protected void resetCacheSize(int size) { + while (myTypeCache.size() > size) { + myTypeCache.removeLast(); + myEndOffsetCache.removeLast(); + } + } + public int getState() { int offset = myTokenStart - myLastOffset; return myLastState | (offset << 16);