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">
|
<inspection_tool class="ObsoleteCollection" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
<option name="ignoreRequiredObsoleteCollectionTypes" value="false" />
|
<option name="ignoreRequiredObsoleteCollectionTypes" value="false" />
|
||||||
</inspection_tool>
|
</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="ProtectedMemberInFinalClass" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||||
<inspection_tool class="PublicFieldAccessedInSynchronizedContext" 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">
|
<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 {
|
public fun CompletionResultSet.addJetSorting(parameters : CompletionParameters) : CompletionResultSet {
|
||||||
var sorter = CompletionSorter.defaultSorter(parameters, getPrefixMatcher())!!
|
var sorter = CompletionSorter.defaultSorter(parameters, getPrefixMatcher())!!
|
||||||
|
|
||||||
sorter = sorter.weighBefore("stats", JetLocalPreferableWeigher())
|
sorter = sorter.weighBefore("stats", JetKindWeigher())
|
||||||
|
|
||||||
sorter = sorter.weighAfter(
|
sorter = sorter.weighAfter(
|
||||||
"stats",
|
"stats",
|
||||||
|
|||||||
+9
-4
@@ -21,17 +21,19 @@ import com.intellij.codeInsight.lookup.LookupElementWeigher;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
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.ValueParameterDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.LocalVariableDescriptor;
|
import org.jetbrains.jet.lang.descriptors.impl.LocalVariableDescriptor;
|
||||||
import org.jetbrains.jet.plugin.completion.JetLookupObject;
|
import org.jetbrains.jet.plugin.completion.JetLookupObject;
|
||||||
|
|
||||||
class JetLocalPreferableWeigher extends LookupElementWeigher {
|
class JetKindWeigher extends LookupElementWeigher {
|
||||||
JetLocalPreferableWeigher() {
|
JetKindWeigher() {
|
||||||
super("JetLocalElementWeigher");
|
super(JetKindWeigher.class.getSimpleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private enum MyResult {
|
private enum MyResult {
|
||||||
localOrParameter,
|
localOrParameter,
|
||||||
|
property,
|
||||||
probableKeyword,
|
probableKeyword,
|
||||||
normal,
|
normal,
|
||||||
packages
|
packages
|
||||||
@@ -48,7 +50,10 @@ class JetLocalPreferableWeigher extends LookupElementWeigher {
|
|||||||
if (descriptor instanceof LocalVariableDescriptor || descriptor instanceof ValueParameterDescriptor) {
|
if (descriptor instanceof LocalVariableDescriptor || descriptor instanceof ValueParameterDescriptor) {
|
||||||
return MyResult.localOrParameter;
|
return MyResult.localOrParameter;
|
||||||
}
|
}
|
||||||
if (descriptor instanceof NamespaceDescriptor) {
|
else if (descriptor instanceof PropertyDescriptor) {
|
||||||
|
return MyResult.property;
|
||||||
|
}
|
||||||
|
else if (descriptor instanceof NamespaceDescriptor) {
|
||||||
return MyResult.packages;
|
return MyResult.packages;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,6 @@ val some = foo<caret>
|
|||||||
|
|
||||||
// "foo" is before other elements because of exact prefix match
|
// "foo" is before other elements because of exact prefix match
|
||||||
|
|
||||||
// ORDER: foo, fooLocal, fooVar, fooImported, fooNotImported
|
// ORDER: foo, fooVar, fooLocal, fooImported, fooNotImported
|
||||||
// NUMBER: 2
|
// NUMBER: 2
|
||||||
// SELECTED: 1
|
// 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");
|
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")
|
@TestMetadata("TemplatesAndKeywordsLast.kt")
|
||||||
public void testTemplatesAndKeywordsLast() throws Exception {
|
public void testTemplatesAndKeywordsLast() throws Exception {
|
||||||
doTest("idea/testData/completion/weighers/TemplatesAndKeywordsLast.kt");
|
doTest("idea/testData/completion/weighers/TemplatesAndKeywordsLast.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user