-
Notifications
You must be signed in to change notification settings - Fork 764
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
tools: reduce the number of 3rd party tools the extension requires #1652
Comments
mac/install/golang.sh: Add in gopkgs and go-outline which the vscode plugin for go uses. There is work underway to replace some of these with gopls, see golang/vscode-go#1652.
Change https://go.dev/cl/538762 mentions this issue: |
Fixes #2799 For #1652 Change-Id: Ib7e046a1df0a63bd3babcf2019851bdcfe7e6726 Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/538762 TryBot-Result: kokoro <[email protected]> Commit-Queue: Hyang-Ah Hana Kim <[email protected]> Reviewed-by: Suzy Mueller <[email protected]>
cc @h9jiang |
@h9jiang what remains on the |
We still offer the user to trigger gotest through command panel. We need to collect feedback of the code action and eventually deprecate the gotest binary. As suggested, maybe we can integrate telemetry in vscode-go extension to understand the usage of |
CC @madelinekalil, who has been working on struct tags recently and could pick up migrating gomodifytags feature set to gopls. @h9jiang I think your ideas for instrumenting telemetry are very much worthwhile. |
VS Code Go uses gopls for most of the language features, but there are a few features that still require 3rd party tools. We propose to migrate those features to gopls, reduce dependency on third party tools further, and improve security, reliability, usability and maintainability of the plugin.
This is a uber-issue to keep track of the progress and track glue work. Contribution/help is welcome!
Recently @marwan-at-work replaced use of
gopkgs
for thego.import.add
command with custom commands implemented inside gopls. See the followings as inspiration:https://github.com/golang/vscode-go/blob/master/src/goToolsInformation.ts has the full list of tools that can be used by the plugin.
gopkgs: tools: replace use of 'gopkgs' with 'go list all' #258
gopkgs -format '{{.Name}};{{.ImportPath}};{{.Dir}}'
gopls.list_known_packages
go-outline: tools: replace
go-outline
withgopls
#1020GoDocumentSymbolProvider
implementation with a modified gopls documentSymbol, by amending the list of imports, and leave all the code untouched until gopls implements all the code lenses and go.generate.tests natively (x/tools/gopls: supply imported package names in documentSymbol results go#40514 (comment))go.generate.tests
from gopls natively and get rid ofGoDocumentSymbolProvider
.guru: x/tools/gopls: add codelens to show number of references to each symbol go#40862
references
codelens #2509gomodifytags: tools: merge
gomodifytags
functionality intogopls
and usegopls
#2002gomodifytags
.- check if there is any reusable code if gomodifytags is refactored and discuss with fatih if so
goplay
go.playground
command)impl: x/tools/gopls: generate method stubs for a given interface go#37537
go.impl.cursor
command)*
Proposal: implement from gopls - two new commandsgopls.list_known_interfaces
gopls.generate_interface_stubs
gotests: tools: migrate test generation features to
gopls
#1594gopls.generate_tests
go.generateTestsFlags
and env vars (GOTEST_TEMPLATE_DIR
,GOTEST_TEMPLATE
)isImportant
,replacedByGopls
info in the tools listThe text was updated successfully, but these errors were encountered: