From 8489db4d9faf7ad345671b2ff33ca82359bddd38 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Tue, 30 Dec 2014 17:20:16 +0300 Subject: [PATCH] fixed PY-14814 IPython Notebook: commitDocument left PSI inconsistent: Throwable at com.intellij.psi.impl.DebugUtil.currentStackTrace --- .../jetbrains/plugins/ipnb/psi/IpnbPyParser.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/python/ipnb/src/org/jetbrains/plugins/ipnb/psi/IpnbPyParser.java b/python/ipnb/src/org/jetbrains/plugins/ipnb/psi/IpnbPyParser.java index f5946f8763b2..53e0de51af83 100644 --- a/python/ipnb/src/org/jetbrains/plugins/ipnb/psi/IpnbPyParser.java +++ b/python/ipnb/src/org/jetbrains/plugins/ipnb/psi/IpnbPyParser.java @@ -22,7 +22,19 @@ public class IpnbPyParser extends PyParser { @NotNull @Override public ASTNode parse(IElementType root, PsiBuilder builder) { + final PsiBuilder.Marker rootMarker = builder.mark(); + myIPythonStartSymbol = PyConsoleParser.startsWithIPythonSpecialSymbol(builder); - return super.parse(root, builder); + + ParsingContext context = createParsingContext(builder, LanguageLevel.getDefault(), null); + + StatementParsing statementParser = context.getStatementParser(); + builder.setTokenTypeRemapper(statementParser); + + while (!builder.eof()) { + statementParser.parseStatement(context.emptyParsingScope()); + } + rootMarker.done(root); + return builder.getTreeBuilt(); } }