This repository has been archived by the owner on Oct 12, 2022. It is now read-only.
langserver: add godef-based hover backend #196
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change adds a godef-based hover backend, similar to the godef-based
textDocument/definition
backend added prior. The motivation for thischange is to avoid typechecking the entire program just to serve a single
textDocument/hover
request. After this change, hover and definition areboth very quick and use little resources. Larger requests like
workspace/symbol
,or
textDocument/references
, will continue to use more resources as they mustperform typechecking.
The output style of this hover implementation does vary from our prior
typechecking implementation in slight ways, but overall the implementation
always produces results that are on par or slightly better than our typechecking
implementation.
As with the
textDocument/definition
implementation, we should attempt consolidationof this hover implementation with our typechecking variant further in the future. At
this point, of course, they are too different to share much code or implementation.
Helps #178
Helps microsoft/vscode-go#853