}
if (c == '.' && isWithinLiteral(lookup)) return Result.ADD_TO_PREFIX;
+ if (c == ':') {
+ PsiFile file = lookup.getPsiFile();
+ PsiDocumentManager.getInstance(file.getProject()).commitDocument(lookup.getEditor().getDocument());
+ PsiElement element = lookup.getPsiElement();
+ if (PsiTreeUtil.getParentOfType(element, PsiSwitchLabelStatement.class) != null ||
+ PsiTreeUtil.getParentOfType(element, PsiConditionalExpression.class) != null) {
+ return Result.SELECT_ITEM_AND_FINISH_LOOKUP;
+ }
+ return Result.HIDE_LOOKUP;
+ }
+
if ((c == '[' || c == '<' || c == '.' || c == ' ' || c == '(') && isNonImportedClassEntered((LookupImpl)lookup)) {
return Result.HIDE_LOOKUP;
}
}
edt { myFixture.type '\t' }
myFixture.checkResult 'public interface Test { RuntimeException<caret>x }'
- }
+ }
private def registerContributor(final Class contributor, LoadingOrder order = LoadingOrder.LAST) {
def ep = Extensions.rootArea.getExtensionPoint("com.intellij.completion.contributor")
assert 'io' in myFixture.lookupElementStrings
}
+ public void testEnteringLabel() {
+ myFixture.configureByText 'a.java', '''class Foo {{
+ <caret>
+}}
+'''
+ type 'FIS:'
+ assert myFixture.file.text.contains('FIS:')
+ }
}
import com.intellij.codeInsight.lookup.Lookup;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.impl.LookupImpl;
-import com.intellij.psi.PsiClass;
-import com.intellij.psi.PsiFile;
+import com.intellij.psi.*;
+import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.GroovyFileType;
+import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.GrListOrMap;
+import org.jetbrains.plugins.groovy.lang.psi.api.statements.arguments.GrArgumentList;
+import org.jetbrains.plugins.groovy.lang.psi.api.statements.clauses.GrCaseLabel;
+import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrConditionalExpression;
/**
* @author ilyas
return Result.HIDE_LOOKUP;
}
+ if (c == ':') {
+ PsiFile file = lookup.getPsiFile();
+ PsiDocumentManager.getInstance(file.getProject()).commitDocument(lookup.getEditor().getDocument());
+ PsiElement element = lookup.getPsiElement();
+ if (PsiTreeUtil.getParentOfType(element, GrCaseLabel.class) != null ||
+ PsiTreeUtil.getParentOfType(element, GrConditionalExpression.class) != null ||
+ PsiTreeUtil.getParentOfType(element, GrArgumentList.class) != null ||
+ PsiTreeUtil.getParentOfType(element, GrListOrMap.class) != null
+ ) {
+ return Result.SELECT_ITEM_AND_FINISH_LOOKUP;
+ }
+ return Result.HIDE_LOOKUP;
+ }
+
+
if (c == '[') return CharFilter.Result.SELECT_ITEM_AND_FINISH_LOOKUP;
if (c == '<' && item.getObject() instanceof PsiClass) return Result.SELECT_ITEM_AND_FINISH_LOOKUP;