Minor corrections after code review

This commit is contained in:
Valentin Kipyatkov
2015-06-25 21:53:17 +02:00
parent f679ed7011
commit a7e032456c
6 changed files with 16 additions and 12 deletions
@@ -145,8 +145,7 @@ class BasicCompletionSession(configuration: CompletionSessionConfiguration,
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()
})
(CompletionService.getCompletionService().getCurrentCompletion() as CompletionProgressIndicator)
.addWatchedPrefix(parameters.getOffset(), prefixPattern)
collector.restartCompletionOnPrefixChange(prefixPattern)
}
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()
}
else {
(psiElement as? PsiClass)?.getQualifiedName();
(psiElement as? PsiClass)?.getQualifiedName()
}
}
@@ -59,7 +59,7 @@ public abstract class DeclarationLookupObjectImpl(
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 {
private val LOG = Logger.getInstance("#" + javaClass<DeclarationLookupObject>().getName())
@@ -21,6 +21,7 @@ import com.intellij.codeInsight.lookup.LookupElement
import com.intellij.codeInsight.lookup.LookupElementDecorator
import com.intellij.codeInsight.lookup.LookupElementPresentation
import com.intellij.openapi.util.TextRange
import com.intellij.patterns.ElementPattern
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
@@ -199,4 +200,8 @@ class LookupElementsCollector(
public fun advertiseSecondCompletion() {
JavaCompletionContributor.advertiseSecondCompletion(completionParameters.getOriginalFile().getProject(), defaultResultSet)
}
public fun restartCompletionOnPrefixChange(prefixCondition: ElementPattern<String>) {
defaultResultSet.restartCompletionOnPrefixChange(prefixCondition)
}
}
@@ -56,26 +56,26 @@ class ParameterNameAndTypeCompletion(
private val parametersInCurrentFilePrefixMatcher = MyPrefixMatcher(defaultPrefixMatcher.getPrefix())
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 {
val prefix = defaultPrefixMatcher.getPrefix()
prefixWords = NameUtil.splitNameIntoWords(prefix)
allPrefixes = if (prefix.isEmpty() || prefix[0].isUpperCase())
nameSuggestionPrefixes = if (prefix.isEmpty() || prefix[0].isUpperCase())
emptyList()
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>()
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 classifiers = resolutionScope.getDescriptorsFiltered(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS, prefixMatcher.toClassifierNamePrefixMatcher().asNameFilter())
@@ -90,7 +90,7 @@ class ParameterNameAndTypeCompletion(
}
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() })
.collect(
{ 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);
if (!Character.isUpperCase(c)) return s;