Order properties before keywords
This commit is contained in:
-3
@@ -273,9 +273,6 @@
|
||||
<inspection_tool class="ObsoleteCollection" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="ignoreRequiredObsoleteCollectionTypes" value="false" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PointlessArithmeticExpression" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="m_ignoreExpressionsContainingConstants" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="ProtectedMemberInFinalClass" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="PublicFieldAccessedInSynchronizedContext" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="PyCompatibilityInspection" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
|
||||
@@ -24,7 +24,7 @@ import org.jetbrains.jet.lang.psi.JetFile
|
||||
public fun CompletionResultSet.addJetSorting(parameters : CompletionParameters) : CompletionResultSet {
|
||||
var sorter = CompletionSorter.defaultSorter(parameters, getPrefixMatcher())!!
|
||||
|
||||
sorter = sorter.weighBefore("stats", JetLocalPreferableWeigher())
|
||||
sorter = sorter.weighBefore("stats", JetKindWeigher())
|
||||
|
||||
sorter = sorter.weighAfter(
|
||||
"stats",
|
||||
|
||||
+9
-4
@@ -21,17 +21,19 @@ import com.intellij.codeInsight.lookup.LookupElementWeigher;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.impl.LocalVariableDescriptor;
|
||||
import org.jetbrains.jet.plugin.completion.JetLookupObject;
|
||||
|
||||
class JetLocalPreferableWeigher extends LookupElementWeigher {
|
||||
JetLocalPreferableWeigher() {
|
||||
super("JetLocalElementWeigher");
|
||||
class JetKindWeigher extends LookupElementWeigher {
|
||||
JetKindWeigher() {
|
||||
super(JetKindWeigher.class.getSimpleName());
|
||||
}
|
||||
|
||||
private enum MyResult {
|
||||
localOrParameter,
|
||||
property,
|
||||
probableKeyword,
|
||||
normal,
|
||||
packages
|
||||
@@ -48,7 +50,10 @@ class JetLocalPreferableWeigher extends LookupElementWeigher {
|
||||
if (descriptor instanceof LocalVariableDescriptor || descriptor instanceof ValueParameterDescriptor) {
|
||||
return MyResult.localOrParameter;
|
||||
}
|
||||
if (descriptor instanceof NamespaceDescriptor) {
|
||||
else if (descriptor instanceof PropertyDescriptor) {
|
||||
return MyResult.property;
|
||||
}
|
||||
else if (descriptor instanceof NamespaceDescriptor) {
|
||||
return MyResult.packages;
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,6 @@ val some = foo<caret>
|
||||
|
||||
// "foo" is before other elements because of exact prefix match
|
||||
|
||||
// ORDER: foo, fooLocal, fooVar, fooImported, fooNotImported
|
||||
// ORDER: foo, fooVar, fooLocal, fooImported, fooNotImported
|
||||
// NUMBER: 2
|
||||
// SELECTED: 1
|
||||
@@ -0,0 +1,19 @@
|
||||
val br1 = 11
|
||||
|
||||
fun br() = 111
|
||||
|
||||
class Test(val br2 = 12) {
|
||||
val br3 = 13
|
||||
|
||||
fun brf() = 112
|
||||
|
||||
fun test(br4: Int) {
|
||||
val br5 = 14
|
||||
br<caret>
|
||||
}
|
||||
}
|
||||
|
||||
// "br" function is before other elements because of exact prefix match
|
||||
|
||||
// ORDER: br, br4, br5, br1, br2, br3, break, brf
|
||||
// SELECTED: 1
|
||||
@@ -66,6 +66,11 @@ public class CompletionWeigherTestGenerated extends AbstractCompletionWeigherTes
|
||||
doTest("idea/testData/completion/weighers/ParametersBeforeKeywords.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("PropertiesBeforeKeywords.kt")
|
||||
public void testPropertiesBeforeKeywords() throws Exception {
|
||||
doTest("idea/testData/completion/weighers/PropertiesBeforeKeywords.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("TemplatesAndKeywordsLast.kt")
|
||||
public void testTemplatesAndKeywordsLast() throws Exception {
|
||||
doTest("idea/testData/completion/weighers/TemplatesAndKeywordsLast.kt");
|
||||
|
||||
Reference in New Issue
Block a user