Skip to content

Commit

Permalink
[lombok] Simplify check of Lombok presense on project opening via has…
Browse files Browse the repository at this point in the history
…LibraryJar check instead of findClass

GitOrigin-RevId: cbc358ba74a4740ebbfaeaea89d32d57f5ac969f
  • Loading branch information
jreznot authored and intellij-monorepo-bot committed Jun 6, 2023
1 parent 7062c04 commit dc4b99d
Showing 1 changed file with 7 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.plushnikov.intellij.plugin.util;

import com.intellij.java.library.JavaLibraryUtil;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.diagnostic.Logger;
Expand All @@ -11,7 +12,7 @@
import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiPackage;
import com.intellij.psi.util.CachedValueProvider;
import com.intellij.psi.util.CachedValueProvider.Result;
import com.intellij.psi.util.CachedValuesManager;
import de.plushnikov.intellij.plugin.Version;
import org.jetbrains.annotations.NotNull;
Expand All @@ -21,23 +22,17 @@

public final class LombokLibraryUtil {

private static final Logger LOG = Logger.getInstance(LombokLibraryUtil.class);

private static final String LOMBOK_PACKAGE = "lombok.experimental";

public static boolean hasLombokLibrary(@NotNull Project project) {
if (project.isDefault() || !project.isInitialized()) {
return false;
}
ApplicationManager.getApplication().assertReadAccessAllowed();
return CachedValuesManager.getManager(project).getCachedValue(project, () -> {
PsiPackage aPackage = JavaPsiFacade.getInstance(project).findPackage(LOMBOK_PACKAGE);
return new CachedValueProvider.Result<>(aPackage, ProjectRootManager.getInstance(project));
}) != null;
return JavaLibraryUtil.hasLibraryJar(project, "org.projectlombok:lombok");
}

@NotNull
public static String getLombokVersionCached(@NotNull Project project) {
public static @NotNull String getLombokVersionCached(@NotNull Project project) {
return CachedValuesManager.getManager(project).getCachedValue(project, () -> {
String lombokVersion = null;
try {
Expand All @@ -47,14 +42,13 @@ public static String getLombokVersionCached(@NotNull Project project) {
throw e;
}
catch (Throwable e) {
LOG.error(e);
Logger.getInstance(LombokLibraryUtil.class).error(e);
}
return new CachedValueProvider.Result<>(StringUtil.notNullize(lombokVersion), ProjectRootManager.getInstance(project));
return new Result<>(StringUtil.notNullize(lombokVersion), ProjectRootManager.getInstance(project));
});
}

@Nullable
private static String getLombokVersionInternal(@NotNull Project project) {
private static @Nullable String getLombokVersionInternal(@NotNull Project project) {
PsiPackage aPackage = JavaPsiFacade.getInstance(project).findPackage(LOMBOK_PACKAGE);
if (aPackage != null) {
PsiDirectory[] directories = aPackage.getDirectories();
Expand Down

0 comments on commit dc4b99d

Please sign in to comment.