Code refactoring

This commit is contained in:
Valentin Kipyatkov
2014-08-12 19:38:47 +04:00
parent 6b8800f392
commit 04bf0059ec
2 changed files with 11 additions and 20 deletions
@@ -122,21 +122,16 @@ public class JetShortNamesCache(private val project: Project) : PsiShortNamesCac
destination.addAll(Arrays.asList<String>(*getAllClassNames()))
}
/**
* Get kotlin non-extension top-level function names. Method is allowed to give invalid names - all result should be
* checked with getTopLevelFunctionDescriptorsByName().
*/
public fun getAllTopLevelFunctionNames(): Collection<String> {
return (JetTopLevelNonExtensionFunctionShortNameIndex.getInstance().getAllKeys(project)
+ JetFromJavaDescriptorHelper.getPossiblePackageDeclarationsNames(project, GlobalSearchScope.allScope(project))).toSet()
public fun getTopLevelObjects(nameFilter: (String) -> Boolean, resolveSession: ResolveSessionForBodies, scope: GlobalSearchScope): Collection<ClassDescriptor> {
val allObjectNames = JetTopLevelObjectShortNameIndex.getInstance().getAllKeys(project).stream() +
JetFromJavaDescriptorHelper.getPossiblePackageDeclarationsNames(project, GlobalSearchScope.allScope(project)).stream()
return allObjectNames
.filter(nameFilter)
.toSet()
.flatMap { getTopLevelObjectsByName(it, resolveSession, scope) }
}
public fun getAllTopLevelObjectNames(): Collection<String> {
return (JetTopLevelObjectShortNameIndex.getInstance().getAllKeys(project)
+ JetFromJavaDescriptorHelper.getCompiledClassesForTopLevelObjects(project, GlobalSearchScope.allScope(project)).map { it.getName()!! }).toSet()
}
public fun getTopLevelObjectsByName(name: String, resolveSession: ResolveSessionForBodies, scope: GlobalSearchScope): Collection<ClassDescriptor> {
private fun getTopLevelObjectsByName(name: String, resolveSession: ResolveSessionForBodies, scope: GlobalSearchScope): Collection<ClassDescriptor> {
val result = hashSetOf<ClassDescriptor>()
val topObjects = JetTopLevelObjectShortNameIndex.getInstance().get(name, project, scope)
@@ -155,13 +155,9 @@ class BasicCompletionSession(configuration: CompletionSessionConfiguration,
}
private fun addKotlinTopLevelDeclarations() {
collector.addDescriptorElements(shortNamesCache.getTopLevelCallables({ prefixMatcher.prefixMatches(it) }, jetReference!!.expression, resolveSession, searchScope))
for (name in shortNamesCache.getAllTopLevelObjectNames()) {
if (prefixMatcher.prefixMatches(name)) {
collector.addDescriptorElements(shortNamesCache.getTopLevelObjectsByName(name, resolveSession, searchScope))
}
}
val filter = { (name: String) -> prefixMatcher.prefixMatches(name) }
collector.addDescriptorElements(shortNamesCache.getTopLevelCallables(filter, jetReference!!.expression, resolveSession, searchScope) +
shortNamesCache.getTopLevelObjects(filter, resolveSession, searchScope))
}
private fun addKotlinExtensions() {