Skip to content

Commit c715bdd

Browse files
committed
Patch CodeWhisperer preview actions
1 parent 6c92872 commit c715bdd

File tree

9 files changed

+38
-96
lines changed

9 files changed

+38
-96
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "bugfix",
3+
"description" : "Clarify next steps when attempting to use CodeWhisperer"
4+
}

buildSrc/src/main/kotlin/software/aws/toolkits/gradle/intellij/IdeVersions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ object IdeVersions {
4949
"rider-plugins-appender" // Workaround for https://youtrack.jetbrains.com/issue/IDEA-179607
5050
),
5151
netFrameworkTarget = "net472",
52-
rdGenVersion = "0.213.394",
52+
rdGenVersion = "2021.3.5",
5353
nugetVersion = "2021.3.0"
5454
)
5555
),

jetbrains-core/resources/telemetryOverride.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"types": [
3+
{
4+
"name": "elementId",
5+
"type": "string",
6+
"description": "An identifier associated with a UI element"
7+
}
38
],
49
"metrics": [
510
{
@@ -10,6 +15,11 @@
1015
"type": "result"
1116
}
1217
]
18+
},
19+
{
20+
"name": "ui_click",
21+
"description": "User clicked/activated a UI element. This does not necessarily have to be an explicit mouse click. Any user action that has the same behavior as a mouse click can use this event.",
22+
"metadata": [{ "type": "elementId" }]
1323
}
1424
]
1525
}

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/actions/CodeWhispererLearnMoreAction.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ class CodeWhispererLearnMoreAction :
1919
DumbAware {
2020

2121
override fun actionPerformed(e: AnActionEvent) {
22-
CodeWhispererExplorerActionManager.getInstance().showWhatIsCodeWhisperer()
22+
CodeWhispererExplorerActionManager.getInstance().showWhatIsCodeWhisperer(e.project)
2323
}
2424
}

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/actions/CodeWhispererWhatIsAction.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ class CodeWhispererWhatIsAction :
2222
}
2323

2424
override fun actionPerformed(e: AnActionEvent) {
25-
CodeWhispererExplorerActionManager.getInstance().showWhatIsCodeWhisperer()
25+
CodeWhispererExplorerActionManager.getInstance().showWhatIsCodeWhisperer(e.project)
2626
}
2727
}

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/explorer/CodeWhispererExplorerActionManager.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.TokenD
2323
import software.aws.toolkits.jetbrains.services.codewhisperer.toolwindow.CodeWhispererCodeReferenceManager
2424
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
2525
import software.aws.toolkits.telemetry.AwsTelemetry
26+
import software.aws.toolkits.telemetry.UiTelemetry
2627
import java.net.URI
2728

2829
@State(name = "codewhispererStates", storages = [Storage("aws.xml")])
@@ -32,7 +33,7 @@ internal class CodeWhispererExplorerActionManager : PersistentStateComponent<Cod
3233
fun performAction(project: Project, actionId: String) {
3334
when (actionId) {
3435
ACTION_WHAT_IS_CODEWHISPERER -> {
35-
showWhatIsCodeWhisperer()
36+
showWhatIsCodeWhisperer(project)
3637
}
3738
ACTION_ENABLE_CODEWHISPERER -> {
3839
enableCodeWhisperer(project)
@@ -91,9 +92,10 @@ internal class CodeWhispererExplorerActionManager : PersistentStateComponent<Cod
9192
actionState.token = token
9293
}
9394

94-
fun showWhatIsCodeWhisperer() {
95+
fun showWhatIsCodeWhisperer(project: Project?) {
9596
val uri = URI(CodeWhispererConstants.CODEWHISPERER_LEARN_MORE_URI)
9697
BrowserUtil.browse(uri)
98+
UiTelemetry.click(project, "cw_learnMore_Cta")
9799
}
98100

99101
fun showTokenRegistrationPage() {

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/explorer/CodeWhispererServiceNode.kt

Lines changed: 16 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,16 @@
44
package software.aws.toolkits.jetbrains.services.codewhisperer.explorer
55

66
import com.intellij.icons.AllIcons
7+
import com.intellij.ide.BrowserUtil
78
import com.intellij.ide.util.treeView.AbstractTreeNode
89
import com.intellij.openapi.project.Project
910
import software.aws.toolkits.jetbrains.core.explorer.devToolsTab.nodes.AbstractActionTreeNode
1011
import software.aws.toolkits.jetbrains.core.explorer.devToolsTab.nodes.ActionGroupOnRightClick
1112
import software.aws.toolkits.jetbrains.core.explorer.nodes.AwsExplorerNode
12-
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.CodeWhispererCodeScanManager
13-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager.Companion.ACTION_ENABLE_CODEWHISPERER
14-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager.Companion.ACTION_ENTER_ACCESSTOKEN
15-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager.Companion.ACTION_OPEN_CODE_REFERENCE_PANEL
16-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager.Companion.ACTION_PAUSE_CODEWHISPERER
17-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager.Companion.ACTION_REQUEST_ACCESSTOKEN
18-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager.Companion.ACTION_RESUME_CODEWHISPERER
19-
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager.Companion.ACTION_RUN_SECURITY_SCAN
13+
import software.aws.toolkits.jetbrains.core.utils.buildList
2014
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager.Companion.ACTION_WHAT_IS_CODEWHISPERER
2115
import software.aws.toolkits.resources.message
16+
import software.aws.toolkits.telemetry.UiTelemetry
2217
import javax.swing.Icon
2318

2419
class CodeWhispererServiceNode(
@@ -27,24 +22,7 @@ class CodeWhispererServiceNode(
2722
) : AbstractActionTreeNode(project, value, null), ActionGroupOnRightClick {
2823
private val nodeProject
2924
get() = myProject
30-
private val pauseCodeWhispererNode by lazy {
31-
CodeWhispererActionNode(
32-
nodeProject,
33-
message("codewhisperer.explorer.pause_auto"),
34-
ACTION_PAUSE_CODEWHISPERER,
35-
1,
36-
AllIcons.Actions.Pause
37-
)
38-
}
39-
private val resumeCodeWhispererNode by lazy {
40-
CodeWhispererActionNode(
41-
nodeProject,
42-
message("codewhisperer.explorer.resume_auto"),
43-
ACTION_RESUME_CODEWHISPERER,
44-
1,
45-
AllIcons.Actions.Resume
46-
)
47-
}
25+
4826
private val whatIsCodeWhispererNode by lazy {
4927
CodeWhispererActionNode(
5028
nodeProject,
@@ -54,75 +32,23 @@ class CodeWhispererServiceNode(
5432
AllIcons.Actions.Help
5533
)
5634
}
57-
private val enableCodeWhispererNode by lazy {
58-
CodeWhispererActionNode(
59-
nodeProject,
60-
message("codewhisperer.explorer.enable"),
61-
ACTION_ENABLE_CODEWHISPERER,
62-
1,
63-
AllIcons.Actions.Execute
64-
)
65-
}
66-
private val openCodeReferenceNode by lazy {
67-
CodeWhispererActionNode(
68-
nodeProject,
69-
message("codewhisperer.explorer.code_reference.open"),
70-
ACTION_OPEN_CODE_REFERENCE_PANEL,
71-
3,
72-
AllIcons.Actions.Preview
73-
)
74-
}
75-
private val runCodeScanNode by lazy {
76-
CodeWhispererActionNode(
77-
nodeProject, message("codewhisperer.codescan.run_scan"),
78-
ACTION_RUN_SECURITY_SCAN,
79-
2,
80-
CodeWhispererCodeScanManager.getInstance(nodeProject).getActionButtonIcon()
81-
)
82-
}
83-
private val requestAccessTokenNode by lazy {
84-
CodeWhispererActionNode(
85-
nodeProject,
86-
message("codewhisperer.explorer.token.request"),
87-
ACTION_REQUEST_ACCESSTOKEN,
88-
4,
89-
AllIcons.General.User
90-
)
91-
}
92-
private val enterAccessTokenNode by lazy {
93-
CodeWhispererActionNode(
94-
nodeProject,
95-
message("codewhisperer.explorer.token.dialog_title"),
96-
ACTION_ENTER_ACCESSTOKEN,
97-
5,
98-
AllIcons.Actions.Edit
99-
)
100-
}
10135

10236
override fun onDoubleClick() {}
10337

104-
override fun getChildren(): Collection<AbstractTreeNode<*>> {
105-
val codewhispererActions = mutableListOf<CodeWhispererActionNode>()
106-
val manager = CodeWhispererExplorerActionManager.getInstance()
107-
if (!manager.isAuthorized()) {
108-
codewhispererActions.add(whatIsCodeWhispererNode)
109-
codewhispererActions.add(requestAccessTokenNode)
110-
codewhispererActions.add(enterAccessTokenNode)
111-
} else {
112-
if (!manager.hasAcceptedTermsOfService()) {
113-
codewhispererActions.add(whatIsCodeWhispererNode)
114-
codewhispererActions.add(enableCodeWhispererNode)
115-
} else {
116-
if (manager.isAutoEnabled()) {
117-
codewhispererActions.add(pauseCodeWhispererNode)
118-
} else {
119-
codewhispererActions.add(resumeCodeWhispererNode)
38+
override fun getChildren(): Collection<AbstractTreeNode<*>> = buildList {
39+
add(whatIsCodeWhispererNode)
40+
add(
41+
object : AbstractActionTreeNode(
42+
nodeProject,
43+
message("codewhisperer.upgrade_ide"),
44+
AllIcons.General.User
45+
) {
46+
override fun onDoubleClick() {
47+
BrowserUtil.browse("https://github.com/aws/aws-toolkit-jetbrains/issues/3684")
48+
UiTelemetry.click(project, "cw_upgradeIde_Cta")
12049
}
121-
codewhispererActions.add(runCodeScanNode)
122-
codewhispererActions.add(openCodeReferenceNode)
12350
}
124-
}
125-
return codewhispererActions
51+
)
12652
}
12753

12854
override fun actionGroupName(): String = "aws.toolkit.explorer.codewhisperer"

jetbrains-rider/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ buildscript {
1616
println("Using rd-gen: $rdversion")
1717

1818
repositories {
19-
maven("https://www.myget.org/F/rd-snapshots/maven/")
2019
mavenCentral()
2120
}
2221

resources/resources/software/aws/toolkits/resources/MessagesBundle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ codewhisperer.trigger.document.unsupported=CodeWhisperer is not supported for th
319319
codewhisperer.trigger.error.client_side=Unable to show recommendations, please try again later
320320
codewhisperer.trigger.error.server_side=Unable to get recommendations, please try again later
321321
codewhisperer.trigger.service=Invoke CodeWhisperer
322+
codewhisperer.upgrade_ide=To use CodeWhisperer, update your JetBrains IDE to version 2023.1 or later.
322323
common.none=None
323324
configure.toolkit=Configure AWS Connection
324325
configure.toolkit.upsert_credentials.action=Edit AWS Credential file(s)

0 commit comments

Comments
 (0)