Skip to content

Commit cca3e35

Browse files
committed
Merge remote-tracking branch 'origin/feature/q-lsp-chat' into rli/post-refactor
Conflicts: plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt
2 parents b10aaaa + 4489058 commit cca3e35

File tree

19 files changed

+209
-124
lines changed

19 files changed

+209
-124
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/webview/BrowserConnector.kt

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.google.gson.Gson
88
import com.intellij.ide.BrowserUtil
99
import com.intellij.ide.util.RunOnceUtil
1010
import com.intellij.openapi.application.runInEdt
11+
import com.intellij.openapi.fileEditor.FileEditorManager
1112
import com.intellij.openapi.options.ShowSettingsUtil
1213
import com.intellij.openapi.project.Project
1314
import com.intellij.ui.jcef.JBCefJSQuery.Response
@@ -22,8 +23,7 @@ import kotlinx.coroutines.flow.merge
2223
import kotlinx.coroutines.flow.onEach
2324
import kotlinx.coroutines.launch
2425
import org.cef.browser.CefBrowser
25-
import org.eclipse.lsp4j.Position
26-
import org.eclipse.lsp4j.Range
26+
import org.eclipse.lsp4j.TextDocumentIdentifier
2727
import software.aws.toolkits.core.utils.error
2828
import software.aws.toolkits.core.utils.getLogger
2929
import software.aws.toolkits.core.utils.warn
@@ -35,7 +35,6 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.encryption.JwtEncryp
3535
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.AwsServerCapabilitiesProvider
3636
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ChatCommunicationManager
3737
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.FlareUiMessage
38-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.getTextDocumentIdentifier
3938
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.AUTH_FOLLOW_UP_CLICKED
4039
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.AuthFollowUpClickNotification
4140
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.ButtonClickNotification
@@ -72,7 +71,6 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyC
7271
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CopyCodeToClipboardParams
7372
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CreatePromptNotification
7473
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CreatePromptParams
75-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.CursorState
7674
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedChatParams
7775
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.EncryptedQuickActionChatParams
7876
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.FeedbackNotification
@@ -108,6 +106,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabBa
108106
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabBarActionRequest
109107
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabEventParams
110108
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat.TabEventRequest
109+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.LspEditorUtil
110+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.LspEditorUtil.toUriString
111111
import software.aws.toolkits.jetbrains.services.amazonq.util.command
112112
import software.aws.toolkits.jetbrains.services.amazonq.util.tabType
113113
import software.aws.toolkits.jetbrains.services.amazonq.webview.theme.AmazonQTheme
@@ -237,19 +237,9 @@ class BrowserConnector(
237237
requestFromUi.params.prompt.escapedPrompt,
238238
node.command
239239
)
240-
val textDocumentIdentifier = getTextDocumentIdentifier(project)
241-
val cursorState = CursorState(
242-
Range(
243-
Position(
244-
0,
245-
0
246-
),
247-
Position(
248-
1,
249-
1
250-
)
251-
)
252-
)
240+
val editor = FileEditorManager.getInstance(project).selectedTextEditor
241+
val textDocumentIdentifier = editor?.let { TextDocumentIdentifier(toUriString(it.virtualFile)) }
242+
val cursorState = editor?.let { LspEditorUtil.getCursorState(it) }
253243

254244
val chatParams = ChatParams(
255245
requestFromUi.params.tabId,

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/service/CodeWhispererService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocume
4848
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionListWithReferences
4949
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionTriggerKind
5050
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionWithReferencesParams
51-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.FileUriUtil.toUriString
51+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.LspEditorUtil.toUriString
5252
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
5353
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorManager
5454
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorUtil.getCaretPosition

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/service/CodeWhispererServiceNew.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocume
4646
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionListWithReferences
4747
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionTriggerKind
4848
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionWithReferencesParams
49-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.FileUriUtil.toUriString
49+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.LspEditorUtil.toUriString
5050
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorManagerNew
5151
import software.aws.toolkits.jetbrains.services.codewhisperer.editor.CodeWhispererEditorUtil.getCaretPosition
5252
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager

plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererModelConfiguratorTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ class CodeWhispererModelConfiguratorTest {
617617

618618
@Ignore
619619
@Test
620-
fun `should switch to default customization on profile changed`() {
620+
fun `profile switch should keep using existing customization if new list still contains that arn`() {
621621
val ssoConn = spy(LegacyManagedBearerSsoConnection(region = "us-east-1", startUrl = "url 1", scopes = Q_SCOPES))
622622
ToolkitConnectionManager.getInstance(projectRule.project).switchConnection(ssoConn)
623623
val oldCustomization = CodeWhispererCustomization("oldArn", "oldName", "oldDescription")
@@ -634,7 +634,7 @@ class CodeWhispererModelConfiguratorTest {
634634
.syncPublisher(QRegionProfileSelectedListener.TOPIC)
635635
.onProfileSelected(projectRule.project, null)
636636

637-
assertThat(sut.activeCustomization(projectRule.project)).isEqualTo(null)
637+
assertThat(sut.activeCustomization(projectRule.project)).isEqualTo(oldCustomization)
638638
}
639639

640640
@Ignore

plugins/amazonq/codewhisperer/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codewhisperer/CodeWhispererServiceTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import org.mockito.kotlin.spy
1919
import org.mockito.kotlin.stub
2020
import org.mockito.kotlin.whenever
2121
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.textDocument.InlineCompletionTriggerKind
22-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.FileUriUtil.toUriString
22+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.LspEditorUtil.toUriString
2323
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
2424
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
2525
import software.aws.toolkits.jetbrains.services.codewhisperer.language.languages.CodeWhispererJava

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLspService.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -378,15 +378,15 @@ private class AmazonQServerInstance(private val project: Project, private val cs
378378
}
379379

380380
// invokeOnCompletion results in weird lock/timeout error
381-
initializeResult.asCompletableFuture().handleAsync { r, ex ->
381+
initializeResult.asCompletableFuture().handleAsync { lspInitResult, ex ->
382382
if (ex != null) {
383383
return@handleAsync
384384
}
385385

386386
this@AmazonQServerInstance.apply {
387387
DefaultAuthCredentialsService(project, encryptionManager, this)
388388
TextDocumentServiceHandler(project, this)
389-
WorkspaceServiceHandler(project, this)
389+
WorkspaceServiceHandler(project, lspInitResult, this)
390390
DefaultModuleDependenciesService(project, this)
391391
}
392392
}

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependencyProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import com.intellij.openapi.module.Module
88
import com.intellij.openapi.roots.ModuleRootManager
99
import com.intellij.openapi.vfs.VirtualFile
1010
import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams
11-
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.FileUriUtil.toUriString
11+
import software.aws.toolkits.jetbrains.services.amazonq.lsp.util.LspEditorUtil.toUriString
1212

1313
interface ModuleDependencyProvider {
1414
companion object {

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/flareChat/ChatEditorUtils.kt

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

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/chat/CursorState.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,15 @@
33

44
package software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.chat
55

6+
import org.eclipse.lsp4j.Position
67
import org.eclipse.lsp4j.Range
78

8-
data class CursorState(
9+
sealed interface CursorState
10+
11+
data class CursorPosition(
12+
val position: Position,
13+
) : CursorState
14+
15+
data class CursorRange(
916
val range: Range,
10-
)
17+
) : CursorState

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/chat/SendChatPrompt.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import software.aws.toolkits.jetbrains.services.amazonq.lsp.flareChat.ContextCom
99
data class ChatParams(
1010
val tabId: String,
1111
val prompt: ChatPrompt,
12-
val textDocument: TextDocumentIdentifier,
13-
val cursorState: CursorState,
12+
val textDocument: TextDocumentIdentifier?,
13+
val cursorState: CursorState?,
1414
val context: List<ContextCommand>?,
1515
)
1616

0 commit comments

Comments
 (0)