/** * @return stream of existing sdks from this host */ @NotNull public final Stream<Sdk> getHostSdkStream() { return PerlSdkTable.getInstance().getInterpreters().stream().filter(it -> this.equals(PerlHostData.from(it))); }
/** * @return list of SDK items, wrapped into {@link Perl5SdkWrapper}, may contain text items and parent item. * @see com.perl5.lang.perl.idea.configuration.settings.sdk.wrappers.Perl5ParentSdkWrapper * @see com.perl5.lang.perl.idea.configuration.settings.sdk.wrappers.Perl5TextSdkWrapper */ @NotNull default List<Perl5SdkWrapper> getAllSdkWrappers() { List<Sdk> interpreters = PerlSdkTable.getInstance().getInterpreters(); interpreters.sort(Comparator.comparing(Sdk::getName)); return ContainerUtil.map(interpreters, Perl5RealSdkWrapper::new); }
public static void createAndAddSdk(@NotNull String interpreterPath, @NotNull PerlHostData hostData, @NotNull PerlVersionManagerData versionManagerData, @Nullable Consumer<Sdk> sdkConsumer, @NotNull Project project) { createSdk(interpreterPath, hostData, versionManagerData, sdk -> { PerlSdkTable.getInstance().addJdk(sdk); if (sdkConsumer != null) { sdkConsumer.accept(sdk); } PerlRunUtil.refreshSdkDirs(sdk, project); }); }
private void removeSdk(AnActionEvent e) { Sdk selectedSdk = getSelectedSdk(); if (selectedSdk != null) { PerlSdkTable.getInstance().removeJdk(selectedSdk); } }
/** * Creates and adds new Perl SDK * * @param interpreterPath interpreter path * @param sdkConsumer created sdk consumer */ public static void createSdk(@NotNull String interpreterPath, @NotNull PerlHostData hostData, @NotNull PerlVersionManagerData versionManagerData, @NotNull Consumer<Sdk> sdkConsumer) { VersionDescriptor perlVersionDescriptor = PerlSdkType.getPerlVersionDescriptor(interpreterPath, hostData, versionManagerData); if (perlVersionDescriptor == null) { ApplicationManager.getApplication().invokeLater( () -> Messages.showErrorDialog("Failed to fetch perl version, see logs for more details", "Failed to Create Interpreter")); return; } String newSdkName = SdkConfigurationUtil.createUniqueSdkName( suggestSdkName(perlVersionDescriptor, hostData, versionManagerData), PerlSdkTable.getInstance().getInterpreters()); final ProjectJdkImpl newSdk = PerlSdkTable.getInstance().createSdk(newSdkName); newSdk.setHomePath(interpreterPath); PerlImplementationData<?, ?> implementationData = PerlImplementationHandler.createData( interpreterPath, hostData, versionManagerData); if (implementationData == null) { return; } newSdk.setVersionString(perlVersionDescriptor.getVersionString()); newSdk.setSdkAdditionalData(new PerlSdkAdditionalData(hostData, versionManagerData, implementationData)); sdkConsumer.accept(newSdk); }
myPanel.getSdkComboBox().registerKeyboardAction(e -> { if (getSelectedSdk() != null) { PerlSdkTable.getInstance().removeJdk(getSelectedSdk());
mySdkProvider = AtomicNullableLazyValue.createValue(() -> PerlSdkTable.getInstance().findJdk(myPerlSettings.getPerlInterpreter())); myExternalLibraryRootsProvider = AtomicNotNullLazyValue.createValue(() -> { List<VirtualFile> result = new ArrayList<>();
PerlSdkTable.getInstance().getInterpreters().forEach(it -> { String sdkCacheRoot = PerlHostData.notNullFrom(it).getLocalCacheRoot(); if (StringUtil.isEmpty(sdkCacheRoot)) {
@NotNull public Sdk getEffectiveSdk() throws ExecutionException { Sdk perlSdk; if (isUseAlternativeSdk()) { String alternativeSdkName = getAlternativeSdkName(); perlSdk = PerlSdkTable.getInstance().findJdk(alternativeSdkName); if (perlSdk == null) { throw new ExecutionException(PerlBundle.message("perl.run.error.no.alternative.sdk", alternativeSdkName)); } return perlSdk; } else { perlSdk = PerlProjectManager.getSdk(getProject()); if (perlSdk == null) { throw new ExecutionException(PerlBundle.message("perl.run.error.no.sdk", getProject())); } } return perlSdk; }
return; PerlSdkTable perlSdkTable = PerlSdkTable.getInstance(); Messages.showInputDialog( myPanel.getSdkComboBox(),
@Override protected void resetEditorFrom(@NotNull PerlRunConfiguration perlRunConfiguration) { myScriptField.setText(perlRunConfiguration.getScriptPath()); myParametersPanel.reset(perlRunConfiguration); myConsoleCharset.setSelectedItem(perlRunConfiguration.getConsoleCharset()); myPerlParametersPanel.setText(perlRunConfiguration.getPerlParameters()); myAlternativeSdkCheckbox.setSelected(perlRunConfiguration.isUseAlternativeSdk()); mySdkConfigurable.setEnabled(perlRunConfiguration.isUseAlternativeSdk()); mySdkProxy = PerlSdkTable.getInstance().findJdk(perlRunConfiguration.getAlternativeSdkName()); mySdkConfigurable.reset(); super.resetEditorFrom(perlRunConfiguration); }
protected void addSdk() { PerlSdkType.createSdk( "/usr/bin/perl", PerlHostHandler.getDefaultHandler().createData(), PerlVersionManagerHandler.getDefaultHandler().createData(), sdk -> { PerlSdkTable.getInstance().addJdk(sdk, getTestRootDisposable()); PerlProjectManager.getInstance(getProject()).setProjectSdk(sdk); PerlRunUtil.refreshSdkDirs(sdk, getProject()); }); }
protected void setUpLibrary() { Application application = ApplicationManager.getApplication(); application.invokeAndWait(() -> application.runWriteAction( () -> { VirtualFile libdir = LocalFileSystem.getInstance().refreshAndFindFileByPath("../testData/testlib"); assert libdir != null; PerlProjectManager perlProjectManager = PerlProjectManager.getInstance(getProject()); ProjectJdkImpl testSdk = PerlSdkTable.getInstance().createSdk("test"); testSdk.setSdkAdditionalData(new PerlSdkAdditionalData( PerlHostHandler.getDefaultHandler().createData(), PerlVersionManagerData.getDefault(), PerlImplementationHandler.getDefaultHandler().createData())); PerlSdkTable.getInstance().addJdk(testSdk, getTestRootDisposable()); perlProjectManager.setProjectSdk(testSdk); perlProjectManager.addExternalLibrary(libdir); CodeInsightTestFixtureImpl.ensureIndexesUpToDate(getProject()); })); }