Skip to content
This repository has been archived by the owner on May 7, 2021. It is now read-only.

WIP: support Go language server (gopls) #906

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Conversation

joefitzgerald
Copy link
Owner

WIP

zmb3 and others added 3 commits March 14, 2019 19:17
Replace main with auto language client.

Things that are working:
- go to definition
- hover (gopls supports signature only for now, no documentation)
- completion
- diagnostics
- signature help

Things that don't work:
- code highlight (needs troubleshooting)
- formatting (gopls sends error)
- outline view (unimplemented in gopls)
- organize imports action (atom-ide-ui requires a corresponding 
diagnostic)
- references (not implemented in gopls)
- rename (not implemented in gopls)

Functionality not included in LSP that needs to be restored from 
previous main:
- Go-plus panel
- implements
- Build/test on save
- Diagnostics from additional linters
- Implements Query
- Add import dropdown
- Info tab
- Struct tags support
- Code coverage
@tekkamanendless
Copy link

Oh yes! Is there any help that you guys need with getting gopls rolled in? Ever since Go modules, dealing with autocompletion has been a nightmare. I'm pumped.

@zmb3
Copy link
Collaborator

zmb3 commented Feb 5, 2020

Not actively working this, but if somebody wants to pick it up feel free.

The auto-languageclient package gets you almost all of the way there. The challenge you'll run into is that atom-ide-ui is no longer maintained, so if the UI doesn't support something, you've got to try to resurrect a dead project or start over.

Alternatively, you could try https://github.com/MordFustang21/ide-gopls.

@tekkamanendless
Copy link

I would think (perhaps naively) that it should just be a replacement operation (replace the call to gocode with the equivalent call to gopls). Since we're not trying to add anything new or fancy, tweaking atom-ide-ui shouldn't be necessary, right?

Do you have any notes on what doesn't work with this change so far? I'll try to pull it down when I get some down time on this project.

@zmb3
Copy link
Collaborator

zmb3 commented Feb 10, 2020

You want to actually use the auto language client package, as opposed to replacing the gocode call only. This will register to provide more than just autocomplete from gopls (lint rules, go to definition, etc)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants