IDEADEV-393

This commit is contained in:
Maxim Shafirov
2005-02-20 18:46:39 +03:00
parent 6ca19f32e2
commit ba4977b359
3 changed files with 31 additions and 5 deletions
@@ -0,0 +1,27 @@
package com.intellij.codeInsight.editorActions.smartEnter;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiArrayInitializerExpression;
import com.intellij.psi.PsiElement;
import com.intellij.util.IncorrectOperationException;
/**
* Created by IntelliJ IDEA.
* User: max
* Date: Sep 5, 2003
* Time: 7:24:03 PM
* To change this template use Options | File Templates.
*/
public class MissingArrayInitializerBraceFixer implements Fixer {
public void apply(Editor editor, SmartEnterProcessor processor, PsiElement psiElement) throws IncorrectOperationException {
if (!(psiElement instanceof PsiArrayInitializerExpression)) return;
PsiArrayInitializerExpression expr = (PsiArrayInitializerExpression)psiElement;
final Document doc = editor.getDocument();
if (!expr.getText().endsWith("}")) {
doc.insertString(expr.getTextRange().getEndOffset(), "}");
}
}
}
@@ -37,6 +37,7 @@ public class SmartEnterProcessor {
ourFixers.add(new DoWhileConditionFixer());
ourFixers.add(new BlockBraceFixer());
ourFixers.add(new MissingIfBranchesFixer());
ourFixers.add(new MissingArrayInitializerBraceFixer());
ourFixers.add(new MissingWhileBodyFixer());
ourFixers.add(new MissingForBodyFixer());
ourFixers.add(new MissingForeachBodyFixer());
@@ -11,7 +11,6 @@ import com.intellij.psi.impl.source.tree.*;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet;
import com.intellij.util.CharTable;
import com.intellij.lang.ASTNode;
public class ExpressionParsing extends Parsing {
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.parsing.ExpressionParsing");
@@ -856,10 +855,9 @@ public class ExpressionParsing extends Parsing {
TreeElement arg = parseExpression(lexer);
if (arg == null) {
if (lexer.getTokenType() != COMMA) {
CompositeElement errorElement = Factory.createErrorElement("Unexpected token");
TreeUtil.addChildren(errorElement, ParseUtil.createTokenElement(lexer, myContext.getCharTable()));
lexer.advance();
TreeUtil.addChildren(element, errorElement);
TreeUtil.addChildren(element, Factory.createErrorElement("'}' expected"));
element.putUserData(ParseUtil.UNCLOSED_ELEMENT_PROPERTY, "");
return element;
}
else {
TreeUtil.addChildren(element, Factory.createErrorElement("Expression expected"));