Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(inline): remove isCodewhispererConnected() #5303

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.project.DumbAware
import software.aws.toolkits.jetbrains.services.amazonq.QConstants
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.utils.isQConnected
import software.aws.toolkits.resources.message
import java.net.URI

Expand All @@ -25,7 +25,7 @@ class CodeWhispererWhatIsAction :

override fun update(e: AnActionEvent) {
e.project?.let {
e.presentation.isEnabledAndVisible = isCodeWhispererEnabled(it)
e.presentation.isEnabledAndVisible = isQConnected(it)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.impl.SimpleDataContext
import com.intellij.openapi.project.DumbAwareAction
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.CodeWhispererCodeScanManager
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererColorUtil.INACTIVE_TEXT_COLOR
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.runScanKey
import software.aws.toolkits.jetbrains.utils.isQConnected
import software.aws.toolkits.resources.message

class CodeWhispererCodeScanRunAction : DumbAwareAction(
Expand All @@ -24,7 +24,7 @@ class CodeWhispererCodeScanRunAction : DumbAwareAction(

override fun update(event: AnActionEvent) {
val project = event.project ?: return
event.presentation.isEnabledAndVisible = isCodeWhispererEnabled(project)
event.presentation.isEnabledAndVisible = isQConnected(project)
val scanManager = CodeWhispererCodeScanManager.getInstance(project)
event.presentation.icon = scanManager.getRunActionButtonIcon()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import com.intellij.openapi.editor.event.EditorFactoryListener
import com.intellij.openapi.editor.impl.EditorImpl
import com.intellij.openapi.fileEditor.FileDocumentManager
import software.aws.toolkits.jetbrains.services.amazonq.CodeWhispererFeatureConfigService
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.services.codewhisperer.language.programmingLanguage
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererInvocationStatus
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererInvocationStatusNew
import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.CodeWhispererCodeCoverageTracker
import software.aws.toolkits.jetbrains.services.codewhisperer.telemetry.UserWrittenCodeTracker
import software.aws.toolkits.jetbrains.utils.isQConnected

class CodeWhispererEditorListener : EditorFactoryListener {
override fun editorCreated(event: EditorFactoryEvent) {
Expand All @@ -31,7 +31,7 @@ class CodeWhispererEditorListener : EditorFactoryListener {
// TODO: Track only deletion changes within the current 5-min interval which will give
// the most accurate code percentage data.
override fun documentChanged(event: DocumentEvent) {
if (!isCodeWhispererEnabled(project)) return
if (!isQConnected(project)) return
if (CodeWhispererFeatureConfigService.getInstance().getNewAutoTriggerUX()) {
CodeWhispererInvocationStatusNew.getInstance().documentChanged()
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,6 @@ interface CodeWhispererActivationChangedListener {
fun activationChanged(value: Boolean) {}
}

@Deprecated("remove it, use isQConnected")
fun isCodeWhispererEnabled(project: Project) = with(CodeWhispererExplorerActionManager.getInstance()) {
checkActiveCodeWhispererConnectionType(project) != CodeWhispererLoginType.Logout
}

fun isUserBuilderId(project: Project) = with(CodeWhispererExplorerActionManager.getInstance()) {
checkActiveCodeWhispererConnectionType(project) == CodeWhispererLoginType.Sono
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhisper
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorUtil.getCaretPosition
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorUtil.isSupportedJsonFormat
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererJson
import software.aws.toolkits.jetbrains.services.codewhisperer.model.CaretPosition
import software.aws.toolkits.jetbrains.services.codewhisperer.model.DetailContext
Expand All @@ -86,6 +85,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhisperer
import software.aws.toolkits.jetbrains.services.codewhisperer.util.FileContextProvider
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
import software.aws.toolkits.jetbrains.utils.isInjectedText
import software.aws.toolkits.jetbrains.utils.isQConnected
import software.aws.toolkits.jetbrains.utils.isQExpired
import software.aws.toolkits.jetbrains.utils.notifyWarn
import software.aws.toolkits.resources.message
Expand Down Expand Up @@ -125,7 +125,7 @@ class CodeWhispererService(private val cs: CoroutineScope) : Disposable {
latencyContext: LatencyContext,
) {
val project = editor.project ?: return
if (!isCodeWhispererEnabled(project)) return
if (!isQConnected(project)) return

latencyContext.credentialFetchingStart = System.nanoTime()

Expand Down Expand Up @@ -751,7 +751,7 @@ class CodeWhispererService(private val cs: CoroutineScope) : Disposable {

fun canDoInvocation(editor: Editor, type: CodewhispererTriggerType): Boolean {
editor.project?.let {
if (!isCodeWhispererEnabled(it)) {
if (!isQConnected(it)) {
return false
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhisper
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorUtil.getCaretPosition
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorUtil.isSupportedJsonFormat
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererJson
import software.aws.toolkits.jetbrains.services.codewhisperer.model.CaretPosition
import software.aws.toolkits.jetbrains.services.codewhisperer.model.DetailContextNew
Expand All @@ -86,6 +85,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhisperer
import software.aws.toolkits.jetbrains.services.codewhisperer.util.FileContextProvider
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
import software.aws.toolkits.jetbrains.utils.isInjectedText
import software.aws.toolkits.jetbrains.utils.isQConnected
import software.aws.toolkits.jetbrains.utils.isQExpired
import software.aws.toolkits.jetbrains.utils.notifyWarn
import software.aws.toolkits.resources.message
Expand Down Expand Up @@ -129,7 +129,7 @@ class CodeWhispererServiceNew(private val cs: CoroutineScope) : Disposable {
latencyContext: LatencyContext,
) {
val project = editor.project ?: return
if (!isCodeWhispererEnabled(project)) return
if (!isQConnected(project)) return

latencyContext.credentialFetchingStart = System.nanoTime()

Expand Down Expand Up @@ -778,7 +778,7 @@ class CodeWhispererServiceNew(private val cs: CoroutineScope) : Disposable {

fun canDoInvocation(editor: Editor, type: CodewhispererTriggerType): Boolean {
editor.project?.let {
if (!isCodeWhispererEnabled(it)) {
if (!isQConnected(it)) {
return false
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManagerListener
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererLoginType
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
import software.aws.toolkits.jetbrains.utils.isQConnected
import software.aws.toolkits.resources.message
import java.awt.Font
import java.util.concurrent.TimeUnit
Expand All @@ -43,7 +43,7 @@ class CodeWhispererConfigurable(private val project: Project) :

override fun createPanel() = panel {
val connect = project.messageBus.connect(disposable ?: error("disposable wasn't initialized by framework"))
val invoke = isCodeWhispererEnabled(project)
val invoke = isQConnected(project)

// TODO: can we remove message bus subscribe and solely use visible(boolean) / enabled(boolean), consider multi project cases
row {
Expand All @@ -55,7 +55,7 @@ class CodeWhispererConfigurable(private val project: Project) :
ToolkitConnectionManagerListener.TOPIC,
object : ToolkitConnectionManagerListener {
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
visible(!isCodeWhispererEnabled(project))
visible(!isQConnected(project))
}
}
)
Expand All @@ -69,7 +69,7 @@ class CodeWhispererConfigurable(private val project: Project) :
ToolkitConnectionManagerListener.TOPIC,
object : ToolkitConnectionManagerListener {
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
enabled(isCodeWhispererEnabled(project) && !isSso)
enabled(isQConnected(project) && !isSso)
}
}
)
Expand All @@ -89,7 +89,7 @@ class CodeWhispererConfigurable(private val project: Project) :
ToolkitConnectionManagerListener.TOPIC,
object : ToolkitConnectionManagerListener {
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
enabled(isCodeWhispererEnabled(project))
enabled(isQConnected(project))
}
}
)
Expand Down Expand Up @@ -132,7 +132,7 @@ class CodeWhispererConfigurable(private val project: Project) :
ToolkitConnectionManagerListener.TOPIC,
object : ToolkitConnectionManagerListener {
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
enabled(isCodeWhispererEnabled(project))
enabled(isQConnected(project))
}
}
)
Expand All @@ -150,7 +150,7 @@ class CodeWhispererConfigurable(private val project: Project) :
ToolkitConnectionManagerListener.TOPIC,
object : ToolkitConnectionManagerListener {
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
enabled(isCodeWhispererEnabled(project))
enabled(isQConnected(project))
}
}
)
Expand All @@ -167,7 +167,7 @@ class CodeWhispererConfigurable(private val project: Project) :
ToolkitConnectionManagerListener.TOPIC,
object : ToolkitConnectionManagerListener {
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
enabled(isCodeWhispererEnabled(project))
enabled(isQConnected(project))
}
}
)
Expand All @@ -181,7 +181,7 @@ class CodeWhispererConfigurable(private val project: Project) :
ToolkitConnectionManagerListener.TOPIC,
object : ToolkitConnectionManagerListener {
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
enabled(isCodeWhispererEnabled(project))
enabled(isQConnected(project))
}
}
)
Expand Down Expand Up @@ -209,7 +209,7 @@ class CodeWhispererConfigurable(private val project: Project) :
ToolkitConnectionManagerListener.TOPIC,
object : ToolkitConnectionManagerListener {
override fun activeConnectionChanged(newConnection: ToolkitConnection?) {
enabled(isCodeWhispererEnabled(project) && !isSso)
enabled(isQConnected(project) && !isSso)
}
}
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.BearerTokenPr
import software.aws.toolkits.jetbrains.services.codewhisperer.codescan.CodeWhispererCodeScanManager
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererActivationChangedListener
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.services.codewhisperer.status.CodeWhispererStatusBarWidgetFactory
import software.aws.toolkits.jetbrains.services.codewhisperer.toolwindow.CodeWhispererCodeReferenceManager
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
import software.aws.toolkits.jetbrains.utils.isQConnected

class CodeWhispererProjectStartupSettingsListener(private val project: Project) :
CodeWhispererActivationChangedListener,
Expand All @@ -42,7 +42,7 @@ class CodeWhispererProjectStartupSettingsListener(private val project: Project)
override fun toolWindowShown(toolWindow: ToolWindow) {
super.toolWindowShown(toolWindow)
if (toolWindow.id != ProblemsView.ID) return
if (!isCodeWhispererEnabled(project)) return
if (!isQConnected(project)) return
CodeWhispererCodeScanManager.getInstance(project).buildCodeScanUI()
CodeWhispererCodeScanManager.getInstance(project).showCodeScanUI()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.wm.ToolWindow
import com.intellij.openapi.wm.ToolWindowFactory
import com.intellij.ui.components.JBScrollPane
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.utils.isQConnected
import software.aws.toolkits.jetbrains.utils.isRunningOnRemoteBackend

class CodeWhispererCodeReferenceToolWindowFactory : ToolWindowFactory, DumbAware {
Expand All @@ -23,7 +23,7 @@ class CodeWhispererCodeReferenceToolWindowFactory : ToolWindowFactory, DumbAware
toolWindow.contentManager.addContent(toolWindowContent)
}

override fun shouldBeAvailable(project: Project): Boolean = isCodeWhispererEnabled(project) && !isRunningOnRemoteBackend()
override fun shouldBeAvailable(project: Project): Boolean = isQConnected(project) && !isRunningOnRemoteBackend()

companion object {
const val id = "aws.codewhisperer.codereference"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.InteractiveBe
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererLoginType
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.utils.isQConnected
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.Paths
Expand Down Expand Up @@ -211,6 +212,6 @@ class CodeWhispererExplorerActionManagerTest {
assertThat(activeCwConn).isEqualTo(myConnection)
assertThat(myTokenProvider.state()).isEqualTo(expectedState)
assertThat(CodeWhispererExplorerActionManager.getInstance().checkActiveCodeWhispererConnectionType(project)).isEqualTo(expectedLoginType)
assertThat(isCodeWhispererEnabled(project)).isEqualTo(expectedIsCwEnabled)
assertThat(isQConnected(project)).isEqualTo(expectedIsCwEnabled)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ import org.mockito.kotlin.whenever
import software.aws.toolkits.jetbrains.core.ToolWindowHeadlessManagerImpl
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererLoginType
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExploreActionState
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererService
import software.aws.toolkits.jetbrains.services.codewhisperer.status.CodeWhispererStatusBarWidgetFactory
import software.aws.toolkits.jetbrains.services.codewhisperer.toolwindow.CodeWhispererCodeReferenceToolWindowFactory
import software.aws.toolkits.jetbrains.settings.CodeWhispererConfiguration
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
import software.aws.toolkits.jetbrains.utils.isQConnected
import kotlin.test.fail

class CodeWhispererSettingsTest : CodeWhispererTestBase() {
Expand Down Expand Up @@ -81,7 +81,7 @@ class CodeWhispererSettingsTest : CodeWhispererTestBase() {
@Test
fun `when isCodeWhispererEnabled is false, user not able to trigger CodeWhisperer manually`() {
whenever(stateManager.checkActiveCodeWhispererConnectionType(projectRule.project)).thenReturn(CodeWhispererLoginType.Logout)
assertThat(isCodeWhispererEnabled(projectRule.project)).isFalse
assertThat(isQConnected(projectRule.project)).isFalse
invokeCodeWhispererService()
verify(codewhispererServiceSpy, never()).showRecommendationsInPopup(any(), any(), any())
}
Expand Down
Loading