don't present 'new' twice

This commit is contained in:
peter
2010-10-30 16:05:04 +04:00
parent d2dd377775
commit f8348079f4
2 changed files with 8 additions and 9 deletions
@@ -20,7 +20,6 @@ import com.intellij.codeInsight.TailTypes;
import com.intellij.codeInsight.completion.util.ParenthesesInsertHandler;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupItem;
import com.intellij.codeInsight.lookup.TailTypeDecorator;
import com.intellij.patterns.ElementPattern;
import com.intellij.patterns.PsiElementPattern;
import com.intellij.patterns.PsiJavaElementPattern;
@@ -577,20 +576,17 @@ public class JavaCompletionData extends JavaAwareCompletionData{
not(
or(psiElement(PsiTypeCastExpression.class),
psiElement(PsiSwitchLabelStatement.class),
psiElement(PsiExpressionStatement.class).withParent(psiElement(PsiCodeBlock.class).withParent(PsiSwitchStatement.class))
psiElement(PsiExpressionStatement.class)
)
)
)),
not(psiElement().afterLeaf("."))
);
if (exprKeywords.accepts(position)) {
result.addElement(TailTypeDecorator.withTail(createKeyword(position, PsiKeyword.NEW), TailType.SPACE));
if (!psiElement().withParent(psiElement(PsiReferenceExpression.class).withParent(PsiExpressionStatement.class)).accepts(position)) {
result.addElement(createKeyword(position, PsiKeyword.NULL));
result.addElement(createKeyword(position, PsiKeyword.TRUE));
result.addElement(createKeyword(position, PsiKeyword.FALSE));
}
result.addElement(createKeyword(position, PsiKeyword.NEW));
result.addElement(createKeyword(position, PsiKeyword.NULL));
result.addElement(createKeyword(position, PsiKeyword.TRUE));
result.addElement(createKeyword(position, PsiKeyword.FALSE));
}
}
@@ -807,6 +807,9 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
assertTrue 'do' in strings
assertTrue 'new' in strings
assertTrue 'try' in strings
strings.remove 'new'
assertFalse 'new' in strings
}
public void testExpressionKeywords() {