mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
added new extension to JavaCoreEnvironment for kotlin
This commit is contained in:
@@ -27,6 +27,7 @@ import com.intellij.psi.impl.JavaPsiImplementationHelper;
|
||||
import com.intellij.psi.impl.PsiElementFactoryImpl;
|
||||
import com.intellij.psi.impl.compiled.ClassFileStubBuilder;
|
||||
import com.intellij.psi.impl.compiled.ClsStubBuilderFactory;
|
||||
import com.intellij.psi.impl.compiled.DefaultClsStubBuilderFactory;
|
||||
import com.intellij.psi.impl.source.resolve.PsiResolveHelperImpl;
|
||||
import com.intellij.psi.stubs.BinaryFileStubBuilders;
|
||||
|
||||
@@ -47,6 +48,7 @@ public class JavaCoreEnvironment extends CoreEnvironment {
|
||||
|
||||
registerProjectExtensionPoint(PsiElementFinder.EP_NAME, PsiElementFinder.class);
|
||||
registerExtensionPoint(Extensions.getRootArea(), ClsStubBuilderFactory.EP_NAME, ClsStubBuilderFactory.class);
|
||||
addExtension(ClsStubBuilderFactory.EP_NAME, new DefaultClsStubBuilderFactory());
|
||||
|
||||
myFileManager = new CoreJavaFileManager(myPsiManager, getLocalFileSystem(), myJarFileSystem);
|
||||
JavaPsiFacadeImpl javaPsiFacade = new JavaPsiFacadeImpl(myProject, myPsiManager, myFileManager, null);
|
||||
|
||||
@@ -160,6 +160,17 @@ public class CoreEnvironment {
|
||||
});
|
||||
}
|
||||
|
||||
protected <T> void addExtension(ExtensionPointName<T> name, final T extension) {
|
||||
final ExtensionPoint<T> extensionPoint = Extensions.getRootArea().getExtensionPoint(name);
|
||||
extensionPoint.registerExtension(extension);
|
||||
Disposer.register(myProject, new Disposable() {
|
||||
@Override
|
||||
public void dispose() {
|
||||
extensionPoint.unregisterExtension(extension);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected <T> void registerExtensionPoint(final ExtensionsArea area, final ExtensionPointName<T> extensionPointName,
|
||||
final Class<? extends T> aClass) {
|
||||
final String name = extensionPointName.getName();
|
||||
|
||||
Reference in New Issue
Block a user