Skip to content

Conversation

@S-furi
Copy link
Collaborator

@S-furi S-furi commented Oct 1, 2025

This PR introduces a new way of performing completions requests leveraging Kotlin-lsp. Two approaches are included:

  • RESTful on api/compiler/lsp/complete;
  • WebSocket approach.

Currently completions with this approach supports only the latest Kotlin version, but future developments include the support of such feature by using a dedicated client and workspace for each Kotlin version supported by the kotlin-compiler-server.
Moreover, the support for different platforms than Kotlin/JVM is strictly bound to what Kotlin-lsp supports, namely only Kotlin/JVM projects as of today.

@S-furi S-furi self-assigned this Oct 1, 2025
@S-furi S-furi requested a review from dkrasnoff as a code owner October 1, 2025 15:10
@S-furi S-furi force-pushed the exp/isolated-documents branch 2 times, most recently from d1fd552 to 7731e29 Compare October 8, 2025 14:35
@S-furi
Copy link
Collaborator Author

S-furi commented Oct 8, 2025

@dkrasnoff With recent commits I've made some changes that have probably changed the references to the request changes above. In short, I've

  • Resolved conflicts kotlin-community/dev base branch
  • Moved completion logic into a new springboot application module
  • LSP-based completions now leverage WebFlux
    • Both REST endpoint (marked as suspendable) and WebSocket Implementation.
  • Moved LSP related files from project root to its corresponding resources folder (conversation reference)
  • Applied suggested refactors

I remain available for any eventual question.

@S-furi S-furi force-pushed the exp/isolated-documents branch 5 times, most recently from 95cc73a to c4c51ad Compare October 14, 2025 09:50
@S-furi S-furi force-pushed the exp/isolated-documents branch from aa74429 to ff47e3a Compare October 16, 2025 11:26
@S-furi S-furi force-pushed the exp/isolated-documents branch from 0b4bc80 to 0180d35 Compare October 16, 2025 12:59
@S-furi
Copy link
Collaborator Author

S-furi commented Oct 16, 2025

@dkrasnoff I don't remember if we've already discussed this, but should I move also Completion defined in common subproject into the new completions subproject?

@S-furi S-furi force-pushed the exp/isolated-documents branch 2 times, most recently from c24863c to 5ea84b9 Compare October 17, 2025 07:11
@S-furi S-furi force-pushed the exp/isolated-documents branch 5 times, most recently from b4b537e to 7129757 Compare October 20, 2025 12:45
@S-furi S-furi force-pushed the exp/isolated-documents branch from 3e050fc to aaa9ee3 Compare October 28, 2025 09:44
@S-furi S-furi merged commit 19f0348 into JetBrains:kotlin-community/dev Oct 31, 2025
1 check passed
dkrasnoff pushed a commit that referenced this pull request Nov 3, 2025
Implement lsp-based completions leveraging Kotlin-lsp through a WebFlux proxy capable of accepting POST requests and WebSocket requests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants