Any plan for Supporting Language Server Protocol?

While I understand your focus on developing your IDE, I believe the general acceptance of Kotlin is in the best interest of both JetBrains and the programming community. While I wish to use Kotlin on my work projects, I cannot convince managers to even consider Kotlin since there is no Kotlin language server to support integration with a variety of tools from a variety of vendors and the Open Source community. IF JetBrains were to play nice, it would help the adoption of the Kotlin languages. Sure some members of the team would use tools not built by JetBrains, but I and many others would purchase commercial IntelliJ IDEA licenses, because it would be the leading tool. So overall, I believe adding such community focused capabilities would help your business as well as the greater adoption of the Kotlin language.

Thank you for reading this.

7 Likes

I think supporting LSP would help provide the best possible development experience. Since the protocol is here to build outstanding support for a language, all the IDE has to do is support the protocol. I think the IntelliJ IDEA would benefit largely from supporting this. What’s the argument against it?

4 Likes

The LSP doesn’t allow to build outstanding support for a language, it allows to build the “least common denominator” support only.

3 Likes

Just to understand. What language support would be missing from the IDE if IntelliJ was using the Language Server Protocol?

For example, all refactorings other than Rename.

3 Likes

Indeed, as per this issue. Thanks.

This is a no excuse. You can’t always let the commons denominator be the same and extend the protocol with custom requests that fulfills your needs. This way your open source code could really be useful to the community and not confined in the Intellij Idea scenario.
You just have to decide if you want an open API approach or prefer to keep everything in house. (Which is legitimate, I’m not judging anyone.)

1 Like

We can develop our product far more efficiently if we can build the features we need as part of our product directly, not as extensions to a third-party protocol. Also, the quality of experience of people developing Kotlin in IntelliJ IDEA is far more important to us than the usefulness of our open source code to the community of developers not using IntelliJ IDEA.

4 Likes

I’ve built a decently complete language server implementation using the Kotlin compiler implementation, it’s still a little buggy but quite usable. You can try it out by installing it from the VSCode marketplace: https://marketplace.visualstudio.com/items?itemName=georgewfraser.kotlin

3 Likes

We maintain an Intellij plugin for our product. Our product also runs a Language server that works well on VS code, vim, emacs etc. It’d be nice if IntelliJ undestands the language server protocol to provide basic features like auto-completion, symbols etc so that we don’t have to re-implement all of this on our IntelliJ plugin.

1 Like

There’s a plugin for IntelliJ IDEA that allows it to act as a client for a Language Server Protocol server: GitHub - gtache/intellij-lsp: Plugin adding Language Server Protocol support for IntelliJ

3 Likes

I’d interested in a Kotlin LS on VS Code…

1 Like

You can contribute to existing one: GitHub - fwcd/kotlin-language-server: Kotlin code completion, linting and more for any editor/IDE using the Language Server Protocol

3 Likes

(My personal view.) Are we taking about adding LSP support in Intellij then i vote -1 IntelliJ is a IDE (supports Java, Clojure, Scala, Kotlin etc already) LSP is trying to bring same IDE feature to Editors. IDE already having many features and bringing LSP into IDE is a redundant.

If so many LSP users really like to use it in a Editors then my suggestion to JetBrains is to provide a “Different” minimum version of JetBrains Editor and support only LSP, but not in Intellij. I love to be IDE minimalist ! When i download IDE i do remove many plugins from my IDE and have only necessary to me so adding LSP default to Intellij is useless people like me.

IMO a language should be neutral of the tools. from me all the arguments made by @yole is like trying to build a language to increase their jetbrains product coverage and in return trying increase the sales of their commercial products. Now i can image why you guys made the IJ Community version, and one things for sure that not for the FOSS.

1 Like

@yole has just explained the motivation of JetBrains and technical constraints of the current LSP version. JetBrains invested a lot in Kotlin and gives it away for free. You can even get a world class IDE for free with excellent Kotlin support. There is nothing special with Kotlin or the license that would hinder anyone to build another IDE or plug-in. But it is a bit strange to accuse JetBrains of not working for the competition.

If you miss LSP support for Kotlin than why don’t you help to improve it?

5 Likes

I think we’ve always been very transparent with our motivation. Yes, we’re a commercial company. As our Web site says, our mission is to make professional software development a more productive and enjoyable experience. In order to be able to fulfil that mission, we need to have a sustainable business model, which means that we need to sell our commercial products. At the same time, we release products as open source when we consider that an open-source license is the most appropriate choice for a given product, for different reasons (ease of adoption, ease of extension, etc.). Our open-source projects use industry-standard licenses with no additional restrictions. We also support the open-source community in various ways, including making licenses available for free and direct monetary sponsorship. But no, we never do anything purely “for the FOSS”, and I don’t think we ever claimed that we did.

13 Likes

You’re doing something wrong. I’ve never heard of any company not accepting Kotlin because there is no language server support…No static code analysis? Yes, it was a problem, but now we have Detekt. I introduced Kotlin to half a dozen companies and I’ve never seen this come up. I know it is not statistically significant, but I’d still reconsider my marketing strategy if I were you.

1 Like

I am very disappointed by JetBrains’s refusal to support any tooling outside their ecosystem. I have a physical injury which prevents me from using any IDEs, they all have an interface that physically hurts me due to the frequent use of the mouse and convoluted keyboard shortcuts. I have only been able to be comfortable using Vim and Neovim. I even have a vi-like plugin for my web browser and use a tiling window manager which allows me to do most of my computing with the keyboard only.

The entire point of LSP is to offer the same quality of tooling to all users, regardless of what editor they use. For some people the choice of editor might seem like a luxury, for me (and some other people) it is a necessity.

I can use Java with the eclipse.jd.ls server just fine, so the entire LSP thing is working. What really gets me is JetBrains’s stubbornness to offer anything. If you are not going to develop a standalone server, at least make it possible to run a headless IntelliJ instance as the server instead. You get your vendor lock-in, and I get to use an editor that doesn’t cause me physical pain.

(and yes, I know about the vi-binding plugins for IntelliJ, and no, they are not enough)

3 Likes

I know you mentioned it in your post but I figure I’d copy it here in case others find it: IntelliJ supports Vim keyboard shortcuts–it’s one of the main plugins shown to you during installation.

I find the phrasing “JetBrains’s refusal to support LSP for Kotlin” odd. You might as well say “Microsoft’s refusal to support Kotlin in LSP” (or any other company). Maybe JetBrains is targeted because people assume they stand to benefit the most from more IDEs supporting Kotlin?

When JetBrains answers the requests for LSP with “What’s our motivation and benefit to us?” and after evaluating they decide the benefits to them aren’t worth the cost at the present time, their response becomes, “Sure, go find a motivated supplier for Kotlin LSP”

Luckily, Kotlin LSP does have motivated suppliers, the community! Here’s a link to the leading Kotlin LSP project.

EDIT: Fixed link. Thanks @Wasabi375

2 Likes