下面列出了怎么用com.intellij.openapi.roots.LanguageLevelModuleExtension的API类实例代码及写法,或者点击链接到github查看源代码。
@NotNull
@Override
protected LightProjectDescriptor getProjectDescriptor() {
LanguageLevel languageLevel = LanguageLevel.JDK_1_8;
return new DefaultLightProjectDescriptor() {
@Override
public Sdk getSdk() {
String compilerOption = JpsJavaSdkType.complianceOption(languageLevel.toJavaVersion());
return JavaSdk.getInstance().createJdk( "java " + compilerOption, BUILD_MOCK_JDK_DIRECTORY + compilerOption, false );
}
@Override
public void configureModule(@NotNull Module module, @NotNull ModifiableRootModel model, @NotNull ContentEntry contentEntry) {
model.getModuleExtension( LanguageLevelModuleExtension.class ).setLanguageLevel( languageLevel );
}
};
}
@NotNull
@Override
protected LightProjectDescriptor getProjectDescriptor() {
LanguageLevel languageLevel = LanguageLevel.JDK_1_8;
return new DefaultLightProjectDescriptor() {
@Override
public Sdk getSdk() {
String compilerOption = JpsJavaSdkType.complianceOption(languageLevel.toJavaVersion());
return JavaSdk.getInstance().createJdk( "java " + compilerOption, BUILD_MOCK_JDK_DIRECTORY + compilerOption, false );
}
@Override
public void configureModule(@NotNull Module module, @NotNull ModifiableRootModel model, @NotNull ContentEntry contentEntry) {
model.getModuleExtension( LanguageLevelModuleExtension.class ).setLanguageLevel( languageLevel );
}
};
}
@Override
public void setupRootModel(ModifiableRootModel modifiableRootModel) {
Sdk moduleOrProjectSdk = getModuleJdk() != null ?
getModuleJdk() :
getInstance(modifiableRootModel.getProject()).getProjectSdk();
if (moduleOrProjectSdk != null) {
modifiableRootModel.setSdk(moduleOrProjectSdk);
}
LanguageLevelModuleExtension languageLevelModuleExtension =
modifiableRootModel.getModuleExtension(LanguageLevelModuleExtension.class);
if (languageLevelModuleExtension != null && moduleOrProjectSdk != null) {
if (safeGetProjectCreationRequest().isJavaVersionSet()) {
LanguageLevel lastSelectedLanguageLevel =
parse(safeGetProjectCreationRequest().getJavaVersion().getId());
if (lastSelectedLanguageLevel != null) {
JavaSdkVersion lastSelectedJavaSdkVersion = fromLanguageLevel(lastSelectedLanguageLevel);
JavaSdkVersion moduleOrProjectLevelJavaSdkVersion =
getInstance().getVersion(moduleOrProjectSdk);
if (moduleOrProjectLevelJavaSdkVersion != null && moduleOrProjectLevelJavaSdkVersion
.isAtLeast(lastSelectedJavaSdkVersion)) {
languageLevelModuleExtension.setLanguageLevel(lastSelectedLanguageLevel);
}
}
}
}
doAddContentEntry(modifiableRootModel);
}
public static LightProjectDescriptor getProjectDescriptor() {
return new DefaultLightProjectDescriptor() {
@Override
public Sdk getSdk() {
return JavaSdk.getInstance().createJdk("java 1.8", "lib/mockJDK-1.8", false);
}
@Override
public void configureModule(@NotNull Module module, @NotNull ModifiableRootModel model, @NotNull ContentEntry contentEntry) {
model.getModuleExtension(LanguageLevelModuleExtension.class).setLanguageLevel(LanguageLevel.JDK_1_8);
}
};
}