Minor changes on code review
This commit is contained in:
+19
-12
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.completion
|
package org.jetbrains.kotlin.idea.completion
|
||||||
|
|
||||||
|
import com.intellij.codeInsight.CodeInsightSettings
|
||||||
import com.intellij.codeInsight.completion.*
|
import com.intellij.codeInsight.completion.*
|
||||||
import com.intellij.codeInsight.completion.impl.BetterPrefixMatcher
|
import com.intellij.codeInsight.completion.impl.BetterPrefixMatcher
|
||||||
import com.intellij.codeInsight.lookup.LookupElement
|
import com.intellij.codeInsight.lookup.LookupElement
|
||||||
@@ -202,18 +203,24 @@ class BasicCompletionSession(
|
|||||||
val contextVariableTypesForSmartCompletion = withCollectRequiredContextVariableTypes(::completeWithSmartCompletion)
|
val contextVariableTypesForSmartCompletion = withCollectRequiredContextVariableTypes(::completeWithSmartCompletion)
|
||||||
|
|
||||||
val contextVariableTypesForReferenceVariants = withCollectRequiredContextVariableTypes { lookupElementFactory ->
|
val contextVariableTypesForReferenceVariants = withCollectRequiredContextVariableTypes { lookupElementFactory ->
|
||||||
if (prefix.isEmpty() || callTypeAndReceiver.receiver != null) {
|
when {
|
||||||
addReferenceVariantElements(lookupElementFactory, descriptorKindFilter)
|
prefix.isEmpty()
|
||||||
}
|
|| callTypeAndReceiver.receiver != null
|
||||||
else if (prefix[0].isLowerCase()) {
|
|| CodeInsightSettings.getInstance().COMPLETION_CASE_SENSITIVE == CodeInsightSettings.NONE -> {
|
||||||
addReferenceVariantElements(lookupElementFactory, USUALLY_START_LOWER_CASE.intersect(descriptorKindFilter))
|
addReferenceVariantElements(lookupElementFactory, descriptorKindFilter)
|
||||||
flushToResultSet()
|
}
|
||||||
addReferenceVariantElements(lookupElementFactory, USUALLY_START_UPPER_CASE.intersect(descriptorKindFilter))
|
|
||||||
}
|
prefix[0].isLowerCase() -> {
|
||||||
else {
|
addReferenceVariantElements(lookupElementFactory, USUALLY_START_LOWER_CASE.intersect(descriptorKindFilter))
|
||||||
addReferenceVariantElements(lookupElementFactory, USUALLY_START_UPPER_CASE.intersect(descriptorKindFilter))
|
flushToResultSet()
|
||||||
flushToResultSet()
|
addReferenceVariantElements(lookupElementFactory, USUALLY_START_UPPER_CASE.intersect(descriptorKindFilter))
|
||||||
addReferenceVariantElements(lookupElementFactory, USUALLY_START_LOWER_CASE.intersect(descriptorKindFilter))
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
addReferenceVariantElements(lookupElementFactory, USUALLY_START_UPPER_CASE.intersect(descriptorKindFilter))
|
||||||
|
flushToResultSet()
|
||||||
|
addReferenceVariantElements(lookupElementFactory, USUALLY_START_LOWER_CASE.intersect(descriptorKindFilter))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
referenceVariantsCollector!!.collectingFinished()
|
referenceVariantsCollector!!.collectingFinished()
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -119,6 +119,7 @@ class BasicLookupElementFactory(
|
|||||||
): LookupElement {
|
): LookupElement {
|
||||||
val declarationLazy by lazy { DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptor) }
|
val declarationLazy by lazy { DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptor) }
|
||||||
|
|
||||||
|
//TODO: try JavaClassDescriptor?
|
||||||
if (descriptor is ClassifierDescriptor &&
|
if (descriptor is ClassifierDescriptor &&
|
||||||
declarationLazy is PsiClass &&
|
declarationLazy is PsiClass &&
|
||||||
declarationLazy !is KtLightClass) {
|
declarationLazy !is KtLightClass) {
|
||||||
|
|||||||
+5
-4
@@ -74,6 +74,8 @@ class ReferenceVariantsCollector(
|
|||||||
return variants
|
return variants
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val GET_SET_PREFIXES = listOf("get", "set", "ge", "se", "g", "s")
|
||||||
|
|
||||||
private fun doCollectReferenceVariants(descriptorKindFilter: DescriptorKindFilter): ReferenceVariants {
|
private fun doCollectReferenceVariants(descriptorKindFilter: DescriptorKindFilter): ReferenceVariants {
|
||||||
val completeExtensionsFromIndices = descriptorKindFilter.kindMask.and(DescriptorKindFilter.CALLABLES_MASK) != 0
|
val completeExtensionsFromIndices = descriptorKindFilter.kindMask.and(DescriptorKindFilter.CALLABLES_MASK) != 0
|
||||||
&& DescriptorKindExclude.Extensions !in descriptorKindFilter.excludes
|
&& DescriptorKindExclude.Extensions !in descriptorKindFilter.excludes
|
||||||
@@ -97,10 +99,9 @@ class ReferenceVariantsCollector(
|
|||||||
|
|
||||||
var variants = getReferenceVariants(descriptorKindFilter, descriptorNameFilter.toNameFilter())
|
var variants = getReferenceVariants(descriptorKindFilter, descriptorNameFilter.toNameFilter())
|
||||||
|
|
||||||
val getOrSetPrefix = listOf("get", "set", "ge", "se", "g", "s").firstOrNull { prefix.startsWith(it) }
|
val getOrSetPrefix = GET_SET_PREFIXES.firstOrNull { prefix.startsWith(it) }
|
||||||
val additionalPropertyNameFilter: ((String) -> Boolean)? = run {
|
val additionalPropertyNameFilter: ((String) -> Boolean)? = getOrSetPrefix
|
||||||
getOrSetPrefix?.let { prefixMatcher.cloneWithPrefix(prefix.removePrefix(getOrSetPrefix).decapitalizeSmart()).asStringNameFilter() }
|
?.let { prefixMatcher.cloneWithPrefix(prefix.removePrefix(getOrSetPrefix).decapitalizeSmart()).asStringNameFilter() }
|
||||||
}
|
|
||||||
if (additionalPropertyNameFilter != null) {
|
if (additionalPropertyNameFilter != null) {
|
||||||
variants += getReferenceVariants(descriptorKindFilter.intersect(DescriptorKindFilter.VARIABLES),
|
variants += getReferenceVariants(descriptorKindFilter.intersect(DescriptorKindFilter.VARIABLES),
|
||||||
additionalPropertyNameFilter.toNameFilter())
|
additionalPropertyNameFilter.toNameFilter())
|
||||||
|
|||||||
Reference in New Issue
Block a user