honor statistics and prefix matching degree in groovy completion

This commit is contained in:
peter
2013-02-22 12:25:02 +01:00
parent f4471ebbba
commit e8a2a17384
2 changed files with 17 additions and 3 deletions
+2 -2
View File
@@ -355,9 +355,9 @@
<psi.referenceContributor language="Properties" implementation="org.jetbrains.plugins.groovy.dgm.DGMReferenceContributor"/>
<weigher key="completion" implementationClass="org.jetbrains.plugins.groovy.lang.completion.weighers.GrWithWeigher"
id="groovyWithWeigher" order="before stats"/>
id="groovyWithWeigher" order="after prefix"/>
<weigher key="completion" implementationClass="org.jetbrains.plugins.groovy.lang.completion.weighers.GrKindWeigher"
id="groovyKindWeigher" order="before stats, after groovyWithWeigher"/>
id="groovyKindWeigher" order="after groovyWithWeigher, before explicitProximity"/>
<weigher key="proximity" implementationClass="org.jetbrains.plugins.groovy.lang.completion.weighers.GrReferenceListWeigher"
id="groovyReferenceListWeigher" order="before openedInEditor"/>
@@ -15,7 +15,6 @@
*/
package org.jetbrains.plugins.groovy.completion
import com.intellij.codeInsight.CodeInsightSettings
import com.intellij.codeInsight.completion.CompletionType
import com.intellij.codeInsight.completion.impl.CamelHumpMatcher
@@ -23,6 +22,8 @@ import com.intellij.codeInsight.lookup.LookupElement
import com.intellij.codeInsight.lookup.LookupElementPresentation
import com.intellij.codeInsight.lookup.PsiTypeLookupItem
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
import com.intellij.psi.statistics.StatisticsManager
import com.intellij.psi.statistics.impl.StatisticsManagerImpl
import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.plugins.groovy.GroovyFileType
import org.jetbrains.plugins.groovy.codeStyle.GroovyCodeStyleSettings
@@ -1670,4 +1671,17 @@ void foo() {
<caret> = baz
}""")
}
public void "test honor statistics"() {
((StatisticsManagerImpl)StatisticsManager.instance).enableStatistics(testRootDisposable)
myFixture.addClass("class Foo { Object getMessage() {} }; class Bar extends Foo { Object getMessages(); }")
configure "b = new Bar();\nb.mes<caret>"
def items = myFixture.completeBasic()
myFixture.assertPreferredCompletionItems 0, "messages", "message"
myFixture.lookup.currentItem = items[1]
myFixture.type('\n\nb.mes')
myFixture.completeBasic()
myFixture.assertPreferredCompletionItems 0, "message", "messages"
}
}