Kotlin-Lsp: Kotlin Language Server and Plugin for Visual Studio Code

71 todsacerdoti 28 5/22/2025, 2:46:47 AM github.com ↗

Comments (28)

travisgriggs · 2h ago
I think it’s admirable that there’s a generic language server for Kotlin. Others, such as zed can benefit from this as well.

That said, I would much rather use AndroidStudio for Kotlin. Hands down. I use VSCode only when I can’t find something better. I recently switched my Elixir dev to Zed and am happy with that. Pretty much only thing I choose to use VSCode for these days is my ansible setups. Otherwise:

- Pycharm -> Python

- Xcode -> Swift

- Android Studio -> Kotlin

- Zed for Elixir/Phoenix

- Nova for embedded C code

- vim for scripts and quick edits of any of the above

VSCode for everything is like using a multitool to do woodworking in a garage. When you’re hiking or on a trip, a lightweight do it all tool has advantages. But I think it’s important to remember what IDE stands for.

ashikns · 2h ago
On a different perspective, I love that VS Code supports so many things. As full stack dev I have to work with Python/TypeScript/C# interchangeably, often in the same project. I can easily switch between projects with the same editor window, and I get to use the same keybinds.
someothherguyy · 2h ago
That is nice, but not much different from jetbrains IDEs that can do this as well?

The issue with the VSCode ecosystem is that extensions can conflict, die, etc, and that is very annoying when setting up environments takes a long time, IMO.

suby · 1h ago
I've been using CLion since 2017. I recently switched to Helix, and one of the refreshing things about this has been that I'm now in an editor that can seamlessly handle every language or text file type. I think switching between editors was slowing me down and causing friction.

With Jetbrains, while there are plugins for other languages, it's hit and miss in my experience. Managing multiple IDE's was simply annoying, even things such as ensuring your settings are synced across everything was an issue. A different editor per language feels like a decision made for business needs and not user needs.

Which isn't to say that their IDE's are bad or anything, they are good. But they would be a lot better if they didn't take their product and split it up for each mainstream language.

wiseowise · 2h ago
Such as IntelliJ Ultimate that doesn’t have C++ integration, or CLion that can’t have Ruby integration or dozens of other combinations that happen in the field but not possible in IntelliJ.

Truly not that different from IntelliJ!

someothherguyy · 1h ago
Neither does VSCode. They are extensions, which are analogous to plugins in the JetBrains ecosystem. Although, it seems like there used to be way more plugin authors for language support pre-vscode/atom/sublime-text.

You can use the JetBrains launcher to switch between projects in another JetBrains IDE though. Also, I think you can do single window mode in Ultimate to do a lot.

wiseowise · 1h ago
I can combine every possible language on earth that has LSP in one VSCode instance. You can’t do that in IntelliJ.
someothherguyy · 1h ago
wiseowise · 29m ago
a)

> The integration with the Language Server Protocol is created as an extension to the commercial IntelliJ-based IDEs. Therefore, plugins using Language Server integration are not available in JetBrains products like IntelliJ IDEA Community Edition and Android Studio from Google.

b) I thought IntelliJ code analysis is so much more superior? If you’re using LSP, what’s the point of IntelliJ anyway? Sluggish ui?

mdaniel · 1h ago
> Currently, the LSP implementation is partially closed-source

What. the. fuck.

So, it's Apache 2 for the TypeScript, seems to ship an Apache 2 copy of IntelliJ (just like any Java language server), but smuggles some kind of binary. They truly have lost their way

jillesvangurp · 23m ago
> Currently, the LSP implementation is partially closed-source, primarily for the sake of development speed convenience -- it heavily depends on parts of IntelliJ, Fleet, and our distributed Bazel build that allows us to iterate quickly and experiment much faster, cutting corners and re-using internal infrastructure where it helps. After the initial stabilization phase and defining the final set of capabilities, we will de-couple the LSP implementation from the internal repository and build pipelines and open source it completely

The full quote ...

Instead of working on this behind closed doors for the next year or so and then open sourcing everything, they are releasing some open source now with the intention to open source the rest later. I see no problem with that. Seems pragmatic. More companies should do that.

Bottom line, you are getting free stuff now. Some of it OSS now. All of it OSS later. No need to get upset.

directstar2 · 2h ago
I wonder what triggered the sudden change of mind.

They have been pretty firm on wanting keeping it closed for the purpose of giving an edge to the Jetbrain IDE's

wiseowise · 2h ago
Kotlin adoption has been stagnating recently (subjectively) and VSCode + forks have massive market share.

It was extremely shortsighted to think that a single language would sway people to IntelliJ instead of just limiting Kotlin’s growth.

clumsysmurf · 26m ago
Kotlin dominates Android development, but Android Studio is free. Google has become more and more hostile towards indie Play Store developers, so in 2025 it is more risky and less lucrative. Kotlin's "home turf" (Android) may be losing developers faster faster than Jetbrains can gain them on other platforms.

I assume its will be a polyglot world for some time to come, and devs that decide to retool into another stack could use anything else, leaving Kotlin behind.

rochak · 51m ago
I (and countless others I know) simply refuse to learn/use a language that locks you in an ecosystem. I haven’t taken a Kotlin, C# or any of the Apple proprietary tech jobs and never will.
mohamez · 2h ago
One of the reasons might be that they realized that the absense of an official LSP for Kotlin will hinder its wide adoption by new developers who want to try Kotlin but don't want to move away from their favorite IDEs.
xolve · 1h ago
Most LLM based code-gen are VSCode forks. This reason would have certainly been on the list.
TheWiggles · 2h ago
Supposedly Kotlin usage has gone down a little bit in the last TIOBE Index. So I think they are trying to get Kotlin usage up.

https://www.tiobe.com/tiobe-index/

sureglymop · 2h ago
This is good, glad they're realizing this is needed.
pjmlp · 2h ago
Are they going to kill it in one year, as they did with the Eclipse plugin, after going big on Android?
satoru42 · 1h ago
Got the following error when trying to install it on Cursor:

> Error: Unable to install extension 'jetbrains.kotlin' as it is not compatible with VS Code '1.96.2'.

flykespice · 3h ago
It's great jetbrains finally taking some babysteps to support an official language server for VSCode after some great resilience from them.

I know it's a difficult spot because such effort will also indirectly compete with their main product which is an IDE, so I'm not very optimistic it'll last.

mohamez · 2h ago
>I know it's a difficult spot because such effort will also indirectly compete with their main product which is an IDE, so I'm not very optimistic it'll last.

I would say this if this step was taking early while Kotlin is still a new language in the market, but I think their late decision to develop an official LSP for Kotlin is because of reasons you just mentioned, but maybe they changed their minds because they saw other benifits including a wide adoption of Kotlin.

wiseowise · 2h ago
It also helped that whenever JB posted a Kotlin questionnaire there would be dozens of people asking “LSP?”.
lucasyvas · 3h ago
Does Fleet not use LSP?
yonatan8070 · 2h ago
Considering how non-mature this LSP server is, probably not, Fleet probably uses whatever internal protocols JetBrains use inside their IDEs
someothherguyy · 1h ago
> Backend – a headless service that does the heavy lifting: indexing, static analysis, advanced search, navigation, and the like. Every such operation is initiated by a request from the workspace, which then processes the response and dispatches the data to the components that require it.

> As a backend, you can use a headless IntelliJ IDEA or a language server.

https://www.jetbrains.com/help/fleet/architecture-overview.h...

wiseowise · 2h ago
Jesus Christ, finally!