mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-44026 Make PyQualifiedNameCompletionMatcher accept a qualifed name directly
GitOrigin-RevId: 3a3a6915b277e327ece11af25bbd10fb47804cf8
This commit is contained in:
committed by
intellij-monorepo-bot
parent
9ad52f13a4
commit
aa3041a69f
+4
-4
@@ -100,11 +100,11 @@ class PyUnresolvedModuleAttributeCompletionContributor : CompletionContributor()
|
||||
val project = parameters.position.project
|
||||
val attribute = result.prefixMatcher.prefix
|
||||
val qualifier = context.get(REFERENCE_QUALIFIER)
|
||||
val qualifierString = qualifier.toString()
|
||||
val suggestedQualifiedNames = HashSet<String>()
|
||||
|
||||
ProgressManager.checkCanceled()
|
||||
val resultMatchingCompleteReference = result.withPrefixMatcher(QualifiedNameMatcher(qualifier.append(attribute)))
|
||||
val qualifiedName = qualifier.append(attribute)
|
||||
val resultMatchingCompleteReference = result.withPrefixMatcher(QualifiedNameMatcher(qualifiedName))
|
||||
PyModuleNameIndex.find(qualifier.lastComponent!!, project, true).asSequence()
|
||||
.filter { QualifiedNameFinder.findShortestImportableQName(it) == qualifier }
|
||||
.flatMap { it.iterateNames().asSequence() }
|
||||
@@ -112,7 +112,7 @@ class PyUnresolvedModuleAttributeCompletionContributor : CompletionContributor()
|
||||
.filterNot { it.name == null || it.name!!.startsWith('_') }
|
||||
.filter { attribute.isEmpty() || result.prefixMatcher.prefixMatches(it.name!!) }
|
||||
.mapNotNull {
|
||||
val qualifiedNameToSuggest = "$qualifierString.${it.name}"
|
||||
val qualifiedNameToSuggest = "$qualifier.${it.name}"
|
||||
if (suggestedQualifiedNames.add(qualifiedNameToSuggest)) {
|
||||
LookupElementBuilder.create(it, qualifiedNameToSuggest)
|
||||
.withIcon(it.getIcon(0))
|
||||
@@ -128,7 +128,7 @@ class PyUnresolvedModuleAttributeCompletionContributor : CompletionContributor()
|
||||
}
|
||||
val scope = PySearchUtilBase.excludeSdkTestsScope(project)
|
||||
PyQualifiedNameCompletionMatcher.processMatchingExportedNames(
|
||||
qualifier, attribute, parameters.originalFile, scope,
|
||||
qualifiedName, parameters.originalFile, scope,
|
||||
Processor {
|
||||
ProgressManager.checkCanceled()
|
||||
if (suggestedQualifiedNames.add(it.qualifiedName.toString())) {
|
||||
|
||||
+3
-5
@@ -36,13 +36,12 @@ public class PyQualifiedNameCompletionMatcher {
|
||||
private PyQualifiedNameCompletionMatcher() {
|
||||
}
|
||||
|
||||
public static void processMatchingExportedNames(@NotNull QualifiedName qualifierPattern,
|
||||
@NotNull String attributePattern,
|
||||
public static void processMatchingExportedNames(@NotNull QualifiedName qualifiedNamePattern,
|
||||
@NotNull PsiFile currentFile,
|
||||
@NotNull GlobalSearchScope scope,
|
||||
@NotNull Processor<? super ExportedName> processor) {
|
||||
if (attributePattern.isEmpty() || qualifierPattern.getComponentCount() == 0) return;
|
||||
QualifiedNameMatcher matcher = new QualifiedNameMatcher(qualifierPattern.append(attributePattern));
|
||||
if (qualifiedNamePattern.getComponentCount() < 2) return;
|
||||
QualifiedNameMatcher matcher = new QualifiedNameMatcher(qualifiedNamePattern);
|
||||
StubIndex stubIndex = StubIndex.getInstance();
|
||||
Project project = Objects.requireNonNull(scope.getProject());
|
||||
|
||||
@@ -86,7 +85,6 @@ public class PyQualifiedNameCompletionMatcher {
|
||||
}
|
||||
finally {
|
||||
if (LOG.isDebugEnabled()) {
|
||||
String qualifiedNamePattern = qualifierPattern + "." + attributePattern;
|
||||
LOG.debug("Index lookup stats for '" + qualifiedNamePattern + "':\n" +
|
||||
"Scanned keys: " + stats.scannedKeys + "\n" +
|
||||
"Matched keys: " + stats.matchingKeys + "\n" +
|
||||
|
||||
Reference in New Issue
Block a user