diff --git a/.idea/inspectionProfiles/idea_default.xml b/.idea/inspectionProfiles/idea_default.xml
index 94e14cf6c58..fd058a78b5b 100644
--- a/.idea/inspectionProfiles/idea_default.xml
+++ b/.idea/inspectionProfiles/idea_default.xml
@@ -273,9 +273,6 @@
-
-
-
diff --git a/idea/src/org/jetbrains/jet/plugin/completion/weigher/JetCompletionSorting.kt b/idea/src/org/jetbrains/jet/plugin/completion/weigher/JetCompletionSorting.kt
index 683f47daa22..dee6ddb1bf8 100644
--- a/idea/src/org/jetbrains/jet/plugin/completion/weigher/JetCompletionSorting.kt
+++ b/idea/src/org/jetbrains/jet/plugin/completion/weigher/JetCompletionSorting.kt
@@ -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",
diff --git a/idea/src/org/jetbrains/jet/plugin/completion/weigher/JetLocalPreferableWeigher.java b/idea/src/org/jetbrains/jet/plugin/completion/weigher/JetKindWeigher.java
similarity index 83%
rename from idea/src/org/jetbrains/jet/plugin/completion/weigher/JetLocalPreferableWeigher.java
rename to idea/src/org/jetbrains/jet/plugin/completion/weigher/JetKindWeigher.java
index bbe7ab2b570..b1485a6a7d8 100644
--- a/idea/src/org/jetbrains/jet/plugin/completion/weigher/JetLocalPreferableWeigher.java
+++ b/idea/src/org/jetbrains/jet/plugin/completion/weigher/JetKindWeigher.java
@@ -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;
}
}
diff --git a/idea/testData/completion/weighers/LocalFileBeforeImported.kt b/idea/testData/completion/weighers/LocalFileBeforeImported.kt
index 571a2857d59..331485d51fe 100644
--- a/idea/testData/completion/weighers/LocalFileBeforeImported.kt
+++ b/idea/testData/completion/weighers/LocalFileBeforeImported.kt
@@ -7,6 +7,6 @@ val some = foo
// "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
\ No newline at end of file
diff --git a/idea/testData/completion/weighers/PropertiesBeforeKeywords.kt b/idea/testData/completion/weighers/PropertiesBeforeKeywords.kt
new file mode 100644
index 00000000000..a360f96e3e5
--- /dev/null
+++ b/idea/testData/completion/weighers/PropertiesBeforeKeywords.kt
@@ -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
+ }
+}
+
+// "br" function is before other elements because of exact prefix match
+
+// ORDER: br, br4, br5, br1, br2, br3, break, brf
+// SELECTED: 1
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/jet/completion/weighers/CompletionWeigherTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/weighers/CompletionWeigherTestGenerated.java
index a61ed488e4e..bf48501f4db 100644
--- a/idea/tests/org/jetbrains/jet/completion/weighers/CompletionWeigherTestGenerated.java
+++ b/idea/tests/org/jetbrains/jet/completion/weighers/CompletionWeigherTestGenerated.java
@@ -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");