IDEA-199875 Rank println higher than print

This commit is contained in:
peter
2018-10-05 10:02:36 +02:00
parent 2d9a2e83bb
commit c9694995ac
4 changed files with 16 additions and 19 deletions

View File

@@ -84,7 +84,11 @@ public class KnownElementWeigher extends ProximityWeigher {
if (JAVA_LANG_OBJECT.equals(containingClass.getQualifiedName())) {
return 0;
}
return getJdkClassProximity(method.getContainingClass());
Integer classProximity = getJdkClassProximity(containingClass);
if (classProximity != null && "println".equals(methodName) && method.getParameterList().getParametersCount() > 0) {
return 1 + classProximity;
}
return classProximity;
}
}
if (element instanceof PsiField) {
@@ -116,7 +120,7 @@ public class KnownElementWeigher extends ProximityWeigher {
return "getClass".equals(method.getName()) && method.getParameterList().getParametersCount() <= 0;
}
private static Comparable getJdkClassProximity(@Nullable PsiClass element) {
private static Integer getJdkClassProximity(@Nullable PsiClass element) {
String qname = element == null ? null : element.getQualifiedName();
if (qname == null) return null;

View File

@@ -1,5 +1,5 @@
public class Util {
{
foo(() -> System.out.println()<caret>).bar();
foo(() -> System.out.println(<caret>)).bar();
}
}

View File

@@ -23,7 +23,6 @@ import com.intellij.openapi.actionSystem.IdeActions
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.command.CommandProcessor
import com.intellij.openapi.command.WriteCommandAction
import com.intellij.openapi.fileEditor.impl.CurrentEditorProvider
import com.intellij.openapi.command.impl.UndoManagerImpl
import com.intellij.openapi.command.undo.UndoManager
import com.intellij.openapi.editor.Editor
@@ -36,6 +35,7 @@ import com.intellij.openapi.extensions.Extensions
import com.intellij.openapi.extensions.LoadingOrder
import com.intellij.openapi.fileEditor.FileEditor
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.fileEditor.impl.CurrentEditorProvider
import com.intellij.openapi.progress.ProgressManager
import com.intellij.openapi.util.Computable
import com.intellij.openapi.util.Disposer
@@ -43,15 +43,12 @@ import com.intellij.psi.NavigatablePsiElement
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiJavaFile
import com.intellij.psi.PsiMethod
import com.intellij.psi.statistics.StatisticsManager
import com.intellij.psi.statistics.impl.StatisticsManagerImpl
import com.intellij.testFramework.fixtures.CodeInsightTestUtil
import com.intellij.util.ThrowableRunnable
import com.intellij.util.containers.ContainerUtil
import org.jetbrains.annotations.NotNull
import java.awt.event.KeyEvent
/**
* @author peter
*/
@@ -1521,18 +1518,6 @@ class Foo {
assert !lookup
}
void testReplaceTypedPrefixPart() {
((StatisticsManagerImpl)StatisticsManager.getInstance()).enableStatistics(myFixture.getTestRootDisposable())
myFixture.configureByText 'a.java', 'class Foo{ { <caret> }}'
for (i in 0..StatisticsManager.OBLIVION_THRESHOLD) {
type 'System.out.printl\n\n'
}
type 'System.out.pr'
assert lookup.currentItem.lookupString == 'println'
type '\n2'
assert myFixture.editor.document.text.contains('.println();2')
}
void testQuickBackspaceEnter() {
myFixture.configureByText 'a.java', '<caret>'
type 'cl'

View File

@@ -867,4 +867,12 @@ class Foo {
checkPreferredItems 1, 'Intf', 'IntfImpl'
}
void testPreferPrintln() {
myFixture.configureByText 'a.java', 'class Foo { { System.out.pri<caret>x } }'
myFixture.completeBasic()
myFixture.assertPreferredCompletionItems 0, 'println', 'print'
myFixture.type('\t')
myFixture.checkResult 'class Foo { { System.out.println(<caret>); } }'
}
}