@NotNull private static Sdk createMockSdk(@NotNull String version) { String homePath = new File("testData/mockSdk-" + version + "/").getAbsolutePath(); GoSdkType sdkType = GoSdkType.getInstance(); ProjectJdkImpl sdk = new ProjectJdkImpl("Go " + version, sdkType, homePath, version); sdkType.setupSdkPaths(sdk); sdk.setVersionString(version); return sdk; }
private void writeInternalErlangSdk(@NotNull SdkModificator sdkModificator, @Nullable Sdk erlangSdk) { SdkAdditionalData sdkAdditionData = new SdkAdditionalData( erlangSdk, elixirSdk ); sdkModificator.setSdkAdditionalData(sdkAdditionData); ApplicationManager.getApplication().runWriteAction(sdkModificator::commitChanges); ((ProjectJdkImpl) elixirSdk).resetVersionString(); }
@Nullable private static Sdk createDefaultErlangSdk(@NotNull ProjectJdkTable projectJdkTable, @NotNull SdkType erlangSdkType, @NotNull String homePath) { String sdkName = erlangSdkType.suggestSdkName("Default " + erlangSdkType.getName(), homePath); ProjectJdkImpl projectJdkImpl = new ProjectJdkImpl(sdkName, erlangSdkType); projectJdkImpl.setHomePath(homePath); erlangSdkType.setupSdkPaths(projectJdkImpl); final Sdk erlangSdk; if (projectJdkImpl.getVersionString() != null) { ApplicationManager.getApplication().invokeAndWait( () -> ApplicationManager.getApplication().runWriteAction(() -> projectJdkTable.addJdk(projectJdkImpl) ), NON_MODAL ); erlangSdk = projectJdkImpl; } else { erlangSdk = null; } return erlangSdk; }
@TestOnly @NotNull public static Sdk createMockSdk(@NotNull String sdkHome, @NotNull Release version) { getInstance().mySdkHomeToReleaseCache.put(getVersionCacheKey(sdkHome), version); // we'll not try to detect sdk version in tests environment Sdk sdk = new ProjectJdkImpl(getDefaultSdkName(sdkHome, version), getInstance()); SdkModificator sdkModificator = sdk.getSdkModificator(); sdkModificator.setHomePath(sdkHome); sdkModificator.setVersionString(getVersionString(version));// must be set after home path, otherwise setting home path clears the version string sdkModificator.commitChanges(); configureSdkPaths(sdk); return sdk; }
@Override protected void modifyRoots(@NotNull AnActionEvent e, @NotNull Module module, @NotNull VirtualFile[] files) { PerlModuleExtension modifiableModel = (PerlModuleExtension)PerlModuleExtension.getInstance(module).getModifiableModel(true); for (VirtualFile virtualFile : files) { modifiableModel.setRoot(virtualFile, myType); } modifiableModel.commit(); } }
@Override public void actionPerformed(@NotNull AnActionEvent e) { RootsSelection selection = getSelection(e); PerlModuleExtension perlModuleExtension = (PerlModuleExtension)PerlModuleExtension.getInstance(selection.myModule).getModifiableModel(true); for (VirtualFile virtualFile : getFilesFromSelection(selection)) { perlModuleExtension.removeRoot(virtualFile); } perlModuleExtension.commit(); }
@Override public void reset() { if (myModifiableModel != null) { myModifiableModel.dispose(); myModifiableModel = null; } myModifiableModel = (PerlModuleExtension)PerlModuleExtension.getInstance(myModule).getModifiableModel(true); }
private void removeSdk(AnActionEvent e) { Sdk selectedSdk = getSelectedSdk(); if (selectedSdk != null) { PerlSdkTable.getInstance().removeJdk(selectedSdk); } }
public static Sdk getTestJdk() { try { ProjectJdkImpl jdk = (ProjectJdkImpl)JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk().clone(); jdk.setName("JDK"); return jdk; } catch (CloneNotSupportedException e) { //LOG.error(e); return null; } }
@Override protected boolean isEnabled(@NotNull List<VirtualFile> files, @NotNull Module module) { PerlModuleExtension perlModuleExtension = PerlModuleExtension.getInstance(module); for (VirtualFile file : files) { if (perlModuleExtension.getRootType(file) != null) { return true; } } return false; } }
@NotNull public ProjectJdkImpl createSdk(@NotNull String name) { return (ProjectJdkImpl)createSdk(name, PerlSdkType.INSTANCE); }
@Override public ModuleExtension getModifiableModel(boolean writable) { return new PerlModuleExtension(this, writable); }
@Override public void apply() { assert myModifiableModel != null; myModifiableModel.commit(); }
@Override public boolean isModified() { return myModifiableModel.isChanged(); }
@Nullable @Override public Sdk findJdk(String name, String type) { return findJdk(name); }
@Override public Element getState() { Element element = new Element("state"); for (Sdk sdk : myInterpretersList) { Element e = new Element(PERL); ((ProjectJdkImpl)sdk).writeExternal(e); element.addContent(e); } return element; }
application.addComponent(VirtualFilePointerManager.class, new CoreVirtualFilePointerManager()); ProjectJdkTable projectJdkTable = new ProjectJdkTableImpl(); registerApplicationService(ProjectJdkTable.class, projectJdkTable);
public Sdk getSdk() { return ((JavaSdkImpl) JavaSdk.getInstance()) .createMockJdk("Test JDK", System.getProperty("java.home"), true); } };
public static Sdk findOrCreateSdk() { final DlangSdkType sdkType = DlangSdkType.getInstance(); final Comparator<Sdk> sdkComparator = (sdk1, sdk2) -> { if (sdk1.getSdkType() == sdkType) { return -1; } else if (sdk2.getSdkType() == sdkType) { return 1; } else { return 0; } }; return SdkConfigurationUtil.findOrCreateSdk(sdkComparator, sdkType); } }
String sdkHome = sdkType.adjustSelectedSdkHome(sdk.getHomePath()); if (sdkType.isValidSdkHome(sdkHome)) { ProjectJdkImpl newSdk = new ProjectJdkImpl(sdk.getName(), sdkType, sdkHome, sdkType.getVersionString(sdkHome)); sdkType.setupSdkPaths(newSdk); sdksToAdd.add(newSdk);