mirror of https://github.com/golang/go.git
internal/lsp: fix links for interface methods
This change handles fixes the link behavior for interface methods. For example, before this change, hovering on "Name" would point to an incorrect link: https://pkg.go.dev/go/types?tab=doc#object.Name. The correct link is https://pkg.go.dev/go/types?tab=doc#TypeName.Name. var typ *types.Named typ.Obj().Name() Change-Id: If28bff6069239d487e5d86cacafc20800493ebe8 Reviewed-on: https://go-review.googlesource.com/c/tools/+/211585 Run-TryBot: Rebecca Stambler <rstambler@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com>
This commit is contained in:
parent
640059499b
commit
38570b7665
|
|
@ -110,7 +110,13 @@ func (i *IdentifierInfo) linkAndSymbolName() (string, string) {
|
|||
case *types.Struct:
|
||||
rTypeName = r.Name()
|
||||
case *types.Named:
|
||||
rTypeName = rtyp.Obj().Name()
|
||||
if named, ok := i.enclosing.(*types.Named); ok {
|
||||
rTypeName = named.Obj().Name()
|
||||
} else if !rtyp.Obj().Exported() {
|
||||
return "", ""
|
||||
} else {
|
||||
rTypeName = rtyp.Obj().Name()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ package a
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"go/types"
|
||||
"sync"
|
||||
)
|
||||
|
||||
|
|
@ -22,4 +23,7 @@ func AStuff() { //@AStuff
|
|||
|
||||
var mu sync.Mutex
|
||||
mu.Lock() //@Lock,hover("Lock", Lock)
|
||||
|
||||
var typ *types.Named
|
||||
typ.Obj().Name() //@Name,hover("Name", Name)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,14 @@ Lock locks m\.
|
|||
```go
|
||||
func (*sync.Mutex).Lock()
|
||||
```
|
||||
-- Name-hover --
|
||||
Name returns the object\'s \(package\-local, unqualified\) name\.
|
||||
|
||||
[`(types.TypeName).Name` on pkg.go.dev](https://pkg.go.dev/go/types#TypeName.Name)
|
||||
|
||||
```go
|
||||
func (*types.object).Name() string
|
||||
```
|
||||
-- Random-definition --
|
||||
godef/a/random.go:3:6-12: defined here as [`a.Random` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Random)
|
||||
|
||||
|
|
@ -67,7 +75,7 @@ func Random2(y int) int
|
|||
func Random2(y int) int
|
||||
```
|
||||
-- err-definition --
|
||||
godef/a/a.go:17:6-9: defined here as ```go
|
||||
godef/a/a.go:18:6-9: defined here as ```go
|
||||
var err error
|
||||
```
|
||||
-- err-definition-json --
|
||||
|
|
@ -75,14 +83,14 @@ var err error
|
|||
"span": {
|
||||
"uri": "file://godef/a/a.go",
|
||||
"start": {
|
||||
"line": 17,
|
||||
"line": 18,
|
||||
"column": 6,
|
||||
"offset": 216
|
||||
"offset": 228
|
||||
},
|
||||
"end": {
|
||||
"line": 17,
|
||||
"line": 18,
|
||||
"column": 9,
|
||||
"offset": 219
|
||||
"offset": 231
|
||||
}
|
||||
},
|
||||
"description": "```go\nvar err error\n```"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
-- A-definition --
|
||||
godef/a/a.go:10:6-7: defined here as [`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#A)
|
||||
godef/a/a.go:11:6-7: defined here as [`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#A)
|
||||
|
||||
```go
|
||||
A string //@A
|
||||
|
|
@ -10,14 +10,14 @@ A string //@A
|
|||
"span": {
|
||||
"uri": "file://godef/a/a.go",
|
||||
"start": {
|
||||
"line": 10,
|
||||
"line": 11,
|
||||
"column": 6,
|
||||
"offset": 88
|
||||
"offset": 100
|
||||
},
|
||||
"end": {
|
||||
"line": 10,
|
||||
"line": 11,
|
||||
"column": 7,
|
||||
"offset": 89
|
||||
"offset": 101
|
||||
}
|
||||
},
|
||||
"description": "[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#A)\n\n```go\nA string //@A\n\n```"
|
||||
|
|
@ -61,7 +61,7 @@ package a ("golang.org/x/tools/internal/lsp/godef/a")
|
|||
package a ("golang.org/x/tools/internal/lsp/godef/a")
|
||||
```
|
||||
-- AStuff-definition --
|
||||
godef/a/a.go:12:6-12: defined here as [`a.AStuff` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#AStuff)
|
||||
godef/a/a.go:13:6-12: defined here as [`a.AStuff` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#AStuff)
|
||||
|
||||
```go
|
||||
func a.AStuff()
|
||||
|
|
@ -71,14 +71,14 @@ func a.AStuff()
|
|||
"span": {
|
||||
"uri": "file://godef/a/a.go",
|
||||
"start": {
|
||||
"line": 12,
|
||||
"line": 13,
|
||||
"column": 6,
|
||||
"offset": 108
|
||||
"offset": 120
|
||||
},
|
||||
"end": {
|
||||
"line": 12,
|
||||
"line": 13,
|
||||
"column": 12,
|
||||
"offset": 114
|
||||
"offset": 126
|
||||
}
|
||||
},
|
||||
"description": "[`a.AStuff` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#AStuff)\n\n```go\nfunc a.AStuff()\n```"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ FoldingRangesCount = 2
|
|||
FormatCount = 6
|
||||
ImportCount = 7
|
||||
SuggestedFixCount = 1
|
||||
DefinitionsCount = 41
|
||||
DefinitionsCount = 42
|
||||
TypeDefinitionsCount = 2
|
||||
HighlightsCount = 44
|
||||
ReferencesCount = 7
|
||||
|
|
|
|||
Loading…
Reference in New Issue