Suzy Mueller submitted this change.
gopls: move reset go.mod diagnostic codelens to module statement
If there is no require statement, then there is no require
statement to attach the codelens to. Move the codelens to the
module statement instead.
Change-Id: I8f77f2cbf73d410ffdebb25f7c426379d06ad400
Reviewed-on: https://go-review.googlesource.com/c/tools/+/453957
TryBot-Result: Gopher Robot <go...@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hya...@gmail.com>
gopls-CI: kokoro <noreply...@google.com>
Run-TryBot: Suzy Mueller <suz...@golang.org>
---
M gopls/internal/lsp/mod/code_lens.go
1 file changed, 33 insertions(+), 9 deletions(-)
diff --git a/gopls/internal/lsp/mod/code_lens.go b/gopls/internal/lsp/mod/code_lens.go
index e61bb04..4e08f4a 100644
--- a/gopls/internal/lsp/mod/code_lens.go
+++ b/gopls/internal/lsp/mod/code_lens.go
@@ -31,15 +31,25 @@
if err != nil || pm.File == nil {
return nil, err
}
+ uri := protocol.URIFromSpanURI(fh.URI())
+ reset, err := command.NewResetGoModDiagnosticsCommand("Reset go.mod diagnostics", command.URIArg{URI: uri})
+ if err != nil {
+ return nil, err
+ }
+ // Put the `Reset go.mod diagnostics` codelens on the module statement.
+ modrng, err := moduleStmtRange(fh, pm)
+ if err != nil {
+ return nil, err
+ }
+ lenses := []protocol.CodeLens{{Range: modrng, Command: reset}}
if len(pm.File.Require) == 0 {
// Nothing to upgrade.
- return nil, nil
+ return lenses, nil
}
var requires []string
for _, req := range pm.File.Require {
requires = append(requires, req.Mod.Path)
}
- uri := protocol.URIFromSpanURI(fh.URI())
checkUpgrade, err := command.NewCheckUpgradesCommand("Check for upgrades", command.CheckUpgradesArgs{
URI: uri,
Modules: requires,
@@ -63,22 +73,18 @@
if err != nil {
return nil, err
}
- reset, err := command.NewResetGoModDiagnosticsCommand("Reset go.mod diagnostics", command.URIArg{URI: uri})
- if err != nil {
- return nil, err
- }
+
// Put the upgrade code lenses above the first require block or statement.
rng, err := firstRequireRange(fh, pm)
if err != nil {
return nil, err
}
- return []protocol.CodeLens{
+ return append(lenses, []protocol.CodeLens{
{Range: rng, Command: checkUpgrade},
{Range: rng, Command: upgradeTransitive},
{Range: rng, Command: upgradeDirect},
- {Range: rng, Command: reset},
- }, nil
+ }...), nil
}
func tidyLens(ctx context.Context, snapshot source.Snapshot, fh source.FileHandle) ([]protocol.CodeLens, error) {
To view, visit change 453957. To unsubscribe, or for help writing mail filters, visit settings.