Minor corrections after code review
This commit is contained in:
+1
-2
@@ -145,8 +145,7 @@ class BasicCompletionSession(configuration: CompletionSessionConfiguration,
|
|||||||
val prefixPattern = StandardPatterns.string().with(object : PatternCondition<String>("Prefix ends with uppercase letter") {
|
val prefixPattern = StandardPatterns.string().with(object : PatternCondition<String>("Prefix ends with uppercase letter") {
|
||||||
override fun accepts(prefix: String, context: ProcessingContext?) = prefix.isNotEmpty() && prefix.last().isUpperCase()
|
override fun accepts(prefix: String, context: ProcessingContext?) = prefix.isNotEmpty() && prefix.last().isUpperCase()
|
||||||
})
|
})
|
||||||
(CompletionService.getCompletionService().getCurrentCompletion() as CompletionProgressIndicator)
|
collector.restartCompletionOnPrefixChange(prefixPattern)
|
||||||
.addWatchedPrefix(parameters.getOffset(), prefixPattern)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (completionKind == CompletionKind.PARAMETER_NAME || completionKind == CompletionKind.ANNOTATION_TYPES_OR_PARAMETER_NAME) {
|
if (completionKind == CompletionKind.PARAMETER_NAME || completionKind == CompletionKind.ANNOTATION_TYPES_OR_PARAMETER_NAME) {
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ private class JetDeclarationRemotenessWeigher(private val file: JetFile) : Looku
|
|||||||
DescriptorUtils.getFqName(descriptor!!).toString()
|
DescriptorUtils.getFqName(descriptor!!).toString()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
(psiElement as? PsiClass)?.getQualifiedName();
|
(psiElement as? PsiClass)?.getQualifiedName()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -59,7 +59,7 @@ public abstract class DeclarationLookupObjectImpl(
|
|||||||
return descriptorsEqualWithSubstitution(descriptor, lookupObject.descriptor) && psiElement == lookupObject.psiElement
|
return descriptorsEqualWithSubstitution(descriptor, lookupObject.descriptor) && psiElement == lookupObject.psiElement
|
||||||
}
|
}
|
||||||
|
|
||||||
override val isDeprecated = if (descriptor != null) KotlinBuiltIns.isDeprecated(descriptor) else (psiElement as PsiDocCommentOwner).isDeprecated()
|
override val isDeprecated = if (descriptor != null) KotlinBuiltIns.isDeprecated(descriptor) else (psiElement as? PsiDocCommentOwner)?.isDeprecated() ?: false
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val LOG = Logger.getInstance("#" + javaClass<DeclarationLookupObject>().getName())
|
private val LOG = Logger.getInstance("#" + javaClass<DeclarationLookupObject>().getName())
|
||||||
|
|||||||
+5
@@ -21,6 +21,7 @@ import com.intellij.codeInsight.lookup.LookupElement
|
|||||||
import com.intellij.codeInsight.lookup.LookupElementDecorator
|
import com.intellij.codeInsight.lookup.LookupElementDecorator
|
||||||
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
|
import com.intellij.patterns.ElementPattern
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
@@ -199,4 +200,8 @@ class LookupElementsCollector(
|
|||||||
public fun advertiseSecondCompletion() {
|
public fun advertiseSecondCompletion() {
|
||||||
JavaCompletionContributor.advertiseSecondCompletion(completionParameters.getOriginalFile().getProject(), defaultResultSet)
|
JavaCompletionContributor.advertiseSecondCompletion(completionParameters.getOriginalFile().getProject(), defaultResultSet)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public fun restartCompletionOnPrefixChange(prefixCondition: ElementPattern<String>) {
|
||||||
|
defaultResultSet.restartCompletionOnPrefixChange(prefixCondition)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-7
@@ -56,26 +56,26 @@ class ParameterNameAndTypeCompletion(
|
|||||||
private val parametersInCurrentFilePrefixMatcher = MyPrefixMatcher(defaultPrefixMatcher.getPrefix())
|
private val parametersInCurrentFilePrefixMatcher = MyPrefixMatcher(defaultPrefixMatcher.getPrefix())
|
||||||
|
|
||||||
private val prefixWords: Array<String>
|
private val prefixWords: Array<String>
|
||||||
private val allPrefixes: List<String> // prefixes to use to generate parameter names from class names
|
private val nameSuggestionPrefixes: List<String> // prefixes to use to generate parameter names from class names
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val prefix = defaultPrefixMatcher.getPrefix()
|
val prefix = defaultPrefixMatcher.getPrefix()
|
||||||
prefixWords = NameUtil.splitNameIntoWords(prefix)
|
prefixWords = NameUtil.splitNameIntoWords(prefix)
|
||||||
|
|
||||||
allPrefixes = if (prefix.isEmpty() || prefix[0].isUpperCase())
|
nameSuggestionPrefixes = if (prefix.isEmpty() || prefix[0].isUpperCase())
|
||||||
emptyList()
|
emptyList()
|
||||||
else
|
else
|
||||||
prefixWords.indices.map { if (it == 0) prefix else prefixWords.drop(it).join("") }
|
prefixWords.indices.map { index -> if (index == 0) prefix else prefixWords.drop(index).join("") }
|
||||||
}
|
}
|
||||||
|
|
||||||
private val allPrefixMatchers = allPrefixes.map { MyPrefixMatcher(it) }
|
private val nameSuggestionPrefixMatchers = nameSuggestionPrefixes.map { MyPrefixMatcher(it) }
|
||||||
|
|
||||||
private val userPrefixes = allPrefixes.indices.map { prefixWords.take(it).join("") }
|
private val userPrefixes = nameSuggestionPrefixes.indices.map { prefixWords.take(it).join("") }
|
||||||
|
|
||||||
private val suggestionsByTypesAdded = HashSet<Type>()
|
private val suggestionsByTypesAdded = HashSet<Type>()
|
||||||
|
|
||||||
public fun addFromImportedClasses(position: PsiElement, bindingContext: BindingContext, visibilityFilter: (DeclarationDescriptor) -> Boolean) {
|
public fun addFromImportedClasses(position: PsiElement, bindingContext: BindingContext, visibilityFilter: (DeclarationDescriptor) -> Boolean) {
|
||||||
for ((i, prefixMatcher) in allPrefixMatchers.withIndex()) {
|
for ((i, prefixMatcher) in nameSuggestionPrefixMatchers.withIndex()) {
|
||||||
val resolutionScope = position.getResolutionScope(bindingContext, resolutionFacade)
|
val resolutionScope = position.getResolutionScope(bindingContext, resolutionFacade)
|
||||||
val classifiers = resolutionScope.getDescriptorsFiltered(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS, prefixMatcher.toClassifierNamePrefixMatcher().asNameFilter())
|
val classifiers = resolutionScope.getDescriptorsFiltered(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS, prefixMatcher.toClassifierNamePrefixMatcher().asNameFilter())
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ class ParameterNameAndTypeCompletion(
|
|||||||
}
|
}
|
||||||
|
|
||||||
public fun addFromAllClasses(parameters: CompletionParameters, indicesHelper: KotlinIndicesHelper) {
|
public fun addFromAllClasses(parameters: CompletionParameters, indicesHelper: KotlinIndicesHelper) {
|
||||||
for ((i, prefixMatcher) in allPrefixMatchers.withIndex()) {
|
for ((i, prefixMatcher) in nameSuggestionPrefixMatchers.withIndex()) {
|
||||||
AllClassesCompletion(parameters, indicesHelper, prefixMatcher.toClassifierNamePrefixMatcher(), { !it.isSingleton() })
|
AllClassesCompletion(parameters, indicesHelper, prefixMatcher.toClassifierNamePrefixMatcher(), { !it.isSingleton() })
|
||||||
.collect(
|
.collect(
|
||||||
{ addSuggestionsForClassifier(it, userPrefixes[i], prefixMatcher) },
|
{ addSuggestionsForClassifier(it, userPrefixes[i], prefixMatcher) },
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ public class JetNameSuggester {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String decapitalize(String s) {
|
private static String decapitalize(String s) {
|
||||||
char c = s.charAt(0);
|
char c = s.charAt(0);
|
||||||
if (!Character.isUpperCase(c)) return s;
|
if (!Character.isUpperCase(c)) return s;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user