mirror of https://github.com/golang/go.git
internal/lsp/source: move doc links to the bottom of hover
Fixes golang/go#36992 Change-Id: Ie4b749ba6c094c4559a9b3a3e5b63c0b4cbc5dcf Reviewed-on: https://go-review.googlesource.com/c/tools/+/393642 Trust: Robert Findley <rfindley@google.com> Run-TryBot: Robert Findley <rfindley@google.com> gopls-CI: kokoro <noreply+kokoro@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
This commit is contained in:
parent
779dfa4fb2
commit
5ea13d0d89
|
|
@ -773,7 +773,7 @@ func FormatHover(h *HoverJSON, options *Options) (string, error) {
|
|||
doc := formatDoc(h, options)
|
||||
|
||||
var b strings.Builder
|
||||
parts := []string{signature, link, doc}
|
||||
parts := []string{signature, doc, link}
|
||||
for i, el := range parts {
|
||||
if el != "" {
|
||||
b.WriteString(el)
|
||||
|
|
|
|||
|
|
@ -3,17 +3,17 @@
|
|||
func (*sync.Mutex).Lock()
|
||||
```
|
||||
|
||||
[`(sync.Mutex).Lock` on pkg.go.dev](https://pkg.go.dev/sync?utm_source=gopls#Mutex.Lock)
|
||||
|
||||
Lock locks m\.
|
||||
|
||||
[`(sync.Mutex).Lock` on pkg.go.dev](https://pkg.go.dev/sync?utm_source=gopls#Mutex.Lock)
|
||||
-- Name-hoverdef --
|
||||
```go
|
||||
func (*types.object).Name() string
|
||||
```
|
||||
|
||||
[`(types.TypeName).Name` on pkg.go.dev](https://pkg.go.dev/go/types?utm_source=gopls#TypeName.Name)
|
||||
|
||||
Name returns the object\'s \(package\-local, unqualified\) name\.
|
||||
|
||||
[`(types.TypeName).Name` on pkg.go.dev](https://pkg.go.dev/go/types?utm_source=gopls#TypeName.Name)
|
||||
-- Random-definition --
|
||||
godef/a/random.go:3:6-12: defined here as ```go
|
||||
func Random() int
|
||||
|
|
@ -159,17 +159,17 @@ Constant block\.
|
|||
func(t Type, size ...IntegerType) Type
|
||||
```
|
||||
|
||||
[`make` on pkg.go.dev](https://pkg.go.dev/builtin?utm_source=gopls#make)
|
||||
|
||||
The make built\-in function allocates and initializes an object of type slice, map, or chan \(only\)\.
|
||||
|
||||
[`make` on pkg.go.dev](https://pkg.go.dev/builtin?utm_source=gopls#make)
|
||||
-- string-hoverdef --
|
||||
```go
|
||||
type string string
|
||||
```
|
||||
|
||||
[`string` on pkg.go.dev](https://pkg.go.dev/builtin?utm_source=gopls#string)
|
||||
|
||||
string is the set of all strings of 8\-bit bytes, conventionally but not necessarily representing UTF\-8\-encoded text\.
|
||||
|
||||
[`string` on pkg.go.dev](https://pkg.go.dev/builtin?utm_source=gopls#string)
|
||||
-- typesImport-hoverdef --
|
||||
```go
|
||||
package types ("go/types")
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ godef/a/d.go:6:2-8: defined here as ```go
|
|||
field Member string
|
||||
```
|
||||
|
||||
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
|
||||
|
||||
\@Member
|
||||
|
||||
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
|
||||
-- Member-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -21,7 +21,7 @@ field Member string
|
|||
"offset": 96
|
||||
}
|
||||
},
|
||||
"description": "```go\nfield Member string\n```\n\n[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)\n\n\\@Member"
|
||||
"description": "```go\nfield Member string\n```\n\n\\@Member\n\n[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)"
|
||||
}
|
||||
|
||||
-- Member-hoverdef --
|
||||
|
|
@ -29,9 +29,9 @@ field Member string
|
|||
field Member string
|
||||
```
|
||||
|
||||
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
|
||||
|
||||
\@Member
|
||||
|
||||
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
|
||||
-- Method-definition --
|
||||
godef/a/d.go:15:16-22: defined here as ```go
|
||||
func (Thing).Method(i int) string
|
||||
|
|
@ -67,9 +67,9 @@ godef/a/d.go:9:5-10: defined here as ```go
|
|||
var Other Thing
|
||||
```
|
||||
|
||||
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
|
||||
|
||||
\@Other
|
||||
|
||||
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
|
||||
-- Other-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -85,7 +85,7 @@ var Other Thing
|
|||
"offset": 126
|
||||
}
|
||||
},
|
||||
"description": "```go\nvar Other Thing\n```\n\n[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)\n\n\\@Other"
|
||||
"description": "```go\nvar Other Thing\n```\n\n\\@Other\n\n[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)"
|
||||
}
|
||||
|
||||
-- Other-hoverdef --
|
||||
|
|
@ -93,9 +93,9 @@ var Other Thing
|
|||
var Other Thing
|
||||
```
|
||||
|
||||
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
|
||||
|
||||
\@Other
|
||||
|
||||
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
|
||||
-- Thing-definition --
|
||||
godef/a/d.go:5:6-11: defined here as ```go
|
||||
type Thing struct {
|
||||
|
|
|
|||
|
|
@ -3,41 +3,41 @@
|
|||
func (a.I).B()
|
||||
```
|
||||
|
||||
[`(a.I).B` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#I.B)
|
||||
|
||||
\@mark\(AB, \"B\"\)
|
||||
|
||||
[`(a.I).B` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#I.B)
|
||||
-- AField-hoverdef --
|
||||
```go
|
||||
field Field int
|
||||
```
|
||||
|
||||
[`(a.S).Field` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#S.Field)
|
||||
|
||||
\@mark\(AField, \"Field\"\)
|
||||
|
||||
[`(a.S).Field` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#S.Field)
|
||||
-- AField2-hoverdef --
|
||||
```go
|
||||
field Field2 int
|
||||
```
|
||||
|
||||
[`(a.R).Field2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#R.Field2)
|
||||
|
||||
\@mark\(AField2, \"Field2\"\)
|
||||
|
||||
[`(a.R).Field2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#R.Field2)
|
||||
-- AGoodbye-hoverdef --
|
||||
```go
|
||||
func (a.H).Goodbye()
|
||||
```
|
||||
|
||||
[`(a.H).Goodbye` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#H.Goodbye)
|
||||
|
||||
\@mark\(AGoodbye, \"Goodbye\"\)
|
||||
|
||||
[`(a.H).Goodbye` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#H.Goodbye)
|
||||
-- AHello-hoverdef --
|
||||
```go
|
||||
func (a.J).Hello()
|
||||
```
|
||||
|
||||
[`(a.J).Hello` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#J.Hello)
|
||||
|
||||
\@mark\(AHello, \"Hello\"\)
|
||||
|
||||
[`(a.J).Hello` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#J.Hello)
|
||||
-- AHey-hoverdef --
|
||||
```go
|
||||
func (a.R).Hey()
|
||||
|
|
@ -85,9 +85,9 @@ godef/a/a.go:26:6-7: defined here as ```go
|
|||
type A string
|
||||
```
|
||||
|
||||
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)
|
||||
|
||||
\@mark\(AString, \"A\"\)
|
||||
|
||||
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)
|
||||
-- AString-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -103,7 +103,7 @@ type A string
|
|||
"offset": 468
|
||||
}
|
||||
},
|
||||
"description": "```go\ntype A string\n```\n\n[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)\n\n\\@mark\\(AString, \\\"A\\\"\\)"
|
||||
"description": "```go\ntype A string\n```\n\n\\@mark\\(AString, \\\"A\\\"\\)\n\n[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)"
|
||||
}
|
||||
|
||||
-- AString-hoverdef --
|
||||
|
|
@ -111,9 +111,9 @@ type A string
|
|||
type A string
|
||||
```
|
||||
|
||||
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)
|
||||
|
||||
\@mark\(AString, \"A\"\)
|
||||
|
||||
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A)
|
||||
-- AStuff-definition --
|
||||
godef/a/a.go:28:6-12: defined here as ```go
|
||||
func a.AStuff()
|
||||
|
|
@ -189,9 +189,9 @@ godef/b/b.go:28:2-4: defined here as ```go
|
|||
field F1 int
|
||||
```
|
||||
|
||||
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
|
||||
|
||||
\@mark\(S1F1, \"F1\"\)
|
||||
|
||||
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
|
||||
-- S1F1-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -207,7 +207,7 @@ field F1 int
|
|||
"offset": 608
|
||||
}
|
||||
},
|
||||
"description": "```go\nfield F1 int\n```\n\n[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)\n\n\\@mark\\(S1F1, \\\"F1\\\"\\)"
|
||||
"description": "```go\nfield F1 int\n```\n\n\\@mark\\(S1F1, \\\"F1\\\"\\)\n\n[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)"
|
||||
}
|
||||
|
||||
-- S1F1-hoverdef --
|
||||
|
|
@ -215,17 +215,17 @@ field F1 int
|
|||
field F1 int
|
||||
```
|
||||
|
||||
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
|
||||
|
||||
\@mark\(S1F1, \"F1\"\)
|
||||
|
||||
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
|
||||
-- S1S2-definition --
|
||||
godef/b/b.go:29:2-4: defined here as ```go
|
||||
field S2 S2
|
||||
```
|
||||
|
||||
[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)
|
||||
|
||||
\@godef\(\"S2\", S2\),mark\(S1S2, \"S2\"\)
|
||||
|
||||
[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)
|
||||
-- S1S2-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -241,7 +241,7 @@ field S2 S2
|
|||
"offset": 640
|
||||
}
|
||||
},
|
||||
"description": "```go\nfield S2 S2\n```\n\n[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)\n\n\\@godef\\(\\\"S2\\\", S2\\),mark\\(S1S2, \\\"S2\\\"\\)"
|
||||
"description": "```go\nfield S2 S2\n```\n\n\\@godef\\(\\\"S2\\\", S2\\),mark\\(S1S2, \\\"S2\\\"\\)\n\n[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)"
|
||||
}
|
||||
|
||||
-- S1S2-hoverdef --
|
||||
|
|
@ -249,9 +249,9 @@ field S2 S2
|
|||
field S2 S2
|
||||
```
|
||||
|
||||
[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)
|
||||
|
||||
\@godef\(\"S2\", S2\),mark\(S1S2, \"S2\"\)
|
||||
|
||||
[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.S2)
|
||||
-- S2-definition --
|
||||
godef/b/b.go:34:6-8: defined here as ```go
|
||||
type S2 struct {
|
||||
|
|
@ -295,9 +295,9 @@ godef/b/b.go:35:2-4: defined here as ```go
|
|||
field F1 string
|
||||
```
|
||||
|
||||
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)
|
||||
|
||||
\@mark\(S2F1, \"F1\"\)
|
||||
|
||||
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)
|
||||
-- S2F1-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -313,7 +313,7 @@ field F1 string
|
|||
"offset": 783
|
||||
}
|
||||
},
|
||||
"description": "```go\nfield F1 string\n```\n\n[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)\n\n\\@mark\\(S2F1, \\\"F1\\\"\\)"
|
||||
"description": "```go\nfield F1 string\n```\n\n\\@mark\\(S2F1, \\\"F1\\\"\\)\n\n[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)"
|
||||
}
|
||||
|
||||
-- S2F1-hoverdef --
|
||||
|
|
@ -321,17 +321,17 @@ field F1 string
|
|||
field F1 string
|
||||
```
|
||||
|
||||
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)
|
||||
|
||||
\@mark\(S2F1, \"F1\"\)
|
||||
|
||||
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F1)
|
||||
-- S2F2-definition --
|
||||
godef/b/b.go:36:2-4: defined here as ```go
|
||||
field F2 int
|
||||
```
|
||||
|
||||
[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)
|
||||
|
||||
\@mark\(S2F2, \"F2\"\)
|
||||
|
||||
[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)
|
||||
-- S2F2-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -347,7 +347,7 @@ field F2 int
|
|||
"offset": 816
|
||||
}
|
||||
},
|
||||
"description": "```go\nfield F2 int\n```\n\n[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)\n\n\\@mark\\(S2F2, \\\"F2\\\"\\)"
|
||||
"description": "```go\nfield F2 int\n```\n\n\\@mark\\(S2F2, \\\"F2\\\"\\)\n\n[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)"
|
||||
}
|
||||
|
||||
-- S2F2-hoverdef --
|
||||
|
|
@ -355,9 +355,9 @@ field F2 int
|
|||
field F2 int
|
||||
```
|
||||
|
||||
[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)
|
||||
|
||||
\@mark\(S2F2, \"F2\"\)
|
||||
|
||||
[`(b.S2).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2.F2)
|
||||
-- aAlias-definition --
|
||||
godef/b/b.go:25:6-12: defined here as ```go
|
||||
type aAlias = a.A
|
||||
|
|
@ -393,9 +393,9 @@ godef/b/b.go:57:7-8: defined here as ```go
|
|||
const X untyped int = 0
|
||||
```
|
||||
|
||||
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)
|
||||
|
||||
\@mark\(bX, \"X\"\),godef\(\"X\", bX\)
|
||||
|
||||
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)
|
||||
-- bX-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -411,7 +411,7 @@ const X untyped int = 0
|
|||
"offset": 1250
|
||||
}
|
||||
},
|
||||
"description": "```go\nconst X untyped int = 0\n```\n\n[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)\n\n\\@mark\\(bX, \\\"X\\\"\\),godef\\(\\\"X\\\", bX\\)"
|
||||
"description": "```go\nconst X untyped int = 0\n```\n\n\\@mark\\(bX, \\\"X\\\"\\),godef\\(\\\"X\\\", bX\\)\n\n[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)"
|
||||
}
|
||||
|
||||
-- bX-hoverdef --
|
||||
|
|
@ -419,9 +419,9 @@ const X untyped int = 0
|
|||
const X untyped int = 0
|
||||
```
|
||||
|
||||
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)
|
||||
|
||||
\@mark\(bX, \"X\"\),godef\(\"X\", bX\)
|
||||
|
||||
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#X)
|
||||
-- myFoo-definition --
|
||||
godef/b/b.go:4:2-7: defined here as ```go
|
||||
package myFoo ("golang.org/x/tools/internal/lsp/foo")
|
||||
|
|
|
|||
|
|
@ -43,9 +43,9 @@ godef/b/b.go:28:2-4: defined here as ```go
|
|||
field F1 int
|
||||
```
|
||||
|
||||
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
|
||||
|
||||
\@mark\(S1F1, \"F1\"\)
|
||||
|
||||
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
|
||||
-- S1F1-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -61,7 +61,7 @@ field F1 int
|
|||
"offset": 608
|
||||
}
|
||||
},
|
||||
"description": "```go\nfield F1 int\n```\n\n[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)\n\n\\@mark\\(S1F1, \\\"F1\\\"\\)"
|
||||
"description": "```go\nfield F1 int\n```\n\n\\@mark\\(S1F1, \\\"F1\\\"\\)\n\n[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)"
|
||||
}
|
||||
|
||||
-- S1F1-hoverdef --
|
||||
|
|
@ -69,6 +69,6 @@ field F1 int
|
|||
field F1 int
|
||||
```
|
||||
|
||||
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
|
||||
|
||||
\@mark\(S1F1, \"F1\"\)
|
||||
|
||||
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1.F1)
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ godef/a/d.go:6:2-8: defined here as ```go
|
|||
field Member string
|
||||
```
|
||||
|
||||
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
|
||||
|
||||
\@Member
|
||||
|
||||
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
|
||||
-- Member-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -21,7 +21,7 @@ field Member string
|
|||
"offset": 96
|
||||
}
|
||||
},
|
||||
"description": "```go\nfield Member string\n```\n\n[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)\n\n\\@Member"
|
||||
"description": "```go\nfield Member string\n```\n\n\\@Member\n\n[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)"
|
||||
}
|
||||
|
||||
-- Member-hoverdef --
|
||||
|
|
@ -29,17 +29,17 @@ field Member string
|
|||
field Member string
|
||||
```
|
||||
|
||||
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
|
||||
|
||||
\@Member
|
||||
|
||||
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Thing.Member)
|
||||
-- Other-definition --
|
||||
godef/a/d.go:9:5-10: defined here as ```go
|
||||
var a.Other a.Thing
|
||||
```
|
||||
|
||||
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
|
||||
|
||||
\@Other
|
||||
|
||||
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
|
||||
-- Other-definition-json --
|
||||
{
|
||||
"span": {
|
||||
|
|
@ -55,7 +55,7 @@ var a.Other a.Thing
|
|||
"offset": 126
|
||||
}
|
||||
},
|
||||
"description": "```go\nvar a.Other a.Thing\n```\n\n[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)\n\n\\@Other"
|
||||
"description": "```go\nvar a.Other a.Thing\n```\n\n\\@Other\n\n[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)"
|
||||
}
|
||||
|
||||
-- Other-hoverdef --
|
||||
|
|
@ -63,9 +63,9 @@ var a.Other a.Thing
|
|||
var a.Other a.Thing
|
||||
```
|
||||
|
||||
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
|
||||
|
||||
\@Other
|
||||
|
||||
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#Other)
|
||||
-- Thing-definition --
|
||||
godef/a/d.go:5:6-11: defined here as ```go
|
||||
type Thing struct {
|
||||
|
|
|
|||
|
|
@ -1,18 +1,19 @@
|
|||
-- value-hoverdef --
|
||||
-- Pparam-hoverdef --
|
||||
```go
|
||||
type value[T any] struct {
|
||||
val T //@mark(valueTparam, "T"),hoverdef("T", valueTparam)
|
||||
Q int //@mark(valueQfield, "Q"),hoverdef("Q", valueQfield)
|
||||
}
|
||||
type parameter P interface{~int|string}
|
||||
```
|
||||
-- Pvar-hoverdef --
|
||||
```go
|
||||
type parameter P interface{~int|string}
|
||||
```
|
||||
-- ValueQfield-hoverdef --
|
||||
```go
|
||||
field Q int
|
||||
```
|
||||
|
||||
[`(hover.Value).Q` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/hover_generics?utm_source=gopls#Value.Q)
|
||||
|
||||
\@mark\(ValueQfield, \"Q\"\),hoverdef\(\"Q\", ValueQfield\)
|
||||
|
||||
[`(hover.Value).Q` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/hover_generics?utm_source=gopls#Value.Q)
|
||||
-- ValueTdecl-hoverdef --
|
||||
```go
|
||||
type parameter T any
|
||||
|
|
@ -21,6 +22,13 @@ type parameter T any
|
|||
```go
|
||||
type parameter T any
|
||||
```
|
||||
-- value-hoverdef --
|
||||
```go
|
||||
type value[T any] struct {
|
||||
val T //@mark(valueTparam, "T"),hoverdef("T", valueTparam)
|
||||
Q int //@mark(valueQfield, "Q"),hoverdef("Q", valueQfield)
|
||||
}
|
||||
```
|
||||
-- valueQfield-hoverdef --
|
||||
```go
|
||||
field Q int
|
||||
|
|
@ -35,11 +43,3 @@ type parameter T any
|
|||
```go
|
||||
type parameter T any
|
||||
```
|
||||
-- Pparam-hoverdef --
|
||||
```go
|
||||
type parameter P interface{~int|string}
|
||||
```
|
||||
-- Pvar-hoverdef --
|
||||
```go
|
||||
type parameter P interface{~int|string}
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,30 +1,3 @@
|
|||
-- Q-rename --
|
||||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
package generics
|
||||
|
||||
type G[P any] struct {
|
||||
F int
|
||||
}
|
||||
|
||||
func (G[_]) M() {}
|
||||
|
||||
func F[Q any](Q) {
|
||||
var p Q //@rename("P", "Q")
|
||||
_ = p
|
||||
}
|
||||
|
||||
func _() {
|
||||
var x G[int] //@rename("G", "H")
|
||||
_ = x.F //@rename("F", "K")
|
||||
x.M() //@rename("M", "N")
|
||||
|
||||
var y G[string]
|
||||
_ = y.F
|
||||
y.M()
|
||||
}
|
||||
|
||||
-- H-rename --
|
||||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
|
@ -106,3 +79,30 @@ func _() {
|
|||
y.N()
|
||||
}
|
||||
|
||||
-- Q-rename --
|
||||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
package generics
|
||||
|
||||
type G[P any] struct {
|
||||
F int
|
||||
}
|
||||
|
||||
func (G[_]) M() {}
|
||||
|
||||
func F[Q any](Q) {
|
||||
var p Q //@rename("P", "Q")
|
||||
_ = p
|
||||
}
|
||||
|
||||
func _() {
|
||||
var x G[int] //@rename("G", "H")
|
||||
_ = x.F //@rename("F", "K")
|
||||
x.M() //@rename("M", "N")
|
||||
|
||||
var y G[string]
|
||||
_ = y.F
|
||||
y.M()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ The make built-in function allocates and initializes an object of type slice, ma
|
|||
myFunc(foo int) string
|
||||
|
||||
-- panic(v interface{})-signature --
|
||||
panic(v interface{})
|
||||
panic(v any)
|
||||
|
||||
The panic built-in function stops normal execution of the current goroutine.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue