Skip to content

Commit

Permalink
Use the DumbAwareBGTAction interface to silence the update thread war…
Browse files Browse the repository at this point in the history
…ning. (#1332)

This should fix #1327.

## Test plan
I have clicked around a little bit in IntelliJ IDEA 2024.1.1 RC, and I
haven't seen any OLD_EDT warnings in the log.
  • Loading branch information
odisseus authored Apr 24, 2024
1 parent 6db70c3 commit 1b45779
Show file tree
Hide file tree
Showing 21 changed files with 80 additions and 106 deletions.
9 changes: 2 additions & 7 deletions src/main/java/com/sourcegraph/cody/PromptPanel.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package com.sourcegraph.cody

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CustomShortcutSet
import com.intellij.openapi.actionSystem.KeyboardShortcut
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.project.Project
import com.intellij.ui.components.JBList
import com.intellij.ui.components.JBScrollPane
Expand All @@ -20,6 +18,7 @@ import com.sourcegraph.cody.chat.ui.SendButton
import com.sourcegraph.cody.ui.AutoGrowingTextArea
import com.sourcegraph.cody.vscode.CancellationToken
import com.sourcegraph.common.CodyBundle
import com.sourcegraph.common.ui.SimpleDumbAwareBGTAction
import java.awt.Dimension
import java.awt.event.*
import javax.swing.DefaultListModel
Expand Down Expand Up @@ -115,11 +114,7 @@ class PromptPanel(project: Project, private val chatSession: ChatSession) : JLay
}
})
for (shortcut in listOf(ENTER, UP, DOWN, TAB)) { // key listeners
object : DumbAwareAction() {
override fun actionPerformed(e: AnActionEvent) {
didUseShortcut(shortcut)
}
}
SimpleDumbAwareBGTAction { didUseShortcut(shortcut) }
.registerCustomShortcutSet(shortcut, textArea)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowManager;
Expand All @@ -19,6 +18,7 @@
import com.sourcegraph.cody.initialization.Activity;
import com.sourcegraph.cody.statusbar.CodyManageAccountsAction;
import com.sourcegraph.common.NotificationGroups;
import com.sourcegraph.common.ui.DumbAwareBGTAction;
import org.jetbrains.annotations.NotNull;

public class CodyAuthNotificationActivity implements Activity {
Expand Down Expand Up @@ -52,7 +52,7 @@ private void showOpenCodySidebarNotification(@NotNull Project project) {
NotificationType.WARNING);

AnAction openCodySidebar =
new DumbAwareAction("Open Cody") {
new DumbAwareBGTAction("Open Cody") {
@Override
public void actionPerformed(@NotNull AnActionEvent anActionEvent) {
notification.expire();
Expand All @@ -67,7 +67,7 @@ public void actionPerformed(@NotNull AnActionEvent anActionEvent) {
};

AnAction neverShowAgainAction =
new DumbAwareAction("Never Show Again") {
new DumbAwareBGTAction("Never Show Again") {
@Override
public void actionPerformed(@NotNull AnActionEvent anActionEvent) {
notification.expire();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.util.NlsActions;
import com.sourcegraph.cody.config.ui.AccountConfigurable;
import com.sourcegraph.common.ui.DumbAwareBGTAction;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class OpenPluginSettingsAction extends DumbAwareAction {
public class OpenPluginSettingsAction extends DumbAwareBGTAction {
public OpenPluginSettingsAction() {
super();
}
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/sourcegraph/find/FindPopupPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.ide.CopyPasteManager;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Splitter;
import com.intellij.ui.OnePixelSplitter;
Expand All @@ -18,6 +17,7 @@
import com.intellij.util.ui.components.BorderLayoutPanel;
import com.sourcegraph.Icons;
import com.sourcegraph.common.NotificationGroups;
import com.sourcegraph.common.ui.DumbAwareBGTAction;
import com.sourcegraph.find.browser.BrowserAndLoadingPanel;
import com.sourcegraph.find.browser.JSToJavaBridgeRequestHandler;
import com.sourcegraph.find.browser.JavaToJSBridge;
Expand Down Expand Up @@ -111,7 +111,7 @@ private void showNoBrowserErrorNotification() {
"Your IDE doesn't support JCEF. You won't be able to use \"Find with Sourcegraph\". If you believe this is an error, please raise this at support@sourcegraph.com, specifying your OS and IDE version.",
NotificationType.ERROR);
AnAction copyEmailAddressAction =
new DumbAwareAction("Copy Support Email Address") {
new DumbAwareBGTAction("Copy Support Email Address") {
@Override
public void actionPerformed(@NotNull AnActionEvent anActionEvent) {
CopyPasteManager.getInstance()
Expand All @@ -120,7 +120,7 @@ public void actionPerformed(@NotNull AnActionEvent anActionEvent) {
}
};
AnAction dismissAction =
new DumbAwareAction("Dismiss") {
new DumbAwareBGTAction("Dismiss") {
@Override
public void actionPerformed(@NotNull AnActionEvent anActionEvent) {
notification.expire();
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/com/sourcegraph/find/PreviewPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
import com.intellij.openapi.editor.colors.EditorColors;
import com.intellij.openapi.editor.impl.ContextMenuPopupHandler;
import com.intellij.openapi.editor.impl.EditorImpl;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.ui.components.JBPanelWithEmptyText;
import com.sourcegraph.Icons;
import com.sourcegraph.common.ui.DumbAwareBGTAction;
import com.sourcegraph.website.CopyAction;
import com.sourcegraph.website.FileActionBase;
import com.sourcegraph.website.OpenFileAction;
Expand Down Expand Up @@ -135,7 +135,8 @@ public void dispose() {
private ActionGroup createActionGroup() {
DefaultActionGroup group = new DefaultActionGroup();
group.add(
new DumbAwareAction("Open File in Editor", "Open file in editor", Icons.SourcegraphLogo) {
new DumbAwareBGTAction(
"Open File in Editor", "Open file in editor", Icons.SourcegraphLogo) {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
try {
Expand All @@ -159,7 +160,7 @@ public enum State {
NO_PREVIEW_AVAILABLE,
}

class SimpleEditorFileAction extends DumbAwareAction {
class SimpleEditorFileAction extends DumbAwareBGTAction {
final FileActionBase action;
final Editor editor;

Expand Down
5 changes: 2 additions & 3 deletions src/main/java/com/sourcegraph/website/OpenRevisionAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import com.intellij.openapi.application.ApplicationInfo;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.VcsDataKeys;
import com.intellij.openapi.vcs.history.VcsFileRevision;
Expand All @@ -14,6 +13,7 @@
import com.intellij.vcsUtil.VcsUtil;
import com.sourcegraph.common.BrowserOpener;
import com.sourcegraph.common.ErrorNotification;
import com.sourcegraph.common.ui.DumbAwareBGTAction;
import com.sourcegraph.config.ConfigUtil;
import com.sourcegraph.vcs.RepoUtil;
import com.sourcegraph.vcs.RevisionContext;
Expand All @@ -22,8 +22,7 @@
import org.jetbrains.annotations.NotNull;

/** JetBrains IDE action to open a selected revision in Sourcegraph. */
@SuppressWarnings("MissingActionUpdateThread")
public class OpenRevisionAction extends DumbAwareAction {
public class OpenRevisionAction extends DumbAwareBGTAction {
private final Logger logger = Logger.getInstance(this.getClass());

@Override
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/sourcegraph/website/SearchActionBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
import com.intellij.openapi.editor.SelectionModel;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.vfs.VirtualFile;
import com.sourcegraph.common.BrowserOpener;
import com.sourcegraph.common.ui.DumbAwareBGTAction;
import com.sourcegraph.find.SourcegraphVirtualFile;
import com.sourcegraph.vcs.RepoInfo;
import com.sourcegraph.vcs.RepoUtil;
Expand All @@ -22,7 +22,7 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public abstract class SearchActionBase extends DumbAwareAction {
public abstract class SearchActionBase extends DumbAwareBGTAction {
public void actionPerformedMode(@NotNull AnActionEvent event, @NotNull Scope scope) {
final Project project = event.getProject();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.sourcegraph.cody.agent.action

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.project.DumbAwareAction
import com.sourcegraph.cody.agent.CodyAgentService
import com.sourcegraph.common.ui.DumbAwareBGTAction

class CodyAgentRestartAction : DumbAwareAction("Restart Cody Agent") {
class CodyAgentRestartAction : DumbAwareBGTAction("Restart Cody Agent") {
override fun actionPerformed(event: AnActionEvent) {
event.project?.let { CodyAgentService.getInstance(it).restartAgent(it) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@ package com.sourcegraph.cody.auth.ui

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.wm.ToolWindowManager
import com.sourcegraph.cody.CodyToolWindowFactory
import com.sourcegraph.cody.config.CodyPersistentAccountsHost
import com.sourcegraph.cody.config.signInWithSourcegrapDialog
import com.sourcegraph.common.ui.DumbAwareBGTAction
import com.sourcegraph.config.ConfigUtil

class SignInWithEnterpriseInstanceAction(
private val defaultServer: String = ConfigUtil.DOTCOM_URL
) : DumbAwareAction("Sign in with Sourcegraph") {
) : DumbAwareBGTAction("Sign in with Sourcegraph") {
override fun actionPerformed(e: AnActionEvent) {
val project = e.project ?: return
val accountsHost = CodyPersistentAccountsHost(project)
Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/com/sourcegraph/cody/chat/OpenChatAction.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.sourcegraph.cody.chat

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.wm.ToolWindowManager
import com.sourcegraph.cody.CodyToolWindowContent
import com.sourcegraph.cody.CodyToolWindowFactory
import com.sourcegraph.common.ui.DumbAwareBGTAction

class OpenChatAction : DumbAwareAction() {
class OpenChatAction : DumbAwareBGTAction() {

override fun actionPerformed(event: AnActionEvent) {
val project = event.project ?: return
Expand Down
20 changes: 8 additions & 12 deletions src/main/kotlin/com/sourcegraph/cody/chat/ui/ContextFilesPanel.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.sourcegraph.cody.chat.ui

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.fileEditor.OpenFileDescriptor
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.util.concurrency.annotations.RequiresEdt
Expand All @@ -17,6 +15,7 @@ import com.sourcegraph.cody.chat.ChatUIConstants.ASSISTANT_MESSAGE_GRADIENT_WIDT
import com.sourcegraph.cody.chat.ChatUIConstants.TEXT_MARGIN
import com.sourcegraph.cody.ui.AccordionSection
import com.sourcegraph.common.BrowserOpener.openInBrowser
import com.sourcegraph.common.ui.SimpleDumbAwareBGTAction
import java.awt.BorderLayout
import java.awt.Insets
import javax.swing.JPanel
Expand Down Expand Up @@ -74,16 +73,13 @@ class ContextFilesPanel(

@RequiresEdt
private fun createFileWithLinkPanel(contextItemFile: ContextItemFile): JPanel {
val anAction =
object : DumbAwareAction() {
override fun actionPerformed(anActionEvent: AnActionEvent) {
if (contextItemFile.isLocal()) {
openInEditor(contextItemFile)
} else {
openInBrowser(project, contextItemFile.uri)
}
}
}
val anAction = SimpleDumbAwareBGTAction {
if (contextItemFile.isLocal()) {
openInEditor(contextItemFile)
} else {
openInBrowser(project, contextItemFile.uri)
}
}

val goToFile = ContextFileActionLink(project, contextItemFile, anAction)
val panel = JPanel(BorderLayout())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import com.intellij.openapi.editor.ex.EditorEx
import com.intellij.openapi.editor.ex.FocusChangeListener
import com.intellij.openapi.editor.highlighter.EditorHighlighterFactory
import com.intellij.openapi.keymap.KeymapUtil
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.popup.JBPopup
import com.intellij.openapi.ui.popup.JBPopupFactory
Expand All @@ -28,6 +27,7 @@ import com.intellij.util.ui.JBUI
import com.sourcegraph.cody.context.RemoteRepoFileType
import com.sourcegraph.common.CodyBundle
import com.sourcegraph.common.CodyBundle.fmt
import com.sourcegraph.common.ui.DumbAwareBGTAction
import com.sourcegraph.utils.CodyEditorUtil
import java.awt.BorderLayout
import java.awt.Dimension
Expand Down Expand Up @@ -124,7 +124,7 @@ class RemoteRepoPopupController(val project: Project) {
.createPopup()

val okAction =
object : DumbAwareAction() {
object : DumbAwareBGTAction() {
override fun actionPerformed(event: AnActionEvent) {
unregisterCustomShortcutSet(popup.content)
popup.closeOk(event.inputEvent)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ package com.sourcegraph.cody.statusbar

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.options.ShowSettingsUtil
import com.intellij.openapi.project.DumbAwareAction
import com.sourcegraph.cody.config.ui.AccountConfigurable
import com.sourcegraph.common.ui.DumbAwareBGTAction

class CodyManageAccountsAction : DumbAwareAction("Manage Accounts") {
class CodyManageAccountsAction : DumbAwareBGTAction("Manage Accounts") {
override fun actionPerformed(e: AnActionEvent) {
ShowSettingsUtil.getInstance().showSettingsDialog(e.project, AccountConfigurable::class.java)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ package com.sourcegraph.cody.statusbar

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.options.ShowSettingsUtil
import com.intellij.openapi.project.DumbAwareAction
import com.sourcegraph.cody.config.ui.CodyConfigurable
import com.sourcegraph.common.ui.DumbAwareBGTAction

class CodyOpenSettingsAction : DumbAwareAction("Open Settings") {
class CodyOpenSettingsAction : DumbAwareBGTAction("Open Settings") {
override fun actionPerformed(e: AnActionEvent) {
ShowSettingsUtil.getInstance().showSettingsDialog(e.project, CodyConfigurable::class.java)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ import com.intellij.notification.NotificationType
import com.intellij.notification.Notifications.Bus
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.openapi.vfs.VfsUtil
import com.sourcegraph.common.ui.DumbAwareBGTAction

class OpenLogAction : DumbAwareAction("Open Log To Troubleshoot Issue") {
class OpenLogAction : DumbAwareBGTAction("Open Log To Troubleshoot Issue") {

override fun actionPerformed(e: AnActionEvent) {
val project = e.project
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package com.sourcegraph.cody.statusbar

import com.intellij.ide.BrowserUtil
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.project.DumbAwareAction
import com.sourcegraph.common.ui.DumbAwareBGTAction

class ReportCodyBugAction : DumbAwareAction("Open GitHub To Report Cody Issue") {
class ReportCodyBugAction : DumbAwareBGTAction("Open GitHub To Report Cody Issue") {
override fun actionPerformed(p0: AnActionEvent) {
BrowserUtil.open("https://github.com/sourcegraph/jetbrains/issues/new?template=bug_report.yml")
}
Expand Down
12 changes: 4 additions & 8 deletions src/main/kotlin/com/sourcegraph/cody/ui/AutoGrowingTextArea.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@ package com.sourcegraph.cody.ui

import com.intellij.ide.ui.laf.darcula.ui.DarculaTextAreaUI
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CustomShortcutSet
import com.intellij.openapi.actionSystem.KeyboardShortcut
import com.intellij.openapi.actionSystem.ShortcutSet
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.ui.components.JBScrollPane
import com.intellij.ui.components.JBTextArea
import com.intellij.util.ui.UIUtil
import com.sourcegraph.common.ui.SimpleDumbAwareBGTAction
import java.awt.Dimension
import java.awt.event.InputEvent
import java.awt.event.KeyEvent
Expand Down Expand Up @@ -86,12 +85,9 @@ class AutoGrowingTextArea(private val minRows: Int, maxRows: Int, outerPanel: JC
KeyboardShortcut(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.META_DOWN_MASK), null)
val insertEnterShortcut: ShortcutSet =
CustomShortcutSet(ctrlEnter, shiftEnter, metaEnter, altOrOptionEnter)
val insertEnterAction: AnAction =
object : DumbAwareAction() {
override fun actionPerformed(e: AnActionEvent) {
promptInput.insert("\n", promptInput.caretPosition)
}
}
val insertEnterAction: AnAction = SimpleDumbAwareBGTAction {
promptInput.insert("\n", promptInput.caretPosition)
}
insertEnterAction.registerCustomShortcutSet(insertEnterShortcut, promptInput)
return promptInput
}
Expand Down
Loading

0 comments on commit 1b45779

Please sign in to comment.