mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
register PsiResolveHelper as an independent service
This commit is contained in:
+1
-6
@@ -81,12 +81,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
|
||||
}
|
||||
};
|
||||
|
||||
@SuppressWarnings({"UnusedDeclaration"}) //in plugin.xml
|
||||
public HighlightVisitorImpl(Project project) {
|
||||
this(JavaPsiFacade.getInstance(project).getResolveHelper());
|
||||
}
|
||||
|
||||
private HighlightVisitorImpl(@NotNull PsiResolveHelper resolveHelper) {
|
||||
public HighlightVisitorImpl(@NotNull PsiResolveHelper resolveHelper) {
|
||||
myResolveHelper = resolveHelper;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@ import com.intellij.psi.impl.source.JavaDummyHolder;
|
||||
import com.intellij.psi.impl.source.JavaDummyHolderFactory;
|
||||
import com.intellij.psi.impl.source.jsp.jspXml.JspDirective;
|
||||
import com.intellij.psi.impl.source.resolve.FileContextUtil;
|
||||
import com.intellij.psi.impl.source.resolve.PsiResolveHelperImpl;
|
||||
import com.intellij.psi.impl.source.tree.JavaElementType;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.util.PsiModificationTracker;
|
||||
@@ -57,7 +56,6 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.JavaPsiFacadeImpl");
|
||||
|
||||
private final PsiElementFinder[] myElementFinders;
|
||||
private final PsiResolveHelper myResolveHelper;
|
||||
private final PsiNameHelper myNameHelper;
|
||||
private final PsiConstantEvaluationHelper myConstantEvaluationHelper;
|
||||
private final ConcurrentMap<String, PsiPackage> myPackageCache = new ConcurrentHashMap<String, PsiPackage>();
|
||||
@@ -68,7 +66,6 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx {
|
||||
PsiManagerImpl psiManager,
|
||||
MessageBus bus) {
|
||||
myProject = project;
|
||||
myResolveHelper = new PsiResolveHelperImpl(PsiManager.getInstance(project));
|
||||
myNameHelper = new PsiNameHelperImpl(this);
|
||||
myConstantEvaluationHelper = new PsiConstantEvaluationHelperImpl();
|
||||
|
||||
@@ -203,7 +200,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx {
|
||||
|
||||
@NotNull
|
||||
public PsiResolveHelper getResolveHelper() {
|
||||
return myResolveHelper;
|
||||
return PsiResolveHelper.SERVICE.getInstance(myProject);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.intellij.psi;
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.infos.CandidateInfo;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -26,6 +28,15 @@ import org.jetbrains.annotations.Nullable;
|
||||
* @see JavaPsiFacade#getResolveHelper()
|
||||
*/
|
||||
public interface PsiResolveHelper {
|
||||
class SERVICE {
|
||||
private SERVICE() {
|
||||
}
|
||||
|
||||
public static PsiResolveHelper getInstance(Project project) {
|
||||
return ServiceManager.getService(project, PsiResolveHelper.class);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves a constructor.
|
||||
* The resolved constructor is not necessarily accessible from the point of the call,
|
||||
|
||||
@@ -151,7 +151,7 @@ public class PsiConcurrencyStressTest extends PsiTestCase {
|
||||
super.visitElement(element);
|
||||
|
||||
final HighlightInfoHolder infoHolder = new HighlightInfoHolder(myFile, HighlightInfoFilter.EMPTY_ARRAY);
|
||||
final HighlightVisitorImpl visitor = new HighlightVisitorImpl(getProject());
|
||||
final HighlightVisitorImpl visitor = new HighlightVisitorImpl(PsiResolveHelper.SERVICE.getInstance(getProject()));
|
||||
visitor.analyze(myFile, false, infoHolder, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -279,6 +279,8 @@
|
||||
serviceImplementation="com.intellij.psi.codeStyle.JavaCodeStyleSettingsFacadeImpl"/>
|
||||
<projectService serviceInterface="com.intellij.psi.impl.migration.PsiMigrationManager"
|
||||
serviceImplementation="com.intellij.psi.impl.migration.PsiMigrationManager"/>
|
||||
<projectService serviceInterface="com.intellij.psi.PsiResolveHelper"
|
||||
serviceImplementation="com.intellij.psi.impl.source.resolve.PsiResolveHelperImpl"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.psi.JavaDirectoryService"
|
||||
serviceImplementation="com.intellij.psi.impl.file.JavaDirectoryServiceImpl"/>
|
||||
|
||||
Reference in New Issue
Block a user