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