mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
prioritize compatible file types
#WEB-7856 fixed
This commit is contained in:
+9
@@ -15,10 +15,14 @@
|
||||
*/
|
||||
package com.intellij.psi.impl.source.resolve.reference.impl.providers;
|
||||
|
||||
import com.intellij.codeInsight.completion.PrioritizedLookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupElementBuilder;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Iconable;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiFileSystemItem;
|
||||
import com.intellij.psi.PsiNamedElement;
|
||||
import com.intellij.psi.search.PsiElementProcessor;
|
||||
@@ -90,6 +94,7 @@ public class FileReferenceCompletionImpl extends FileReferenceCompletion {
|
||||
}
|
||||
}
|
||||
|
||||
final FileType[] types = reference.getFileReferenceSet().getSuitableFileTypes();
|
||||
final THashSet<PsiElement> set = new THashSet<PsiElement>(collector.getResults(), VARIANTS_HASHING_STRATEGY);
|
||||
final PsiElement[] candidates = PsiUtilCore.toPsiElementArray(set);
|
||||
|
||||
@@ -100,6 +105,10 @@ public class FileReferenceCompletionImpl extends FileReferenceCompletion {
|
||||
if (item == null) {
|
||||
item = FileInfoManager.getFileLookupItem(candidate);
|
||||
}
|
||||
if (candidate instanceof PsiFile && item instanceof LookupElement &&
|
||||
types.length > 0 && ArrayUtil.contains(((PsiFile)candidate).getFileType(), types)) {
|
||||
item = PrioritizedLookupElement.withPriority((LookupElement)item, Double.MAX_VALUE);
|
||||
}
|
||||
variants[i] = item;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user