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

101 todsacerdoti 57 5/22/2025, 2:46:47 AM github.com ↗

Comments (57)

eitland · 1h ago
Great!

As much as I love Kotlin and have a great deal of respect for JetBrains, I’ve always preferred the other Java IDEs over IntelliJ. The fact that choosing Kotlin—which I genuinely do prefer—effectively locks you into IntelliJ for the foreseeable future has been one of the main reasons I’ve hesitated to recommend it unreservedly for every project.

Just to be clear: I think IntelliJ and the rest of JetBrains’ tools are excellent and absolutely worth the price. I simply happen to prefer the alternatives—and they happen to be free. That said, I realise this is very much a personal preference, and one that most others don’t seem to share.

arunix · 15m ago
What are the IntelliJ alternatives you prefer?
travisgriggs · 6h 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 · 5h 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 · 5h 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 · 4h 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.

d3ckard · 1h ago
I am currently circulating between Helix (for doing stuff myself) and Cursor (for doing stuff via agents).

Helix is awesome! I mostly love how fast it is. The world of JS editors is driving me crazy with lag.

wiseowise · 5h 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 · 5h 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 · 5h ago
I can combine every possible language on earth that has LSP in one VSCode instance. You can’t do that in IntelliJ.
someothherguyy · 5h ago
wiseowise · 4h 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?

8fingerlouie · 1h ago
I've pretty much replaced my Sublime Text usage with Zed as a general purpose editor, which handles any edits that last longer than i can be bothered to edit stuff in Vim. I've used Vi(m) for decades, and know my way around, and while it's a decent editor, it is NOT and IDE, and modern features feels like they're tacked on.
fkarlsson · 2h ago
I’m interested in hearing more about Nova for embedded C, what makes it more suitable? Looking for an excuse to try it.
pjmlp · 1h ago
I on the other hand rather go with use the best tool for the job, this applies to IDEs as well as programming languages.

The vertical integration from an Apple product tailored for a specific experience, versus the jigsaw from Linux desktop distributions.

kubb · 3h ago
Aren't Zed and Nova and vim meant to be general-purpose editors too?
liampulles · 3h ago
How is Zed for refactoring Elixir stuff? I use VS code for it but I find the options for even just renaming variables quite poor.
directstar2 · 6h 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 · 6h 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 · 4h 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.

sgammon · 2h ago
Android Studio is only "free" to the user.
mike_hearn · 3h ago
Hardly shortsighted. IntelliJ has a business model, Kotlin doesn't. Maximizing Kotlin usage does nothing for Jetbrains directly, just creates costs. And sure it brings people to IntelliJ, more importantly, it keeps them there.

It's kinda like describing Apple as short sighted for not giving away the source code to all their frameworks. Doing so would maximise usage but that's not their goal.

wiseowise · 2h ago
> Maximizing Kotlin usage does nothing for Jetbrains directly, just creates costs.

It brings mindshare and brand value. And it brings direct revenue in business contracts (I hope they get a hefty fee for supporting Google with Android Studio).

It is also investment in the future. How many student curriculums, courses, tutorials use IntelliJ over VSCode? And how many of them convert to IntelliJ later? IntelliJ is always seen as that heavy industrial combiner for professional workers compared to nimble and hype VSCode.

> And sure it brings people to IntelliJ, more importantly, it keeps them there.

I might be a vocal minority here, but it keeps nothing but resentment in me.

> It's kinda like describing Apple as short sighted for not giving away the source code to all their frameworks. Doing so would maximise usage but that's not their goal.

Apple is trillion dollar hardware company with completely locked down ecosystem with millions (billion?) of people using their products. They can do whatever the f*k they want and developers will dance to their tune.

The comparison you’re looking for is Borland. Delphi was once far more popular than Kotlin right now, and look how it ended up.

mike_hearn · 1h ago
Google pay JetBrains nothing for Android Studio. Source: I talked to them at KotlinConf about it. Why would they? Do you see Google taking out huge contracts with Oracle for Java, or Red Hat for Linux? Google hardly even contributes to upstream projects, let alone funds them via fat support contracts. They prefer to develop everything in house, acquire outright or maintain their own forks if that isn't viable.

Google are members of the Kotlin Foundation. I guess as part of that they contribute towards the cost of the yearly conference. They've also generously open sourced some of the frameworks they built for Android. But go review the commit logs for IntelliJ or Kotlin and you'll see they're nearly all JB employees.

As for the rest, words have meaning. "Brand value" means people are willing to pay for things associated with that brand. "Investment" means something that can potentially yield ROI. Something given away for free with no supporting business model isn't an investment, it's charity.

The internet is littered with bitrotting projects that were treated as charity and then abandoned when the authors got tired of it. Apache fills up with more every year. The right comparison is thus not with Delphi (which made Borland a ton of money and is still on sale today via Embarcadero), but with NetBeans and Eclipse, both codebases abandoned by their former sponsors when the novelty value of having lots of users wore off.

> I might be a vocal minority here, but it keeps nothing but resentment in me.

OK, so don't use it then. Kotlin, at least in the JVM or JS variants, isn't the sort of language that requires a huge level of buy-in. I started using it before Kotlin 1.0 even came out, used it for the next decade after that, and was happy with it at every point. Back in those days the community was tiny but that doesn't matter due to its excellent JVM interop. At no point did I ever have any fear other than JetBrains not making enough money with it and defunding it. Fortunately, being a smart company, they haven't fallen into that trap.

mohamez · 6h 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.
TheWiggles · 5h 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/

rhdunn · 2h ago
The TIOBE index is just reflecting search queries. If someone is familiar with a language, they would be searching about a specific framework, using LLMs/AI agents, and working on projects in that language. Those won't be reflected in the TIOBE index.
xolve · 5h ago
Most LLM based code-gen are VSCode forks. This reason would have certainly been on the list.
rochak · 4h ago
I (and countless others I know) simply refuse to learn/use a language that locks you in an ecosystem. I haven’t taken Kotlin, C# or any of the Apple proprietary tech jobs and never will.
9cb14c1ec0 · 19m ago
Every language has its ecosystem. I don't know why being locked into the Java or C# ecosystem is any worse than, say Python or Go. And I say that as someone who has used all of these languages.
jeroenhd · 3h ago
Kotlin may have been relatively IDE-locked without a proper LSP being available, but C# is cross-platform in terms of both editors and runtimes (assuming you're not targeting Windows' .NET stack).

At this point I wouldn't consider it any more or less proprietary than any other Microsoft language, like TypeScript for instance.

exyi · 2h ago
Kotlin did not have open LSP, C# still does not have an open debugger.

The C# VSCode extension works in Microsoft's build of VSCode, not when someone else forks it and builds it themselves.

martypitt · 2h ago
Kotlin has had an OSS (MIT) Language Server for years. It's written and maintained by the community - but isn't that exactly the point of open source?

[0]: https://github.com/fwcd/kotlin-language-server

sorcercode · 3h ago
what job do you currently take?
rochak · 3h ago
I work on backend (distributed systems) leveraging languages like Java, Python, Go, Ruby and TypeScript.
pjmlp · 5h ago
Are they going to kill it in one year, as they did with the Eclipse plugin, after going big on Android?
jeroenhd · 3h ago
Based on the commit dates, it seems like their Eclipse plugin had at least four years of activity: https://github.com/Kotlin/kotlin-eclipse

I think the overlap between "people who use Eclipse" and "people interested in Kotlin" is pretty small, though. I've only seen Eclipse in use with companies and teams stuck working on legacy applications.

pjmlp · 2h ago
Not everyone worships InteliJ.

As for the one year, last release was on 2018, Kotlin was announced as main Android language in May 2017.

Now re-read my comment.

The three years predating it was JetBrains trying to find a way to sell Kotlin adoption, then they went big and closed shop.

Now they are stuck with Kotlin being seen as an Android language for the most part, and Fleet isn't taking off.

eitland · 56m ago
> Now they are stuck with Kotlin being seen as an Android language for the most part

Perhaps it’s different elsewhere, but here in Norway I’ve seen Kotlin used quite extensively in large backend codebases. It also comes up frequently in job postings—employers seem to actively ask for it when hiring.

misja111 · 2h ago
Why would anyone want to use VSC for Kotlin? After all the Kotlin creators are also the ones after JetBrains IntelliJ, it's hard to imagine some other IDE could suit Kotlin better?
eitland · 1h ago
In my case it is simple: I think IntelliJ is great but I much prefer VSCode and NetBeans.

Why? Two main reasons:

- On the projects I tend to work on, IntelliJ has a habit of breaking its internal configuration a few times a year—not just for me, but for my colleagues as well. When it does, it can take the better part of a day to sort out. Often I end up getting frustrated, deleting anything not under version control, reimporting the project, and end up having to reconfigure all the database connections and other bits manually.

- I also just prefer the more straightforward feel of NetBeans and VSCode. It’s a bit like my old car: less automation, fewer clever electronics. Sure, the new one is objectively better in many ways—but the old one was easier to get out of the snow, and it rarely surprised me.

pjmlp · 2h ago
They even created Kotlin to help sell InteliJ licenses, cleary they are having an adoption problem outside Android.

"The next thing is also fairly straightforward: we expect Kotlin to drive the sales of IntelliJ IDEA. We’re working on a new language, but we do not plan to replace the entire ecosystem of libraries that have been built for the JVM. So you’re likely to keep using Spring and Hibernate, or other similar frameworks, in your projects built with Kotlin. And while the development tools for Kotlin itself are going to be free and open-source, the support for the enterprise development frameworks and tools will remain part of IntelliJ IDEA Ultimate, the commercial version of the IDE. And of course the framework support will be fully integrated with Kotlin."

-- https://blog.jetbrains.com/kotlin/2011/08/why-jetbrains-need...

sureglymop · 6h ago
This is good, glad they're realizing this is needed.
mdaniel · 5h 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 · 3h 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.

kartikarti · 1h ago
Why overreact? Closed-source - bad, first steps towards open-source - bad. Is it always all or nothing?
pjmlp · 1h ago
Not like any Java language server.

Red-Hat/Microsoft ship Eclipse headless, and Oracle ships Netbeans headless, they don't ship an Apache 2 copy of IntelliJ.

And really, just get the full deal instead of running them headless alongside Electron package.

satoru42 · 5h 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'.

jeroenhd · 3h ago
Is your version of Cursor outdated or is Cursor really still running on a version of VS Code released half a year ago?
flykespice · 6h 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 · 6h 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 · 5h ago
It also helped that whenever JB posted a Kotlin questionnaire there would be dozens of people asking “LSP?”.
lucasyvas · 6h ago
Does Fleet not use LSP?
hocuspocus · 1h ago
Last time I checked it was only for Rust, specifically you couldn't use the LSP feature for arbitrary languages that aren't supported by Fleet yet.

Java and Kotlin are definitely not using the LSP but their proprietary backend.

yonatan8070 · 6h ago
Considering how non-mature this LSP server is, probably not, Fleet probably uses whatever internal protocols JetBrains use inside their IDEs
someothherguyy · 5h 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 · 6h ago
Jesus Christ, finally!