Make sure alt-headers actually work in "core" environment
This commit is contained in:
@@ -4,8 +4,10 @@ import com.intellij.core.JavaCoreEnvironment;
|
||||
import com.intellij.lang.java.JavaParserDefinition;
|
||||
import com.intellij.mock.MockApplication;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.jet.lang.parsing.JetParserDefinition;
|
||||
import org.jetbrains.jet.plugin.JetFileType;
|
||||
import org.jetbrains.jet.plugin.compiler.PathUtil;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
@@ -26,6 +28,9 @@ public class JetCoreEnvironment extends JavaCoreEnvironment {
|
||||
.registerExtension(new JavaElementFinder(myProject));
|
||||
*/
|
||||
|
||||
for (VirtualFile root : PathUtil.getAltHeadersRoots()) {
|
||||
addLibraryRoot(root);
|
||||
}
|
||||
}
|
||||
|
||||
public MockApplication getApplication() {
|
||||
|
||||
+3
-13
@@ -6,7 +6,6 @@ package org.jetbrains.jet.lang.resolve.java.alt;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiClassOwner;
|
||||
import com.intellij.psi.PsiFile;
|
||||
@@ -14,27 +13,18 @@ import com.intellij.psi.PsiManager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.plugin.compiler.PathUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AltClassFinder {
|
||||
private static final Logger LOG = Logger.getInstance("#org.jetbrains.jet.lang.resolve.java.alt.AltClassFinder");
|
||||
|
||||
private final PsiManager psiManager;
|
||||
private final List<VirtualFile> roots = new ArrayList<VirtualFile>();
|
||||
private final List<VirtualFile> roots;
|
||||
|
||||
|
||||
public AltClassFinder(Project project) {
|
||||
psiManager = PsiManager.getInstance(project);
|
||||
|
||||
File alts = PathUtil.getAltHeadersPath();
|
||||
|
||||
if (alts != null) {
|
||||
for (File root : alts.listFiles()) {
|
||||
VirtualFile jarRoot = VirtualFileManager.getInstance().findFileByUrl("jar://" + root.getPath() + "!/");
|
||||
roots.add(jarRoot);
|
||||
}
|
||||
}
|
||||
this.roots = PathUtil.getAltHeadersRoots();
|
||||
}
|
||||
|
||||
public PsiClass findClass(@NotNull String qualifiedName) {
|
||||
|
||||
@@ -4,9 +4,13 @@
|
||||
package org.jetbrains.jet.plugin.compiler;
|
||||
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PathUtil {
|
||||
private PathUtil() {}
|
||||
@@ -64,4 +68,18 @@ public class PathUtil {
|
||||
String resourceRoot = PathManager.getResourceRoot(aClass, "/" + aClass.getName().replace('.', '/') + ".class");
|
||||
return new File(resourceRoot).getAbsoluteFile().getAbsolutePath();
|
||||
}
|
||||
|
||||
public static List<VirtualFile> getAltHeadersRoots() {
|
||||
List<VirtualFile> roots = new ArrayList<VirtualFile>();
|
||||
|
||||
File alts = getAltHeadersPath();
|
||||
|
||||
if (alts != null) {
|
||||
for (File root : alts.listFiles()) {
|
||||
VirtualFile jarRoot = VirtualFileManager.getInstance().findFileByUrl("jar://" + root.getPath() + "!/");
|
||||
roots.add(jarRoot);
|
||||
}
|
||||
}
|
||||
return roots;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user