Skip to content

Commit

Permalink
Use compatible method to verify 'FileInEditorProcessor' availability
Browse files Browse the repository at this point in the history
  • Loading branch information
novotnyr committed Jan 9, 2024
1 parent 0d3f8db commit 9a569cd
Showing 1 changed file with 10 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,13 @@
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;

import static com.twelvemonkeys.lang.SystemUtil.isClassAvailable;

public class EditorReformatter {

public static final String FILE_IN_EDITOR_PROCESSOR_CLASS_NAME = "com.intellij.codeInsight.actions.FileInEditorProcessor";

@SuppressWarnings("MissingRecentApi")
public void reformatActiveEditor(Project project, VirtualFile virtualFile) {
if (!isClassAvailable(FILE_IN_EDITOR_PROCESSOR_CLASS_NAME)) {
if (!isFileInEditorProcessorAvailable()) {
return;
}
PsiFile psiFile = PsiManager.getInstance(project).findFile(virtualFile);
Expand All @@ -39,4 +37,13 @@ public void reformatActiveEditor(Project project, VirtualFile virtualFile) {
new FileInEditorProcessor(psiFile, selectedTextEditor, currentRunOptions).processCode();
}

private boolean isFileInEditorProcessorAvailable() {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
try {
Class.forName(FILE_IN_EDITOR_PROCESSOR_CLASS_NAME, false, classLoader);
return true;
} catch (Exception e) {
return false;
}
}
}

0 comments on commit 9a569cd

Please sign in to comment.