mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-01 19:02:13 +07:00
extend supported cons (IDEA-96625)
This commit is contained in:
@@ -198,9 +198,13 @@ public abstract class AbstractEclipseClasspathReader<T> {
|
||||
addJUnitDefaultLib(rootModel, junitName, macroMap);
|
||||
}
|
||||
else if (path.equals(EclipseXml.GROOVY_DSL_CONTAINER)) {
|
||||
eclipseModuleManager.setGroovyDslSupport();
|
||||
eclipseModuleManager.addGroovySupport(EclipseXml.GROOVY_DSL_CONTAINER);
|
||||
eclipseModuleManager.registerSrcPlace(EclipseXml.GROOVY_DSL_CONTAINER, idx);
|
||||
}
|
||||
else if (path.equals(EclipseXml.GROOVY_SUPPORT)) {
|
||||
eclipseModuleManager.addGroovySupport(EclipseXml.GROOVY_SUPPORT);
|
||||
eclipseModuleManager.registerSrcPlace(EclipseXml.GROOVY_SUPPORT, idx);
|
||||
}
|
||||
else {
|
||||
eclipseModuleManager.registerUnknownCons(path);
|
||||
addNamedLibrary(rootModel, new ArrayList<String>(), exported, path, true);
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.idea.eclipse;
|
||||
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Set;
|
||||
@@ -29,9 +30,9 @@ public interface EclipseModuleManager {
|
||||
@Nullable
|
||||
String getInvalidJdk();
|
||||
|
||||
void setGroovyDslSupport();
|
||||
void addGroovySupport(String name);
|
||||
|
||||
boolean isGroovyDslSupport();
|
||||
String[] getGroovySupport();
|
||||
|
||||
void registerEclipseVariablePath(String path, String var);
|
||||
|
||||
@@ -86,11 +87,11 @@ public interface EclipseModuleManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGroovyDslSupport() {}
|
||||
public void addGroovySupport(String name) {}
|
||||
|
||||
@Override
|
||||
public boolean isGroovyDslSupport() {
|
||||
return false;
|
||||
public String[] getGroovySupport() {
|
||||
return ArrayUtil.EMPTY_STRING_ARRAY;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -42,6 +42,7 @@ public interface EclipseXml {
|
||||
@NonNls String USER_LIBRARY = "org.eclipse.jdt.USER_LIBRARY";
|
||||
@NonNls String JUNIT_CONTAINER = "org.eclipse.jdt.junit.JUNIT_CONTAINER";
|
||||
@NonNls String GROOVY_DSL_CONTAINER = "GROOVY_DSL_SUPPORT";
|
||||
@NonNls String GROOVY_SUPPORT = "GROOVY_SUPPORT";
|
||||
@NonNls String JUNIT3 = JUNIT_CONTAINER + "/" + "3.8.1";
|
||||
@NonNls String JUNIT4 = JUNIT_CONTAINER + "/" + "4";
|
||||
@NonNls String ECLIPSE_PLATFORM = "org.eclipse.pde.core.requiredPlugins";
|
||||
|
||||
@@ -23,15 +23,13 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleServiceManager;
|
||||
import com.intellij.openapi.roots.impl.storage.ClasspathStorage;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.idea.eclipse.EclipseModuleManager;
|
||||
import org.jetbrains.jps.eclipse.model.JpsEclipseClasspathSerializer;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
@State(
|
||||
name = "EclipseModuleManager",
|
||||
@@ -64,7 +62,8 @@ public class EclipseModuleManagerImpl implements EclipseModuleManager, Persisten
|
||||
private int myExpectedModuleSourcePlace;
|
||||
private Map<String, Integer> mySrcPlace = new LinkedHashMap<String, Integer>();
|
||||
private String myInvalidJdk;
|
||||
private boolean myGroovyDslSupport = false;
|
||||
|
||||
private Set<String> myGroovyDslSupport = new LinkedHashSet<String>();
|
||||
|
||||
public EclipseModuleManagerImpl(Module module) {
|
||||
myModule = module;
|
||||
@@ -81,13 +80,13 @@ public class EclipseModuleManagerImpl implements EclipseModuleManager, Persisten
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGroovyDslSupport() {
|
||||
myGroovyDslSupport = true;
|
||||
public void addGroovySupport(String name) {
|
||||
myGroovyDslSupport.add(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGroovyDslSupport() {
|
||||
return myGroovyDslSupport;
|
||||
public String[] getGroovySupport() {
|
||||
return ArrayUtil.toStringArray(myGroovyDslSupport);
|
||||
}
|
||||
|
||||
public static EclipseModuleManagerImpl getInstance(Module module) {
|
||||
@@ -261,6 +260,7 @@ public class EclipseModuleManagerImpl implements EclipseModuleManager, Persisten
|
||||
myEclipseVariablePaths.clear();
|
||||
myUnknownCons.clear();
|
||||
mySrcPlace.clear();
|
||||
myGroovyDslSupport.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-2
@@ -98,10 +98,11 @@ public class EclipseClasspathReader extends AbstractEclipseClasspathReader<Modif
|
||||
}
|
||||
}
|
||||
int idx = 0;
|
||||
final EclipseModuleManagerImpl eclipseModuleManager = EclipseModuleManagerImpl.getInstance(model.getModule());
|
||||
for (Object o : classpathElement.getChildren(EclipseXml.CLASSPATHENTRY_TAG)) {
|
||||
try {
|
||||
readClasspathEntry(model, unknownLibraries, unknownJdks, usedVariables, refsToModules, testPattern, (Element)o, idx++,
|
||||
EclipseModuleManagerImpl.getInstance(model.getModule()),
|
||||
eclipseModuleManager,
|
||||
((BasePathMacroManager)PathMacroManager.getInstance(model.getModule())).getExpandMacroMap());
|
||||
}
|
||||
catch (ConversionException e) {
|
||||
@@ -109,7 +110,7 @@ public class EclipseClasspathReader extends AbstractEclipseClasspathReader<Modif
|
||||
}
|
||||
}
|
||||
if (!model.isSdkInherited() && model.getSdkName() == null) {
|
||||
EclipseModuleManagerImpl.getInstance(model.getModule()).setForceConfigureJDK();
|
||||
eclipseModuleManager.setForceConfigureJDK();
|
||||
model.inheritSdk();
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -80,9 +80,9 @@ public class EclipseClasspathWriter {
|
||||
outputPath = EPathUtil.collapse2EclipsePath(compilerOutputUrl, myModel);
|
||||
}
|
||||
}
|
||||
if (eclipseModuleManager.isGroovyDslSupport()) {
|
||||
final Integer place = eclipseModuleManager.getSrcPlace(EclipseXml.GROOVY_DSL_CONTAINER);
|
||||
addOrderEntry(EclipseXml.CON_KIND, EclipseXml.GROOVY_DSL_CONTAINER, classpathElement, place != null ? place.intValue() : -1);
|
||||
for (String support : eclipseModuleManager.getGroovySupport()) {
|
||||
final Integer place = eclipseModuleManager.getSrcPlace(support);
|
||||
addOrderEntry(EclipseXml.CON_KIND, support, classpathElement, place != null ? place.intValue() : -1);
|
||||
}
|
||||
final Element orderEntry = addOrderEntry(EclipseXml.OUTPUT_KIND, outputPath, classpathElement);
|
||||
setAttributeIfAbsent(orderEntry, EclipseXml.PATH_ATTR, EclipseXml.BIN_DIR);
|
||||
|
||||
Reference in New Issue
Block a user