Skip to content
This repository was archived by the owner on Aug 1, 2025. It is now read-only.

Commit 8d59866

Browse files
authored
Cleanup JetBrains command calling to be consistent with VSC (#8218)
Fixes https://linear.app/sourcegraph/issue/QA-706/jbmac-specific-unable-to-generate-unit-tests-in-new-files-created ## Cleanup JetBrains command calling to be consistent with VSCode This commit standardizes the command calling architecture in the JetBrains plugin to match VSCode's implementation pattern. Key changes include: - **Consolidated command actions**: Removed duplicate action classes and merged functionality into unified command actions - **Simplified architecture**: Eliminated redundant base classes and handlers, reducing code complexity - **Consistent naming**: Updated command identifiers and action names to align with VSCode conventions - **Reduced bundle overhead**: Cleaned up resource files and plugin configuration Notable change is that after this unification `Generate Unit Test` changed from being edit command to chat command. **Impact**: 200 lines removed, improved maintainability, and better cross-platform consistency between JetBrains and VSCode extensions. ## Test plan Ideally requires full QA as it potentially impacts all JetBrains commands. <!-- Required. See https://docs-legacy.sourcegraph.com/dev/background-information/testing_principles. -->
1 parent 05050c7 commit 8d59866

21 files changed

Lines changed: 75 additions & 275 deletions

File tree

jetbrains/src/integrationTest/kotlin/com/sourcegraph/cody/edit/DocumentCodeTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.sourcegraph.cody.edit
22

33
import com.intellij.openapi.command.WriteCommandAction
4-
import com.sourcegraph.cody.edit.actions.DocumentCodeAction
4+
import com.sourcegraph.cody.chat.actions.DocumentCodeAction
55
import com.sourcegraph.cody.edit.lenses.LensesService
66
import com.sourcegraph.cody.edit.lenses.actions.EditAcceptAction
77
import com.sourcegraph.cody.edit.lenses.actions.EditCancelAction

jetbrains/src/integrationTest/kotlin/com/sourcegraph/cody/util/EditCodeFixture.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.intellij.openapi.vfs.VirtualFile
99
import com.sourcegraph.cody.agent.CodyAgentService
1010
import com.sourcegraph.cody.agent.protocol_generated.ClientCapabilities
1111
import com.sourcegraph.cody.agent.protocol_generated.ProtocolCodeLens
12+
import com.sourcegraph.cody.chat.actions.DocumentCodeAction
1213
import com.sourcegraph.cody.edit.lenses.LensListener
1314
import com.sourcegraph.cody.edit.lenses.LensesService
1415
import com.sourcegraph.cody.edit.lenses.providers.EditAcceptCodeVisionProvider
@@ -30,11 +31,14 @@ class EditCodeFixture(recordingName: String) :
3031
override fun checkInitialConditionsForOpenFile() {
3132

3233
// Check the initial state of the action's presentation
33-
val action = ActionManager.getInstance().getAction("cody.documentCodeAction")
34+
val action = ActionManager.getInstance().getAction(DocumentCodeAction.ID)
3435
val event = AnActionEvent.createFromAnAction(action, null, "", createEditorContext(editor))
3536
action.update(event)
3637
val presentation = event.presentation
37-
assertEquals("Action description should be empty", "", presentation.description)
38+
assertEquals(
39+
"Action description should be present",
40+
"Documents the selected code",
41+
presentation.description)
3842
assertTrue("Action should be enabled", presentation.isEnabled)
3943
assertTrue("Action should be visible", presentation.isVisible)
4044
}

jetbrains/src/main/kotlin/com/sourcegraph/cody/chat/actions/BaseCommandAction.kt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,14 @@ import com.sourcegraph.cody.agent.protocol_extensions.ProtocolTextDocumentExt
1111
import com.sourcegraph.cody.agent.protocol_generated.ExecuteCommandParams
1212
import com.sourcegraph.cody.agent.protocol_generated.Ignore_TestResult
1313
import com.sourcegraph.cody.auth.CodyAuthService
14-
import com.sourcegraph.cody.commands.CommandId
1514
import com.sourcegraph.cody.ignore.ActionInIgnoredFileNotification
1615
import com.sourcegraph.cody.ignore.IgnoreOracle
1716
import com.sourcegraph.common.ui.DumbAwareEDTAction
1817
import com.sourcegraph.config.ConfigUtil.isCodyEnabled
1918
import com.sourcegraph.utils.CodyEditorUtil
2019
import java.util.concurrent.Callable
2120

22-
abstract class BaseCommandAction : DumbAwareEDTAction() {
23-
24-
abstract val myCommandId: CommandId
21+
abstract class BaseCommandAction(val id: String) : DumbAwareEDTAction() {
2522

2623
override fun actionPerformed(event: AnActionEvent) {
2724
doAction(event.project ?: return)
@@ -48,11 +45,7 @@ abstract class BaseCommandAction : DumbAwareEDTAction() {
4845
CodyAgentService.withAgent(project) { agent ->
4946
agent.server.command_execute(
5047
ExecuteCommandParams(
51-
command =
52-
when (myCommandId) {
53-
CommandId.Explain -> "cody.command.explain-code"
54-
CommandId.Smell -> "cody.command.smell-code"
55-
},
48+
command = id,
5649
arguments = emptyList(),
5750
))
5851
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.sourcegraph.cody.chat.actions
2+
3+
class DocumentCodeAction : BaseCommandAction(ID) {
4+
companion object {
5+
const val ID = "cody.command.document-code"
6+
}
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.sourcegraph.cody.chat.actions
2+
3+
class EditCodeAction : BaseCommandAction(ID) {
4+
companion object {
5+
const val ID = "cody.command.edit-code"
6+
}
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.sourcegraph.cody.chat.actions
2+
3+
class ExplainCodeAction : BaseCommandAction(ID) {
4+
companion object {
5+
const val ID = "cody.command.explain-code"
6+
}
7+
}

jetbrains/src/main/kotlin/com/sourcegraph/cody/chat/actions/ExplainCommand.kt

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.sourcegraph.cody.chat.actions
2+
3+
class SmellCodeAction : BaseCommandAction(ID) {
4+
companion object {
5+
const val ID = "cody.command.smell-code"
6+
}
7+
}

jetbrains/src/main/kotlin/com/sourcegraph/cody/chat/actions/SmellCommand.kt

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.sourcegraph.cody.chat.actions
2+
3+
class UnitTestAction : BaseCommandAction(ID) {
4+
companion object {
5+
const val ID = "cody.command.unit-test"
6+
}
7+
}

0 commit comments

Comments
 (0)