No class completion in Leda (Leda only)

This commit is contained in:
Nikolay Krasko
2012-07-25 15:23:03 +04:00
parent 075028a544
commit 53c30553a5
4 changed files with 36 additions and 37 deletions
@@ -20,12 +20,8 @@ import com.intellij.codeInsight.completion.*;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Condition;
import com.intellij.patterns.PlatformPatterns;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiReference;
import com.intellij.util.Consumer;
import com.intellij.util.ProcessingContext;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.asJava.JetLightClass;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
@@ -35,10 +31,8 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.plugin.caches.JetCacheManager;
import org.jetbrains.jet.plugin.caches.JetShortNamesCache;
import org.jetbrains.jet.plugin.completion.handlers.JetJavaClassInsertHandler;
import org.jetbrains.jet.plugin.completion.weigher.JetCompletionSorting;
import org.jetbrains.jet.plugin.project.JsModuleDetector;
import org.jetbrains.jet.plugin.project.WholeProjectAnalyzerFacade;
import org.jetbrains.jet.plugin.references.JetSimpleNameReference;
import java.util.Collection;
@@ -47,31 +41,32 @@ import java.util.Collection;
*/
public class JetClassCompletionContributor extends CompletionContributor {
public JetClassCompletionContributor() {
extend(CompletionType.CLASS_NAME, PlatformPatterns.psiElement(),
new CompletionProvider<CompletionParameters>() {
@Override
protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context,
final @NotNull CompletionResultSet result) {
final CompletionResultSet jetResult = JetCompletionSorting.addJetSorting(parameters, result);
final PsiElement position = parameters.getPosition();
if (!(position.getContainingFile() instanceof JetFile)) {
return;
}
final PsiReference ref = position.getContainingFile().findReferenceAt(parameters.getOffset());
if (ref instanceof JetSimpleNameReference) {
addClasses(parameters, result, new Consumer<LookupElement>() {
@Override
public void consume(LookupElement lookupElement) {
jetResult.addElement(lookupElement);
}
});
}
result.stopHere();
}
});
// Should be removed in new idea
//extend(CompletionType.CLASS_NAME, PlatformPatterns.psiElement(),
// new CompletionProvider<CompletionParameters>() {
// @Override
// protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context,
// final @NotNull CompletionResultSet result) {
// final CompletionResultSet jetResult = JetCompletionSorting.addJetSorting(parameters, result);
//
// final PsiElement position = parameters.getPosition();
// if (!(position.getContainingFile() instanceof JetFile)) {
// return;
// }
//
// final PsiReference ref = position.getContainingFile().findReferenceAt(parameters.getOffset());
// if (ref instanceof JetSimpleNameReference) {
// addClasses(parameters, result, new Consumer<LookupElement>() {
// @Override
// public void consume(LookupElement lookupElement) {
// jetResult.addElement(lookupElement);
// }
// });
// }
//
// result.stopHere();
// }
// });
}
/**
@@ -1,6 +1,6 @@
class Test {
fun test() {
<caret>
val some : <caret>
}
}
@@ -27,6 +27,7 @@ import java.io.File;
public class JetClassCompletionTest extends JetCompletionTestBase {
public void testInExpressionNoPrefix() {
doTest();
}
@@ -36,7 +37,7 @@ public class JetClassCompletionTest extends JetCompletionTestBase {
@Override
protected CompletionType getCompletionType(String testName, String fileText) {
return CompletionType.CLASS_NAME;
return CompletionType.BASIC;
}
@Override
@@ -35,11 +35,11 @@ import java.io.File;
public class CompletionHandlerTest extends LightCompletionTestCase {
public void testClassCompletionImport() {
doTest(CompletionType.CLASS_NAME, 1, "SortedSet", null);
doTest(CompletionType.BASIC, 2, "SortedSet", null);
}
public void testNonStandardArray() {
doTest(CompletionType.CLASS_NAME, 1, "Array", "java.lang.reflect");
doTest(CompletionType.BASIC, 2, "Array", "java.lang.reflect");
}
public void testNoParamsFunction() {
@@ -92,7 +92,10 @@ public class CompletionHandlerTest extends LightCompletionTestCase {
complete(time);
if (lookupString != null || tailText != null) {
selectItem(getExistentLookupElement(lookupString, tailText), '\t');
LookupElement item = getExistentLookupElement(lookupString, tailText);
if (item != null) {
selectItem(item, '\t');
}
}
checkResultByFile(getAfterFileName());
@@ -102,6 +105,7 @@ public class CompletionHandlerTest extends LightCompletionTestCase {
}
}
@Nullable
public static LookupElement getExistentLookupElement(@Nullable String lookupString, @Nullable String tailText) {
final LookupImpl lookup = (LookupImpl) LookupManager.getInstance(getProject()).getActiveLookup();
LookupElement foundElement = null;
@@ -140,7 +144,6 @@ public class CompletionHandlerTest extends LightCompletionTestCase {
}
}
Assert.assertNotNull("No element found for given constraints",foundElement);
return foundElement;
}