void (@NotNull FileChooserPanel panel, @NotNull AnActionEvent e) { List<WSLDistribution> vms = ProgressManager.getInstance().run(new Task.WithResult<>(e.getProject(), UIBundle.message("file.chooser.wsl.enumerating"), true) { @Override protected List<WSLDistribution> compute(@NotNull ProgressIndicator i) { return ProgressIndicatorUtils.awaitWithCheckCanceled(WslDistributionManager.getInstance().getInstalledDistributionsFuture(), i); } }); if (vms.isEmpty()) { Messages.showWarningDialog(e.getProject(), UIBundle.message("file.chooser.wsl.missing.text"), UIBundle.message("file.chooser.wsl.missing.title")); } else if (vms.size() == 1) { navigate(vms.get(0), e.getProject(), panel); } else { vms = new ArrayList<>(vms); vms.sort(Comparator.comparing(WSLDistribution::toString)); var popup = JBPopupFactory.getInstance().createPopupChooserBuilder(vms) .setItemChosenCallback(vm -> navigate(vm, e.getProject(), panel)) .createPopup(); PopupUtil.showForActionButtonEvent(popup, e); } }