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

Language Server Protocol #26

Closed
ejgallego opened this issue Oct 26, 2016 · 13 comments · Fixed by #318
Closed

Language Server Protocol #26

ejgallego opened this issue Oct 26, 2016 · 13 comments · Fixed by #318

Comments

@ejgallego
Copy link
Collaborator

We should support LSP to some degree.

https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md

@ejgallego
Copy link
Collaborator Author

An OCaml implementation of LSP data structures is here: https://github.com/facebook/hhvm/blob/master/hphp/hack/src/utils/lsp.ml

Would we get then a TODO list, it should be easy to support this in a basic sense. Some more advances capabilites of the LSP are quite hard to do due to Coq internals.

@ejgallego
Copy link
Collaborator Author

This is well on the road and working now; it wouldn't be unreasonable to expect SerAPI to build on the LSP kernel for 0.7.0

@ejgallego ejgallego self-assigned this Feb 14, 2019
@carlpaten
Copy link

I'd like to help with this issue, do you know of some relatively self-contained work that needs to get done to support LSP?

@ejgallego
Copy link
Collaborator Author

@LilRed as I mentioned in the other issue, there is an in-progress branch. If you can I can give you access, but we'd still like to rewrite the whole server implementation before releasing to better account for the nuances of inter-process communication.

@ejgallego ejgallego mentioned this issue May 16, 2019
2 tasks
@carlpaten
Copy link

@ejgallego any chance I can get access to the in-progress branch?

@ejgallego
Copy link
Collaborator Author

@LilRed I could give you access to the tree however that wouldn't help a lot; the main issue here and where work is concentrated now is in the base Coq API for incremental document checking.

Until that is ready, proper LSP is too hard to implement reliably IMO. So first we are working on icheck, then coq-lsp will be built on top of that [and serapi too].

I hope a first "alpha" version of icheck is ready soon, so indeed at that point we could try to make the lsp code work; what are your goals? I'd be great indeed to setup the minimal amount of code so collaboration is possible.

As for now, the Coq branch of the LSP server is basically this code but adapted to Coq without significant changes.

@carlpaten
Copy link

carlpaten commented Oct 9, 2019

what are your goals?

Broadly, to invest in something Coq-related for ~150 hours with between February and April. Also, I'd like to do my part towards moving on from CoqIDE to something more flexible and modern. Not that CoqIDE is particularly bad, in fact it's surprisingly good, but it's not easily extensible and I haven't figured out how to "look under the hood" and work around its warts.

the main issue here and where work is concentrated now is in the base Coq API for incremental document checking

Can you point me to that work? Or is it not publicly accessible?

Best

@ejgallego
Copy link
Collaborator Author

Hi @LilRed , indeed I think your timeframe should work pretty well.

Can you point me to that work? Or is it not publicly accessible?

Sure, I will give you some pointers in the next weeks; the reason the current prototype is not publicily accessible is that it is still not usable and I feel it would make many people lose a lot of time.

Indeed, the current prototype needs a full rewrite once we improve the Coq API itself, but that should happen pretty soon as we have made quite a bit of progress on the Coq side; the Coq PR allowing for the icheck / LSP prototype to function should land in master soon.

@carlpaten
Copy link

the Coq PR allowing for the icheck / LSP prototype to function should land in master soon.

What PR would that be? :)

@ejgallego
Copy link
Collaborator Author

@LilRed for example coq/coq#10681 and coq/coq#10884 and a couple other more that have not been submitted yet.

See also coq/coq#10041

@maximedenes
Copy link
Contributor

Also, I'd like to do my part towards moving on from CoqIDE to something more flexible and modern. Not that CoqIDE is particularly bad, in fact it's surprisingly good, but it's not easily extensible and I haven't figured out how to "look under the hood" and work around its warts.

Note that VsCoq (https://github.com/coq-community/vscoq) is pursuing very similar goals.

@carlpaten
Copy link

@LilRed for example coq/coq#10681 and coq/coq#10884 and a couple other more that have not been submitted yet.

Welp, that's indeed on the Coq side, and rather deeper stuff than I can chew as of right now. If that's where the action is I'm going to start digging into Coq internals as soon as I have time. If you know of any particularly useful introductory material or well-defined low-hanging fruit that a newcomer could likely deal with, let me know.

@ejgallego
Copy link
Collaborator Author

Thanks @LilRed , I'm unsure if there is any resource that would help right now; hopefully the situation does improve before Christmas.

@ejgallego ejgallego modified the milestones: 0.7.0, 0.8.0 Oct 25, 2019
@ejgallego ejgallego modified the milestones: 0.11.0, 0.11.1, 0.12.0 May 13, 2020
@ejgallego ejgallego removed this from the 0.12.0 milestone Aug 27, 2020
ejgallego added a commit that referenced this issue Feb 14, 2023
Thanks to everyone that helped and used this project for almost 7
years!

The following issues are solved by coq-lsp:

closes #252, closes #261, closes #234, closes #202, closes #117,
closes #49, closes #32, closes #26, closes #24, closes #13
ejgallego added a commit that referenced this issue Feb 14, 2023
Thanks to everyone that helped and used this project for almost 7
years!

The following issues are solved by coq-lsp:

closes #252, closes #261, closes #234, closes #202, closes #117,
closes #49, closes #32, closes #26, closes #24, closes #21,
closes #18, closes #13
ejgallego added a commit that referenced this issue Feb 14, 2023
Thanks to everyone that helped and used this project for almost 7
years!

The following issues are solved by coq-lsp:

closes #252, closes #261, closes #234, closes #202, closes #117,
closes #49, closes #32, closes #26, closes #24, closes #21,
closes #18, closes #13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants