diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLanguageServer.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLanguageServer.kt index 0921d0e8eeb..6470584da8e 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLanguageServer.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/AmazonQLanguageServer.kt @@ -8,7 +8,7 @@ import org.eclipse.lsp4j.jsonrpc.services.JsonNotification import org.eclipse.lsp4j.jsonrpc.services.JsonRequest import org.eclipse.lsp4j.services.LanguageServer import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.credentials.UpdateCredentialsPayload -import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.SyncModuleDependenciesParams +import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams import java.util.concurrent.CompletableFuture /** @@ -16,8 +16,8 @@ import java.util.concurrent.CompletableFuture */ @Suppress("unused") interface AmazonQLanguageServer : LanguageServer { - @JsonNotification("aws/syncModuleDependencies") - fun syncModuleDependencies(params: SyncModuleDependenciesParams): CompletableFuture + @JsonNotification("aws/didChangeDependencyPaths") + fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams): CompletableFuture @JsonRequest("aws/credentials/token/update") fun updateTokenCredentials(payload: UpdateCredentialsPayload): CompletableFuture diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesService.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesService.kt index 513bf8adf0b..80239696d14 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesService.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesService.kt @@ -10,7 +10,7 @@ import com.intellij.openapi.roots.ModuleRootEvent import com.intellij.openapi.roots.ModuleRootListener import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService import software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.ModuleDependencyProvider.Companion.EP_NAME -import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.SyncModuleDependenciesParams +import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams import java.util.concurrent.CompletableFuture class DefaultModuleDependenciesService( @@ -34,16 +34,16 @@ class DefaultModuleDependenciesService( syncAllModules() } - override fun syncModuleDependencies(params: SyncModuleDependenciesParams): CompletableFuture = + override fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams): CompletableFuture = AmazonQLspService.executeIfRunning(project) { languageServer -> - languageServer.syncModuleDependencies(params) + languageServer.didChangeDependencyPaths(params) }?.toCompletableFuture() ?: CompletableFuture.failedFuture(IllegalStateException("LSP Server not running")) private fun syncAllModules() { ModuleManager.getInstance(project).modules.forEach { module -> EP_NAME.forEachExtensionSafe { if (it.isApplicable(module)) { - syncModuleDependencies(it.createParams(module)) + didChangeDependencyPaths(it.createParams(module)) return@forEachExtensionSafe } } diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependenciesService.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependenciesService.kt index 4229fe7042a..82370dad895 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependenciesService.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependenciesService.kt @@ -3,9 +3,9 @@ package software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies -import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.SyncModuleDependenciesParams +import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams import java.util.concurrent.CompletableFuture interface ModuleDependenciesService { - fun syncModuleDependencies(params: SyncModuleDependenciesParams): CompletableFuture + fun didChangeDependencyPaths(params: DidChangeDependencyPathsParams): CompletableFuture } diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependencyProvider.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependencyProvider.kt index a6ce65b387a..5b9f245186f 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependencyProvider.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/ModuleDependencyProvider.kt @@ -5,7 +5,7 @@ package software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.module.Module -import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.SyncModuleDependenciesParams +import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams interface ModuleDependencyProvider { companion object { @@ -13,5 +13,5 @@ interface ModuleDependencyProvider { } fun isApplicable(module: Module): Boolean - fun createParams(module: Module): SyncModuleDependenciesParams + fun createParams(module: Module): DidChangeDependencyPathsParams } diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/providers/JavaModuleDependencyProvider.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/providers/JavaModuleDependencyProvider.kt index 26fa9fda84f..f3440660e22 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/providers/JavaModuleDependencyProvider.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/providers/JavaModuleDependencyProvider.kt @@ -9,13 +9,13 @@ import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.roots.OrderRootType import com.intellij.openapi.vfs.VfsUtil import software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.ModuleDependencyProvider -import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.SyncModuleDependenciesParams +import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams internal class JavaModuleDependencyProvider : ModuleDependencyProvider { override fun isApplicable(module: Module): Boolean = ModuleRootManager.getInstance(module).sdk?.sdkType is JavaSdkType - override fun createParams(module: Module): SyncModuleDependenciesParams { + override fun createParams(module: Module): DidChangeDependencyPathsParams { val sourceRoots = getSourceRoots(module) val dependencies = mutableListOf() @@ -26,7 +26,7 @@ internal class JavaModuleDependencyProvider : ModuleDependencyProvider { true } - return SyncModuleDependenciesParams( + return DidChangeDependencyPathsParams( moduleName = module.name, programmingLanguage = "Java", files = sourceRoots, diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/providers/PythonModuleDependencyProvider.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/providers/PythonModuleDependencyProvider.kt index 4223c7f9e80..287caf644d5 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/providers/PythonModuleDependencyProvider.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/providers/PythonModuleDependencyProvider.kt @@ -8,13 +8,13 @@ import com.intellij.openapi.roots.ModuleRootManager import com.jetbrains.python.packaging.management.PythonPackageManager import com.jetbrains.python.sdk.PythonSdkUtil import software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.ModuleDependencyProvider -import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.SyncModuleDependenciesParams +import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams internal class PythonModuleDependencyProvider : ModuleDependencyProvider { override fun isApplicable(module: Module): Boolean = PythonSdkUtil.findPythonSdk(module) != null - override fun createParams(module: Module): SyncModuleDependenciesParams { + override fun createParams(module: Module): DidChangeDependencyPathsParams { val sourceRoots = getSourceRoots(module) val dependencies = mutableListOf() @@ -25,7 +25,7 @@ internal class PythonModuleDependencyProvider : ModuleDependencyProvider { } } - return SyncModuleDependenciesParams( + return DidChangeDependencyPathsParams( moduleName = module.name, programmingLanguage = "Python", files = sourceRoots, diff --git a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/dependencies/SyncModuleDependenciesParams.kt b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/dependencies/DidChangeDependencyPathsParams.kt similarity index 91% rename from plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/dependencies/SyncModuleDependenciesParams.kt rename to plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/dependencies/DidChangeDependencyPathsParams.kt index f7585ac1081..d1f07065fe6 100644 --- a/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/dependencies/SyncModuleDependenciesParams.kt +++ b/plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/lsp/model/aws/dependencies/DidChangeDependencyPathsParams.kt @@ -3,7 +3,7 @@ package software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies -class SyncModuleDependenciesParams( +class DidChangeDependencyPathsParams( val moduleName: String, val programmingLanguage: String, val files: List, diff --git a/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesServiceTest.kt b/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesServiceTest.kt index 89b51f9f6ec..2713f41df4b 100644 --- a/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesServiceTest.kt +++ b/plugins/amazonq/shared/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/amazonq/lsp/dependencies/DefaultModuleDependenciesServiceTest.kt @@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLanguageServer import software.aws.toolkits.jetbrains.services.amazonq.lsp.AmazonQLspService import software.aws.toolkits.jetbrains.services.amazonq.lsp.dependencies.ModuleDependencyProvider.Companion.EP_NAME -import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.SyncModuleDependenciesParams +import software.aws.toolkits.jetbrains.services.amazonq.lsp.model.aws.dependencies.DidChangeDependencyPathsParams import java.util.concurrent.CompletableFuture import java.util.function.Consumer @@ -45,7 +45,7 @@ class DefaultModuleDependenciesServiceTest { mockDependencyProvider = mockk() mockLanguageServer = mockk() - every { mockLanguageServer.syncModuleDependencies(any()) } returns CompletableFuture() + every { mockLanguageServer.didChangeDependencyPaths(any()) } returns CompletableFuture() // Mock Application mockApplication = mockk() @@ -89,7 +89,7 @@ class DefaultModuleDependenciesServiceTest { fun `test initial sync on construction`() { // Arrange val module = mockk() - val params = SyncModuleDependenciesParams( + val params = DidChangeDependencyPathsParams( moduleName = "testModule", programmingLanguage = "Java", files = listOf("src/main"), @@ -104,7 +104,7 @@ class DefaultModuleDependenciesServiceTest { sut = DefaultModuleDependenciesService(project, mockk()) - verify { mockLanguageServer.syncModuleDependencies(params) } + verify { mockLanguageServer.didChangeDependencyPaths(params) } } @Test @@ -112,7 +112,7 @@ class DefaultModuleDependenciesServiceTest { // Arrange val module1 = mockk() val module2 = mockk() - val params1 = SyncModuleDependenciesParams( + val params1 = DidChangeDependencyPathsParams( moduleName = "module1", programmingLanguage = "Java", files = listOf("src/main1"), @@ -120,7 +120,7 @@ class DefaultModuleDependenciesServiceTest { includePatterns = emptyList(), excludePatterns = emptyList() ) - val params2 = SyncModuleDependenciesParams( + val params2 = DidChangeDependencyPathsParams( moduleName = "module2", programmingLanguage = "Java", files = listOf("src/main2"), @@ -139,8 +139,8 @@ class DefaultModuleDependenciesServiceTest { sut = DefaultModuleDependenciesService(project, mockk()) // Verify both modules were synced - verify { mockLanguageServer.syncModuleDependencies(params1) } - verify { mockLanguageServer.syncModuleDependencies(params2) } + verify { mockLanguageServer.didChangeDependencyPaths(params1) } + verify { mockLanguageServer.didChangeDependencyPaths(params2) } } @Test @@ -161,14 +161,14 @@ class DefaultModuleDependenciesServiceTest { sut = DefaultModuleDependenciesService(project, mockk()) // Verify no sync occurred - verify(exactly = 0) { mockLanguageServer.syncModuleDependencies(any()) } + verify(exactly = 0) { mockLanguageServer.didChangeDependencyPaths(any()) } } @Test fun `test rootsChanged withFileTypesChange`() { // Arrange val module = mockk() - val params = SyncModuleDependenciesParams( + val params = DidChangeDependencyPathsParams( moduleName = "testModule", programmingLanguage = "Java", files = listOf("src/main"), @@ -186,14 +186,14 @@ class DefaultModuleDependenciesServiceTest { sut.rootsChanged(event) // Verify sync occurred once - once on init and rootsChange ignores - verify(exactly = 1) { mockLanguageServer.syncModuleDependencies(params) } + verify(exactly = 1) { mockLanguageServer.didChangeDependencyPaths(params) } } @Test fun `test rootsChanged after module changes`() { // Arrange val module = mockk() - val params = SyncModuleDependenciesParams( + val params = DidChangeDependencyPathsParams( moduleName = "testModule", programmingLanguage = "Java", files = listOf("src/main"), @@ -214,10 +214,10 @@ class DefaultModuleDependenciesServiceTest { sut.rootsChanged(event) // Verify sync occurred twice - once on init and once after rootsChanged - verify(exactly = 2) { mockLanguageServer.syncModuleDependencies(params) } + verify(exactly = 2) { mockLanguageServer.didChangeDependencyPaths(params) } } - private fun prepDependencyProvider(moduleParamPairs: List>) { + private fun prepDependencyProvider(moduleParamPairs: List>) { every { mockModuleManager.modules } returns moduleParamPairs.map { it.first }.toTypedArray() every {