-
Notifications
You must be signed in to change notification settings - Fork 84
KTL-3015 implement Kotlin LSP proxy for completions #878
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
Merged
S-furi
merged 85 commits into
JetBrains:kotlin-community/dev
from
S-furi:exp/isolated-documents
Oct 31, 2025
Merged
KTL-3015 implement Kotlin LSP proxy for completions #878
S-furi
merged 85 commits into
JetBrains:kotlin-community/dev
from
S-furi:exp/isolated-documents
Oct 31, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dkrasnoff
reviewed
Oct 7, 2025
completions/src/test/resources/lsp/lsp-users-projects-root-test/settings.gradle.kts
Show resolved
Hide resolved
src/main/kotlin/com/compiler/server/configuration/WebSocketConfig.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/com/compiler/server/configuration/WebSocketConfig.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/com/compiler/server/configuration/WebSocketConfig.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/com/compiler/server/controllers/CompilerRestController.kt
Outdated
Show resolved
Hide resolved
dkrasnoff
reviewed
Oct 7, 2025
src/main/kotlin/com/compiler/server/controllers/LspCompletionWebSocketHandler.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/com/compiler/server/controllers/LspCompletionWebSocketHandler.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/com/compiler/server/controllers/LspCompletionWebSocketHandler.kt
Outdated
Show resolved
Hide resolved
dkrasnoff
reviewed
Oct 7, 2025
src/main/kotlin/com/compiler/server/controllers/LspCompletionWebSocketHandler.kt
Outdated
Show resolved
Hide resolved
src/main/kotlin/com/compiler/server/controllers/LspCompletionWebSocketHandler.kt
Outdated
Show resolved
Hide resolved
d1fd552 to
7731e29
Compare
|
@dkrasnoff With recent commits I've made some changes that have probably changed the references to the request changes above. In short, I've
I remain available for any eventual question. |
95cc73a to
c4c51ad
Compare
dkrasnoff
reviewed
Oct 15, 2025
completions/src/test/resources/lsp/lsp-users-projects-root-test/settings.gradle.kts
Show resolved
Hide resolved
completions/src/main/kotlin/completions/controllers/ws/LspCompletionWebSocketHandler.kt
Outdated
Show resolved
Hide resolved
completions/src/main/kotlin/completions/controllers/ws/LspCompletionWebSocketHandler.kt
Outdated
Show resolved
Hide resolved
completions/src/main/kotlin/completions/lsp/LspAvailabilityAdvice.kt
Outdated
Show resolved
Hide resolved
completions/src/main/kotlin/completions/lsp/LspCompletionParser.kt
Outdated
Show resolved
Hide resolved
completions/src/main/kotlin/completions/lsp/LspCompletionParser.kt
Outdated
Show resolved
Hide resolved
aa74429 to
ff47e3a
Compare
dkrasnoff
reviewed
Oct 16, 2025
completions/src/main/kotlin/completions/controllers/ws/LspCompletionWebSocketHandler.kt
Outdated
Show resolved
Hide resolved
0b4bc80 to
0180d35
Compare
|
@dkrasnoff I don't remember if we've already discussed this, but should I move also |
c24863c to
5ea84b9
Compare
S-furi
commented
Oct 17, 2025
b4b537e to
7129757
Compare
Containerized intellij-lsp uses a dynamic port, we need to provide a way to make spring aware of this `through `LspIntegrationTest`.
3e050fc to
aaa9ee3
Compare
now we can set the lsp remote workspace path (vital for containerized environments) through spring's application config. Moreover, a single workspace is now being used (i.e. no distinction between test and prod workspace).
dkrasnoff
reviewed
Oct 29, 2025
completions/src/main/kotlin/completions/configuration/lsp/LspProperties.kt
Show resolved
Hide resolved
completions/src/main/kotlin/completions/util/serializationUtil.kt
Outdated
Show resolved
Hide resolved
dkrasnoff
reviewed
Oct 29, 2025
dkrasnoff
approved these changes
Oct 31, 2025
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a new way of performing completions requests leveraging Kotlin-lsp. Two approaches are included:
api/compiler/lsp/complete;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.