Refactored code
This commit is contained in:
@@ -26,6 +26,7 @@ import com.intellij.openapi.util.Key
|
||||
public open class JetCompletionCharFilter() : CharFilter() {
|
||||
class object {
|
||||
public val ACCEPT_OPENING_BRACE: Key<Boolean> = Key<Boolean>("JetCompletionCharFilter.ACCEPT_OPENNING_BRACE")
|
||||
public val ACCEPT_EQ: Key<Boolean> = Key<Boolean>("JetCompletionCharFilter.ACCEPT_EQ")
|
||||
}
|
||||
|
||||
public override fun acceptChar(c : Char, prefixLength : Int, lookup : Lookup) : Result? {
|
||||
@@ -47,7 +48,7 @@ public open class JetCompletionCharFilter() : CharFilter() {
|
||||
|
||||
if (c == '=') {
|
||||
val currentItem = lookup.getCurrentItem()
|
||||
if (currentItem != null && (currentItem.getObject() is KotlinNamedParametersContributor.NamedParameterLookupObject)) {
|
||||
if (currentItem != null && currentItem.getUserData(ACCEPT_EQ) ?: false) {
|
||||
return Result.SELECT_ITEM_AND_FINISH_LOOKUP
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ import org.jetbrains.jet.lang.psi.JetCallElement
|
||||
import org.jetbrains.jet.plugin.references.JetReference
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor
|
||||
import com.intellij.codeInsight.lookup.LookupElementBuilder
|
||||
import org.jetbrains.jet.plugin.completion.KotlinNamedParametersContributor.NamedParameterLookupObject
|
||||
import org.jetbrains.jet.plugin.JetIcons
|
||||
import org.jetbrains.jet.lang.resolve.name.Name
|
||||
import org.jetbrains.jet.plugin.completion.weigher.addJetSorting
|
||||
@@ -49,8 +48,6 @@ import org.jetbrains.jet.plugin.util.FirstChildInParentFilter
|
||||
import org.jetbrains.jet.lang.psi.psiUtil.getCallNameExpression
|
||||
|
||||
public class KotlinNamedParametersContributor : CompletionContributor() {
|
||||
public class NamedParameterLookupObject(val name: Name) {}
|
||||
|
||||
private val InNamedParameterFilter = AndFilter(
|
||||
LeafElementFilter(JetTokens.IDENTIFIER),
|
||||
OrFilter(
|
||||
@@ -75,11 +72,8 @@ public class KotlinNamedParametersContributor : CompletionContributor() {
|
||||
private fun doParamsCompletion(parameters: CompletionParameters, result: CompletionResultSet) {
|
||||
val valueArgument = PsiTreeUtil.getParentOfType(parameters.getPosition(), javaClass<JetValueArgument>())!!
|
||||
|
||||
val callElement = PsiTreeUtil.getParentOfType(valueArgument, javaClass<JetCallElement>())
|
||||
if (callElement == null) return
|
||||
|
||||
val callSimpleName = callElement.getCallNameExpression()
|
||||
if (callSimpleName == null) return
|
||||
val callElement = PsiTreeUtil.getParentOfType(valueArgument, javaClass<JetCallElement>()) ?: return
|
||||
val callSimpleName = callElement.getCallNameExpression() ?: return
|
||||
|
||||
val kotlinResultSet = result.addJetSorting(parameters)
|
||||
|
||||
@@ -95,12 +89,13 @@ public class KotlinNamedParametersContributor : CompletionContributor() {
|
||||
for (parameter in funDescriptor.getValueParameters()) {
|
||||
val name = parameter.getName().asString()
|
||||
if (result.getPrefixMatcher().prefixMatches(name) && name !in usedArguments) {
|
||||
val lookupElement = LookupElementBuilder.create(NamedParameterLookupObject(parameter.getName()), "${name}")
|
||||
.withPresentableText("${name} = ")
|
||||
val lookupElement = LookupElementBuilder.create("$name")
|
||||
.withPresentableText("$name = ")
|
||||
.withTailText("${DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(parameter.getType())}")
|
||||
.withIcon(JetIcons.PARAMETER)
|
||||
.withInsertHandler(NamedParameterInsertHandler)
|
||||
.assignPriority(ItemPriority.NAMED_PARAMETER)
|
||||
lookupElement.putUserData(JetCompletionCharFilter.ACCEPT_EQ, true);
|
||||
|
||||
kotlinResultSet.addElement(lookupElement)
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ 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;
|
||||
import org.jetbrains.jet.plugin.completion.KotlinNamedParametersContributor;
|
||||
|
||||
class JetKindWeigher extends LookupElementWeigher {
|
||||
JetKindWeigher() {
|
||||
@@ -35,7 +34,6 @@ class JetKindWeigher extends LookupElementWeigher {
|
||||
private enum Weight {
|
||||
localOrParameter,
|
||||
property,
|
||||
namedParameter,
|
||||
probableKeyword,
|
||||
normal,
|
||||
packages
|
||||
@@ -60,9 +58,6 @@ class JetKindWeigher extends LookupElementWeigher {
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (object instanceof KotlinNamedParametersContributor.NamedParameterLookupObject) {
|
||||
return Weight.namedParameter;
|
||||
}
|
||||
else if (object instanceof String) {
|
||||
return Weight.probableKeyword;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import com.intellij.psi.util.PsiTreeUtil
|
||||
|
||||
public class FirstChildInParentFilter(val level: Int = 1) : PositionElementFilter() {
|
||||
override fun isAcceptable(element: Any?, context: PsiElement?): Boolean {
|
||||
if (!(element is PsiElement)) return false
|
||||
if (element !is PsiElement) return false
|
||||
|
||||
var parent: PsiElement? = element
|
||||
for (i in 1..level) {
|
||||
|
||||
Reference in New Issue
Block a user