类com.intellij.openapi.roots.LanguageLevelModuleExtension源码实例Demo

下面列出了怎么用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);
}
 
源代码4 项目: lombok-intellij-plugin   文件: LombokTestUtil.java
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);
    }
  };
}
 
 类方法
 同包方法