-
-
Notifications
You must be signed in to change notification settings - Fork 970
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
poc for gopls support #1211
poc for gopls support #1211
Conversation
20faaea
to
3a2a760
Compare
I have pushed a new version of the plugin with some added features to the liteeditor plugin, here is a list of what I've done so far, and what need to be fixed:
Known issues:
Features I still want to add:
@visualfc, let me know if you find those features useful or if it's not needed. For the code review, it's still a be to early but we can discuss about features first and then let's discuss about code :). |
how did this PR end up? Are there plans to add support for gopls? |
I had a lot of performance issues with go-pls (most probably due to miss-configurations) and I had a lot less time to work on it so I wasn't able to fix those and make a proper PR. |
I'm using liteide for my daily gocode, but I encounter a few issues with gocode and gotools from time to time. So as suggested in some opened isues, I looked at gopls and started to write a plugin for its support. So far, I have managed to get a few things working like: autocomplete, go to declaration, hover (with link and documentation), formatting and imports' update on save.
There is a lot to do to get a working and usable plugin, but I though it could be a good start to it. It's a bit hacky as I just mimic a few existing plugins (gofmt, gocode, ...) and things could be simplified/fixed.
The way i did it is:
All the types/payloads are defined in generated.h, this file is generated from the gopls source code, I think there is a better way to go, but it works pretty so far and can but easily updated.
I'm open to discuss about it and how to improve it and also open to pull request to improve the plugin itself as there is a lot to do.