Skip to content

Commit 115a062

Browse files
authored
[CodeWhisperer] Don't show CodeWhisperer welcome page on every project loading (#3242)
Remove the postStartActivtiy since we don't need to load the welcome page on every project start, instead put it after user has entered the code and is verified successfully.
1 parent a5f89df commit 115a062

File tree

5 files changed

+27
-45
lines changed

5 files changed

+27
-45
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" : "Fix to stop showing CodeWhisperer's welcome page every time on project start"
4+
}

jetbrains-core/resources/META-INF/plugin.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ with what features/services are supported.
200200

201201
<postStartupActivity implementation="software.aws.toolkits.jetbrains.core.AwsTelemetryPrompter"/>
202202
<postStartupActivity implementation="software.aws.toolkits.jetbrains.core.executables.ExecutableLoader"/>
203-
<postStartupActivity implementation="software.aws.toolkits.jetbrains.services.codewhisperer.startup.CodeWhispererBetaLandingPage"/>
204203
<postStartupActivity implementation="software.aws.toolkits.jetbrains.services.codewhisperer.startup.CodeWhispererProjectStartupActivity"/>
205204

206205
<applicationService serviceInterface="software.aws.toolkits.core.clients.SdkClientProvider"

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/credentials/TokenDialog.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,32 @@ import com.intellij.openapi.actionSystem.AnAction
88
import com.intellij.openapi.actionSystem.AnActionEvent
99
import com.intellij.openapi.actionSystem.LangDataKeys
1010
import com.intellij.openapi.application.ApplicationManager
11+
import com.intellij.openapi.fileEditor.FileEditorManager
12+
import com.intellij.openapi.fileEditor.OpenFileDescriptor
13+
import com.intellij.openapi.fileEditor.TextEditorWithPreview
1114
import com.intellij.openapi.project.Project
1215
import com.intellij.openapi.ui.DialogPanel
1316
import com.intellij.openapi.ui.DialogWrapper
1417
import com.intellij.openapi.ui.ValidationInfo
18+
import com.intellij.openapi.vfs.VfsUtil
1519
import com.intellij.ui.components.JBLabel
1620
import com.intellij.ui.components.JBTextField
1721
import com.intellij.ui.layout.panel
22+
import com.intellij.util.ResourceUtil
1823
import kotlinx.coroutines.isActive
1924
import kotlinx.coroutines.launch
2025
import kotlinx.coroutines.withContext
2126
import software.amazon.awssdk.services.codewhisperer.model.CodeWhispererException
2227
import software.aws.toolkits.core.utils.debug
2328
import software.aws.toolkits.core.utils.getLogger
29+
import software.aws.toolkits.core.utils.warn
2430
import software.aws.toolkits.jetbrains.core.coroutines.disposableCoroutineScope
2531
import software.aws.toolkits.jetbrains.core.coroutines.getCoroutineUiContext
2632
import software.aws.toolkits.jetbrains.core.help.HelpIds
2733
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
2834
import software.aws.toolkits.jetbrains.utils.notifyInfo
2935
import software.aws.toolkits.resources.message
36+
import java.net.URL
3037
import javax.swing.event.DocumentEvent
3138
import javax.swing.event.DocumentListener
3239

@@ -100,6 +107,7 @@ class TokenDialog(private val project: Project) : DialogWrapper(project), Dispos
100107
ApplicationManager.getApplication().invokeLater {
101108
CodeWhispererExplorerActionManager.getInstance().enableCodeWhisperer(project)
102109
}
110+
showBetaLandingPage()
103111
}
104112
} catch (e: CodeWhispererException) {
105113
LOGGER.debug { e.message.toString() }
@@ -127,6 +135,21 @@ class TokenDialog(private val project: Project) : DialogWrapper(project), Dispos
127135
super.dispose()
128136
}
129137

138+
private fun showBetaLandingPage() {
139+
val url: URL = ResourceUtil.getResource(javaClass.classLoader, "codewhisperer", "WelcomeToCodeWhisperer.md")
140+
VfsUtil.findFileByURL(url)?.let { readme ->
141+
readme.putUserData(TextEditorWithPreview.DEFAULT_LAYOUT_FOR_FILE, TextEditorWithPreview.Layout.SHOW_PREVIEW)
142+
143+
val fileEditorManager = FileEditorManager.getInstance(project)
144+
ApplicationManager.getApplication().invokeLater {
145+
val editor = fileEditorManager.openTextEditor(OpenFileDescriptor(project, readme), true)
146+
if (editor == null) {
147+
LOGGER.warn { "Failed to open WelcomeToCodeWhisperer.md" }
148+
}
149+
}
150+
}
151+
}
152+
130153
companion object {
131154
private val LOGGER = getLogger<TokenDialog>()
132155
}

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/startup/CodeWhispererBetaLandingPage.kt

Lines changed: 0 additions & 43 deletions
This file was deleted.

jetbrains-core/src/software/aws/toolkits/jetbrains/services/codewhisperer/startup/CodeWhispererStartupSettingsListener.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ class CodeWhispererStartupSettingsListener(private val project: Project) :
2525
if (value) {
2626
CodeWhispererSettings.getInstance().toggleIncludeCodeWithReference(true)
2727
CodeWhispererCodeScanManager.getInstance(project).addCodeScanUI()
28-
CodeWhispererBetaLandingPage().runActivity(project)
2928
} else {
3029
CodeWhispererCodeScanManager.getInstance(project).removeCodeScanUI()
3130
}

0 commit comments

Comments
 (0)