Skip to content
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

[FYI] VSCode Client / Server Language Protocol #515

Closed
mispencer opened this issue Jun 4, 2016 · 12 comments
Closed

[FYI] VSCode Client / Server Language Protocol #515

mispencer opened this issue Jun 4, 2016 · 12 comments

Comments

@mispencer
Copy link
Contributor

Apparently Microsoft and Eclipse are jointly working on a code completion/diagnostic/analytics protocol. Is this something ycmd might be interested in supporting?

Current protocol spec

@Valloric
Copy link
Member

Valloric commented Jun 5, 2016

Thanks for the heads-up!

Let's see if it takes off first. For YCM/ycmd, it's not solving any problems we have so I see no benefit to implementing it. That may change in the future of course, and at that time we can reopen this.

@romix
Copy link

romix commented Sep 7, 2016

Apparently, YCMD is probably a single tool that provides Clang-based auto-completion using a server for it. If it would implement this protocol, a number of editors could immediately benefit from it. E.g. Eclipse CDT (C/C++ Development Tooling) could make use of this feature, which is more powerful and usable than their built-in auto-completion.

@romix
Copy link

romix commented Sep 7, 2016

Visual Studio Code and Atom would be two other interesting editors, who could make use of this feature. Combined with Eclipse, it makes a pretty interesting set of editors with a pretty broad user base.

I don't see any reason to ignore this possibility of extending YCMD users base, if adding a support for the Language Server Protocol would be probably almost as easy as providing a new skin for the existing YCMD protocol.

@sztomi
Copy link

sztomi commented Nov 19, 2017

@Valloric It does seem like Language Server Protocol took off: https://langserver.org/

@bstaletic
Copy link
Collaborator

@sztomi Take a look at the PRs. There is one that implements jdt.ls support.

@sztomi
Copy link

sztomi commented Nov 19, 2017

@bstaletic You misunderstand. That PR adds a Language Server Client to YCMD, while this issue we are commenting on proposes that YCMD implements the Language Server Protocol so that all editors that support LSP can be YCMD clients.

@puremourning
Copy link
Member

how many editors are there that would benefit from this ? pretty sure someone already wrapped ycmd with a LS clone for vscode.

anyway, what Val said originally stands:

it's not solving any problems we have so I see no benefit to implementing it.

Indeed implementing it requires a significant change of ethos for the API and that would actually make client implementations more difficult. In particular, the Vim client which is the one we maintain.

@sztomi
Copy link

sztomi commented Nov 19, 2017

https://langserver.org/ lists editor support.

already wrapped ycmd with a LS clone for vscode

Most ycmd clients apart from the official vim client are very bad quality, littered with problems and most often abandoned (I tried the ones for Sublime Text, vscode and Atom). This is the issue that supporting LSP solves: editors invest in supporting LSP in general, so any server providing LS will be well-supported.

@puremourning
Copy link
Member

puremourning commented Nov 22, 2017

My experience of implementing a LSP client is that each client requires intimate knowledge of the server it speaks to. I have tried 5 different servers, and each requires customisation based on its own random behaviours, so I'm honestly not sure that this is entirely viable at this stage.

I'm also not convinced there is appetite within the ycmd maintainers to maintain 2 completely different interfaces. At least, there's no such appetite from myself. LSP assumes a lot of features of editors that many ycmd clients don't currently have, and are not easy to build.

FWIW I accept that this is potentially biassed opinion as the maintainers predominantly themselves use Vim which is itself very limited in certain ways vs. other editors. But ultimately, we're the ones that have to build and maintain it :)

@sztomi
Copy link

sztomi commented Nov 23, 2017

Fair enough.

@bstaletic
Copy link
Collaborator

I'm also not convinced there is appetite within the ycmd maintainers to maintain 2 completely different interfaces.

I'm definitely not interested in maintaining two interfaces. It's one or the other and I like our current one better.

@Valloric
Copy link
Member

I'm going to chime in here and say that the main voice for whether LSP support ends up in ycmd would be @puremourning. He has spent a ton of time implementing the protocol so that ycmd can talk to it and he also has years of experience with ycmd itself (being a YCM/ycmd maintainer).

So if he says it's not entirely viable right now, IMO that settles it (at least for now; this can change in the future).

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

No branches or pull requests

6 participants