chore: Move ApplicationUtil to common

This commit is contained in:
FalsePattern 2024-03-08 17:14:05 +01:00
parent 66aef224b2
commit 845af09e29
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
16 changed files with 43 additions and 51 deletions

View file

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.falsepattern.zigbrains.lsp.utils;
package com.falsepattern.zigbrains.common.util;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ex.ApplicationManagerEx;
@ -24,7 +24,7 @@ import com.intellij.openapi.util.Condition;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ApplicationUtils {
public class ApplicationUtil {
private final static ExecutorService EXECUTOR_SERVICE;

View file

@ -44,7 +44,7 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Predicate;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.pool;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.pool;
public class IntellijLanguageClient {

View file

@ -19,13 +19,10 @@ package com.falsepattern.zigbrains.lsp.actions;
import com.falsepattern.zigbrains.lsp.IntellijLanguageClient;
import com.falsepattern.zigbrains.lsp.editor.EditorEventManager;
import com.falsepattern.zigbrains.lsp.editor.EditorEventManagerBase;
import com.falsepattern.zigbrains.lsp.requests.ReformatHandler;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;

View file

@ -17,12 +17,10 @@ package com.falsepattern.zigbrains.lsp.actions;
import com.falsepattern.zigbrains.lsp.IntellijLanguageClient;
import com.falsepattern.zigbrains.lsp.requests.ReformatHandler;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.intellij.codeInsight.actions.ReformatCodeAction;
import com.intellij.lang.LanguageFormatting;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileEditor.FileDocumentManager;
@ -51,7 +49,7 @@ public class LSPReformatAction extends ReformatCodeAction implements DumbAware {
super.actionPerformed(e);
return;
}
ApplicationUtils.writeAction(() -> FileDocumentManager.getInstance().saveDocument(editor.getDocument()));
ApplicationUtil.writeAction(() -> FileDocumentManager.getInstance().saveDocument(editor.getDocument()));
// if editor hasSelection, only reformat selection, not reformat the whole file
if (editor.getSelectionModel().hasSelection()) {
ReformatHandler.reformatSelection(editor);

View file

@ -18,7 +18,7 @@ package com.falsepattern.zigbrains.lsp.client;
import com.falsepattern.zigbrains.common.util.FileUtil;
import com.falsepattern.zigbrains.lsp.editor.EditorEventManagerBase;
import com.falsepattern.zigbrains.lsp.requests.WorkspaceEditHandler;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationAction;
import com.intellij.notification.NotificationGroup;
@ -134,7 +134,7 @@ public class DefaultLanguageClient implements LanguageClient {
String message = messageParams.getMessage();
if (isModal) {
ApplicationUtils.invokeLater(() -> {
ApplicationUtil.invokeLater(() -> {
MessageType msgType = messageParams.getType();
switch (msgType) {
case Error:

View file

@ -33,7 +33,7 @@ import com.falsepattern.zigbrains.lsp.requests.Timeout;
import com.falsepattern.zigbrains.lsp.requests.Timeouts;
import com.falsepattern.zigbrains.lsp.statusbar.LSPServerStatusWidget;
import com.falsepattern.zigbrains.lsp.statusbar.LSPServerStatusWidgetFactory;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.falsepattern.zigbrains.lsp.utils.FileUtils;
import com.falsepattern.zigbrains.lsp.utils.LSPException;
import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
@ -237,7 +237,7 @@ public class LanguageServerWrapper {
String msg = String.format("%s \n is not initialized after %d seconds",
serverDefinition.toString(), Timeout.getTimeout(Timeouts.INIT) / 1000);
LOG.warn(msg, e);
ApplicationUtils.invokeLater(() -> {
ApplicationUtil.invokeLater(() -> {
if (!alreadyShownTimeout) {
notifier.showMessage(msg, MessageType.WARNING);
alreadyShownTimeout = true;
@ -396,7 +396,7 @@ public class LanguageServerWrapper {
}
// Triggers annotators since this is the first editor which starts the LS
// and annotators are executed before LS is bootstrap to provide diagnostics.
ApplicationUtils.computableReadAction(() -> {
ApplicationUtil.computableReadAction(() -> {
PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument());
if (psiFile != null) {
DaemonCodeAnalyzer.getInstance(project).restart(psiFile);
@ -540,7 +540,7 @@ public class LanguageServerWrapper {
});
} catch (LSPException | IOException | URISyntaxException e) {
LOG.warn(e);
ApplicationUtils.invokeLater(() ->
ApplicationUtil.invokeLater(() ->
notifier.showMessage(String.format("Can't start server due to %s", e.getMessage()),
MessageType.WARNING));
removeServerWrapper();
@ -639,7 +639,7 @@ public class LanguageServerWrapper {
if (crashCount <= 3) {
reconnect();
} else {
ApplicationUtils.invokeLater(() -> {
ApplicationUtil.invokeLater(() -> {
if (alreadyShownCrash) {
reconnect();
} else {
@ -787,7 +787,7 @@ public class LanguageServerWrapper {
* Reset language server wrapper state so it can be started again if it was failed earlier.
*/
public void restart() {
ApplicationUtils.pool(() -> {
ApplicationUtil.pool(() -> {
if (isRestartable()) {
alreadyShownCrash = false;
alreadyShownTimeout = false;

View file

@ -20,7 +20,7 @@ import com.falsepattern.zigbrains.lsp.editor.EditorEventManagerBase;
import com.falsepattern.zigbrains.lsp.requests.HoverHandler;
import com.falsepattern.zigbrains.lsp.requests.Timeout;
import com.falsepattern.zigbrains.lsp.requests.Timeouts;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.falsepattern.zigbrains.lsp.utils.DocumentUtils;
import com.falsepattern.zigbrains.lsp.utils.FileUtils;
import com.intellij.model.Pointer;
@ -86,7 +86,7 @@ public class LSPDocumentationTargetProvider implements DocumentationTargetProvid
return null;
}
var caretPos = editor.offsetToLogicalPosition(offset);
var serverPos = ApplicationUtils.computableReadAction(() -> DocumentUtils.logicalToLSPPos(caretPos, editor));
var serverPos = ApplicationUtil.computableReadAction(() -> DocumentUtils.logicalToLSPPos(caretPos, editor));
return DocumentationResult.asyncDocumentation(() -> {
var identifier = manager.getIdentifier();
var request = wrapper.getRequestManager().hover(new HoverParams(identifier, serverPos));

View file

@ -15,7 +15,7 @@
*/
package com.falsepattern.zigbrains.lsp.contributors.psi;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.falsepattern.zigbrains.lsp.utils.FileUtils;
import com.intellij.lang.ASTNode;
import com.intellij.lang.Language;
@ -700,7 +700,7 @@ public class LSPPsiElement extends PsiElementBase implements PsiNameIdentifierOw
if (editor == null) {
OpenFileDescriptor descriptor = new OpenFileDescriptor(getProject(), getContainingFile().getVirtualFile(),
getTextOffset());
ApplicationUtils.invokeLater(() -> ApplicationUtils
ApplicationUtil.invokeLater(() -> ApplicationUtil
.writeAction(() -> FileEditorManager.getInstance(getProject()).openTextEditor(descriptor, false)));
}
}

View file

@ -16,7 +16,7 @@
package com.falsepattern.zigbrains.lsp.editor;
import com.falsepattern.zigbrains.lsp.client.languageserver.wrapper.LanguageServerWrapper;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.falsepattern.zigbrains.lsp.utils.DocumentUtils;
import com.falsepattern.zigbrains.lsp.utils.FileUtils;
import com.intellij.openapi.diagnostic.Logger;
@ -120,7 +120,7 @@ public class DocumentEventManager {
} else if (syncKind == TextDocumentSyncKind.Full) {
changesParams.getContentChanges().get(0).setText(document.getText());
}
ApplicationUtils.pool(() -> wrapper.getRequestManager().didChange(changesParams));
ApplicationUtil.pool(() -> wrapper.getRequestManager().didChange(changesParams));
}
public void documentOpened() {

View file

@ -29,7 +29,7 @@ import com.falsepattern.zigbrains.lsp.listeners.LSPCaretListenerImpl;
import com.falsepattern.zigbrains.lsp.requests.Timeout;
import com.falsepattern.zigbrains.lsp.requests.Timeouts;
import com.falsepattern.zigbrains.lsp.requests.WorkspaceEditHandler;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.falsepattern.zigbrains.lsp.utils.DocumentUtils;
import com.falsepattern.zigbrains.lsp.utils.FileUtils;
import com.falsepattern.zigbrains.lsp.utils.GUIUtils;
@ -138,11 +138,11 @@ import java.util.function.BiFunction;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.computableReadAction;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.computableWriteAction;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.invokeLater;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.pool;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.writeAction;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.computableReadAction;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.computableWriteAction;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.invokeLater;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.pool;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.writeAction;
import static com.falsepattern.zigbrains.lsp.utils.DocumentUtils.toEither;
import static com.falsepattern.zigbrains.lsp.utils.GUIUtils.createAndShowEditorHint;
@ -1218,7 +1218,7 @@ public class EditorEventManager {
}
public List<InlayHint> inlayHint() {
var range = ApplicationUtils.computableReadAction(() -> {
var range = ApplicationUtil.computableReadAction(() -> {
var start = DocumentUtils.offsetToLSPPos(editor, 0);
var end = DocumentUtils.offsetToLSPPos(editor, editor.getDocument().getTextLength());
return new Range(start, end);

View file

@ -15,15 +15,12 @@
*/
package com.falsepattern.zigbrains.lsp.editor;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.falsepattern.zigbrains.lsp.utils.FileUtils;
import com.falsepattern.zigbrains.lsp.utils.OSUtils;
import com.intellij.openapi.editor.Editor;
import lombok.val;
import org.eclipse.lsp4j.Diagnostic;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@ -86,7 +83,7 @@ public class EditorEventManagerBase {
if (runOnRegistry.containsKey(manager.editor)) {
var tasks = runOnRegistry.remove(manager.editor);
for (var task: tasks) {
ApplicationUtils.invokeLater(task);
ApplicationUtil.invokeLater(task);
}
}
}
@ -97,7 +94,7 @@ public class EditorEventManagerBase {
var manager = forEditor(editor);
if (manager != null) {
for (var task: runnables) {
ApplicationUtils.invokeLater(task);
ApplicationUtil.invokeLater(task);
}
} else {
runOnRegistry.computeIfAbsent(editor, (ignored) -> new ArrayList<>()).addAll(List.of(runnables));

View file

@ -20,7 +20,7 @@ import com.falsepattern.zigbrains.lsp.IntellijLanguageClient;
import com.falsepattern.zigbrains.lsp.client.languageserver.ServerStatus;
import com.falsepattern.zigbrains.lsp.client.languageserver.wrapper.LanguageServerWrapper;
import com.falsepattern.zigbrains.lsp.editor.EditorEventManagerBase;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.falsepattern.zigbrains.lsp.utils.FileUtils;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
@ -78,7 +78,7 @@ class LSPFileEventManager {
return;
}
ApplicationUtils.invokeAfterPsiEvents(() -> {
ApplicationUtil.invokeAfterPsiEvents(() -> {
EditorEventManagerBase.documentSaved(uri);
FileUtils.findProjectsFor(file).forEach(p -> changedConfiguration(uri,
FileUtils.projectToUri(p), FileChangeType.Changed));
@ -122,7 +122,7 @@ class LSPFileEventManager {
if (uri == null) {
return;
}
ApplicationUtils.invokeAfterPsiEvents(() -> {
ApplicationUtil.invokeAfterPsiEvents(() -> {
FileUtils.findProjectsFor(file).forEach(p -> changedConfiguration(uri,
FileUtils.projectToUri(p), FileChangeType.Deleted));
});
@ -135,7 +135,7 @@ class LSPFileEventManager {
* @param newFileName the new file name
*/
static void fileRenamed(String oldFileName, String newFileName) {
ApplicationUtils.invokeAfterPsiEvents(() -> {
ApplicationUtil.invokeAfterPsiEvents(() -> {
try {
// Getting the right file is not trivial here since we only have the file name. Since we have to iterate over
// all opened projects and filter based on the file name.
@ -173,7 +173,7 @@ class LSPFileEventManager {
if (!newFileUri.equals(oldFileUri)) {
// Re-open file to so that the new editor will be connected to the language server.
FileEditorManager fileEditorManager = FileEditorManager.getInstance(p);
ApplicationUtils.invokeLater(() -> {
ApplicationUtil.invokeLater(() -> {
fileEditorManager.closeFile(file);
fileEditorManager.openFile(file, true);
});
@ -192,7 +192,7 @@ class LSPFileEventManager {
}
String uri = FileUtil.URIFromVirtualFile(file);
if (uri != null) {
ApplicationUtils.invokeAfterPsiEvents(() -> {
ApplicationUtil.invokeAfterPsiEvents(() -> {
FileUtils.findProjectsFor(file).forEach(p -> changedConfiguration(uri,
FileUtils.projectToUri(p), FileChangeType.Created));
});
@ -200,7 +200,7 @@ class LSPFileEventManager {
}
private static void changedConfiguration(String uri, String projectUri, FileChangeType typ) {
ApplicationUtils.pool(() -> {
ApplicationUtil.pool(() -> {
DidChangeWatchedFilesParams params = getDidChangeWatchedFilesParams(uri, typ);
Set<LanguageServerWrapper> wrappers = IntellijLanguageClient.getAllServerWrappersFor(projectUri);
if (wrappers == null) {

View file

@ -19,7 +19,7 @@ import com.falsepattern.zigbrains.common.util.FileUtil;
import com.falsepattern.zigbrains.lsp.contributors.psi.LSPPsiElement;
import com.falsepattern.zigbrains.lsp.editor.EditorEventManager;
import com.falsepattern.zigbrains.lsp.editor.EditorEventManagerBase;
import com.falsepattern.zigbrains.lsp.utils.ApplicationUtils;
import com.falsepattern.zigbrains.common.util.ApplicationUtil;
import com.falsepattern.zigbrains.lsp.utils.DocumentUtils;
import com.falsepattern.zigbrains.lsp.utils.FileUtils;
import com.intellij.openapi.command.CommandProcessor;
@ -58,8 +58,8 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.invokeLater;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.writeAction;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.invokeLater;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.writeAction;
import static com.falsepattern.zigbrains.lsp.utils.DocumentUtils.toEither;
/**
@ -210,7 +210,7 @@ public class WorkspaceEditHandler {
}
FileEditorManager fileEditorManager = FileEditorManager.getInstance(project);
OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file);
Editor editor = ApplicationUtils
Editor editor = ApplicationUtil
.computableWriteAction(() -> fileEditorManager.openTextEditor(descriptor, false));
openedEditors.add(file);
curProject[0] = editor.getProject();

View file

@ -31,7 +31,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.stream.Collectors;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.computableReadAction;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.computableReadAction;
import static java.lang.Math.max;
import static java.lang.Math.min;

View file

@ -48,7 +48,7 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.computableReadAction;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.computableReadAction;
/**
* Various file / uri related methods

View file

@ -46,7 +46,7 @@ import java.net.URISyntaxException;
import java.util.Objects;
import java.util.Optional;
import static com.falsepattern.zigbrains.lsp.utils.ApplicationUtils.writeAction;
import static com.falsepattern.zigbrains.common.util.ApplicationUtil.writeAction;
public final class GUIUtils {
private static final LSPDefaultIconProvider DEFAULT_ICON_PROVIDER = new LSPDefaultIconProvider();