V: Implement Language Server Protocol for editor integrations

Created on 16 Oct 2019  路  9Comments  路  Source: vlang/v

The idea is to implement Language Server Protocol A.K.A LSP.

Why LSP?

LSP creates the opportunity to reduce the m-times-n complexity problem of providing a high level of support for V language in any editor, IDE, or client endpoint to a simpler m-plus-n problem.

For example, instead of the traditional practice of building a V plugin for VSCode, a V plugin for Sublime Text, a V plugin for Vim, a V plugin for Sourcegraph, and so on, for every language, LSP allows language communities to concentrate their efforts on a single, high performing language server that can provide code completion, hover tooltips, jump-to-definition, find-references, and more, while editor and client communities can concentrate on building a single, high performing, intuitive and idiomatic extension that can communicate with any language server to instantly provide deep language support.

More about LSP

Feature Request

Most helpful comment

We've talked about this in our Discord server and I really want to build one. But in order to build an LSP server is to have a JSON-RPC server (which I'm currently working on), a parser (which is already available through the compiler module), and lots of time to read the LSP specification.

All 9 comments

We've talked about this in our Discord server and I really want to build one. But in order to build an LSP server is to have a JSON-RPC server (which I'm currently working on), a parser (which is already available through the compiler module), and lots of time to read the LSP specification.

@nedpals we could use the reference implementation of golang version called gopls.

@itsbalamurali Let's continue the discussion here. #465

Would love for there to be a tracking issue for LSP support, #465 seems to only be focused on syntax.

@nedpals #465 discusses a tool for AST classification and syntax highlighting - this is more or less unrelated to this issue, which is about semantic analysis, online analysis and IDE support, etc. - please reopen this issue. (type inference, for one, can't be done with simple AST analysis.)

After I read the discussion on that issue, I think the LSP discussion might have on its own. Apologies! Reopening it now.

Nice to see this work has started! 馃憤

Good IDE support is after all half the fun in a language with good type safety 馃榿

Yes it will be awesome. It's almost done, and it's using the new AST parser.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

choleraehyq picture choleraehyq  路  3Comments

aurora picture aurora  路  3Comments

clpo13 picture clpo13  路  3Comments

taojy123 picture taojy123  路  3Comments

vtereshkov picture vtereshkov  路  3Comments