Skip to content

Remove the broken references codelens #2509

@hyangah

Description

@hyangah

The references codelens in go.enableCodeLens was a feature that intended to show the number of references for each function/method. This feature was coming from a tool called guru. Unfortunately, the tool is unmaintained and does not support Go Modules. As a result, this feature remained broken for Go modules users (#1643 #1781).

We didn't actively remove this setting until now because we couldn't easily tell whether the relatively low frequency of the related bug reports indicates this feature is still working for some users, or because only few number of users use this feature (this codelens is disabled by default). Go Modules had been on by default since Go 1.16 and Go Developer Survey 2020 results already showed near-universal adoption for Go Modules. Recently we came to the realization that this feature probably won't offer the best possible user experience for users who don't use Go Modules. As noted in microsoft/vscode-go#933 which added this feature, guru had a known scalability issue in handling this.

Leaving this broken feature listed in our user documentation and confusing users will do more harm than good.

In the upcomping release (v0.36.0), we are going to hide this feature from our extension settings and documentation. Note that we won't remove the code for this feature right now. If you are relying on this feature now, the codelens will still appear, but the extension will prompt a deprecation warning message.

In Jan 2023, we will remove the feature from the extension code base to reduce the complexity of our code base.

VS Code offers alternatives like "Find All References" and "Go To References".

Screen Shot 2022-10-24 at 5 57 58 PM

We understand they don't completely replace the convenience of the references codelens. There is an open feature request in gopls (golang/go#40862). If you believe this is critical for your development workflow, please support this feature request by upvoting it.

Tasks

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions