internal/lsp: always show signature as the top line in hover

The current behavior is inconsistent across different configurations.
The signature is the top line for FullDocumentation, but the last line
for synopsis documentation.

Change-Id: I2fe1e1c7bfa38ae46fda06b0ecd4c7712b0e74af
GitHub-Last-Rev: d3b768558f21f518d1296b6fc776cf3974f441d9
GitHub-Pull-Request: golang/tools#241
Reviewed-on: https://go-review.googlesource.com/c/tools/+/242104
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
This commit is contained in:
Hyoyoung CHANG 2020-07-13 23:10:05 +00:00 committed by Rebecca Stambler
parent 62a0bb781d
commit 6acd2ab80e
10 changed files with 103 additions and 103 deletions

View File

@ -381,7 +381,7 @@ func FormatHover(h *HoverInformation, options Options) (string, error) {
switch options.HoverKind {
case SynopsisDocumentation:
doc := formatDoc(h.Synopsis, options)
return formatHover(options, doc, link, signature), nil
return formatHover(options, signature, link, doc), nil
case FullDocumentation:
doc := formatDoc(h.FullDocumentation, options)
return formatHover(options, signature, link, doc), nil

View File

@ -23,8 +23,8 @@ func Example()
}
-- funccgoexample-hover --
[`cgo.Example` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/cgo#Example)
```go
func Example()
```
[`cgo.Example` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/cgo#Example)

View File

@ -23,8 +23,8 @@ func cgo.Example()
}
-- funccgoexample-hover --
[`cgo.Example` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/cgo#Example)
```go
func cgo.Example()
```
[`cgo.Example` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/cgo#Example)

View File

@ -1,19 +1,19 @@
-- Lock-hover --
Lock locks m\.
[`(sync.Mutex).Lock` on pkg.go.dev](https://pkg.go.dev/sync#Mutex.Lock)
```go
func (*sync.Mutex).Lock()
```
[`(sync.Mutex).Lock` on pkg.go.dev](https://pkg.go.dev/sync#Mutex.Lock)
Lock locks m\.
-- 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
```
[`(types.TypeName).Name` on pkg.go.dev](https://pkg.go.dev/go/types#TypeName.Name)
Name returns the object\'s \(package\-local, unqualified\) name\.
-- Random-definition --
godef/a/random.go:3:6-12: defined here as ```go
func Random() int
@ -39,11 +39,11 @@ func Random() int
}
-- Random-hover --
[`a.Random` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Random)
```go
func Random() int
```
[`a.Random` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Random)
-- Random2-definition --
godef/a/random.go:8:6-13: defined here as ```go
func Random2(y int) int
@ -69,11 +69,11 @@ func Random2(y int) int
}
-- Random2-hover --
[`a.Random2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Random2)
```go
func Random2(y int) int
```
[`a.Random2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Random2)
-- a-hover --
```go
@ -105,50 +105,50 @@ var err error
}
-- err-hover --
\@err
```go
var err error
```
-- g-hover --
When I hover on g, I should see this comment\.
\@err
-- g-hover --
```go
const g untyped int = 1
```
-- h-hover --
Constant block\.
When I hover on g, I should see this comment\.
-- h-hover --
```go
const h untyped int = 2
```
Constant block\.
-- make-hover --
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#make)
```go
func(t Type, size ...IntegerType) Type
```
[`make` on pkg.go.dev](https://pkg.go.dev/builtin#make)
The make built\-in function allocates and initializes an object of type slice, map, or chan \(only\)\.
-- string-hover --
```go
string
```
-- typesImport-hover --
[`types` on pkg.go.dev](https://pkg.go.dev/go/types)
```go
package types ("go/types")
```
-- x-hover --
x is a variable\.
[`types` on pkg.go.dev](https://pkg.go.dev/go/types)
-- x-hover --
```go
var x string
```
-- z-hover --
z is a variable too\.
x is a variable\.
-- z-hover --
```go
var z string
```
z is a variable too\.

View File

@ -25,13 +25,13 @@ field Member string
}
-- Member-hover --
\@Member
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing.Member)
```go
field Member string
```
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing.Member)
\@Member
-- Method-definition --
godef/a/d.go:15:16-22: defined here as ```go
func (Thing).Method(i int) string
@ -57,11 +57,11 @@ func (Thing).Method(i int) string
}
-- Method-hover --
[`(a.Thing).Method` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing.Method)
```go
func (Thing).Method(i int) string
```
[`(a.Thing).Method` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing.Method)
-- Other-definition --
godef/a/d.go:9:5-10: defined here as ```go
var Other Thing
@ -89,13 +89,13 @@ var Other Thing
}
-- Other-hover --
\@Other
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Other)
```go
var Other Thing
```
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Other)
\@Other
-- Thing-definition --
godef/a/d.go:5:6-11: defined here as ```go
Thing struct {
@ -123,13 +123,13 @@ Thing struct {
}
-- Thing-hover --
[`a.Thing` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing)
```go
Thing struct {
Member string //@Member
}
```
[`a.Thing` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing)
-- Things-definition --
godef/a/d.go:11:6-12: defined here as ```go
func Things(val []string) []Thing
@ -155,10 +155,10 @@ func Things(val []string) []Thing
}
-- Things-hover --
[`a.Things` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Things)
```go
func Things(val []string) []Thing
```
[`a.Things` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Things)
-- a-hover --
Package a is a package for testing go to definition\.

View File

@ -23,11 +23,11 @@ func (*Pos).Sum() int
}
-- PosSum-hover --
[`(a.Pos).Sum` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Pos.Sum)
```go
func (*Pos).Sum() int
```
[`(a.Pos).Sum` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Pos.Sum)
-- PosX-definition --
godef/a/random.go:13:2-3: defined here as ```go
field x int
@ -53,11 +53,11 @@ field x int
}
-- PosX-hover --
\@mark\(PosX, \"x\"\),mark\(PosY, \"y\"\)
```go
field x int
```
\@mark\(PosX, \"x\"\),mark\(PosY, \"y\"\)
-- RandomParamY-definition --
godef/a/random.go:8:14-15: defined here as ```go
var y int

View File

@ -23,11 +23,11 @@ package a ("golang.org/x/tools/internal/lsp/godef/a")
}
-- AImport-hover --
[`a` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a)
```go
package a ("golang.org/x/tools/internal/lsp/godef/a")
```
[`a` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a)
-- AString-definition --
godef/a/a.go:26:6-7: defined here as ```go
A string //@mark(AString, "A")
@ -54,12 +54,12 @@ A string //@mark(AString, "A")
}
-- AString-hover --
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#A)
```go
A string //@mark(AString, "A")
```
[`a.A` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#A)
-- AStuff-definition --
godef/a/a.go:28:6-12: defined here as ```go
func a.AStuff()
@ -85,11 +85,11 @@ func a.AStuff()
}
-- AStuff-hover --
[`a.AStuff` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#AStuff)
```go
func a.AStuff()
```
[`a.AStuff` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#AStuff)
-- S1-definition --
godef/b/b.go:8:6-8: defined here as ```go
S1 struct {
@ -119,8 +119,6 @@ S1 struct {
}
-- S1-hover --
[`b.S1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1)
```go
S1 struct {
F1 int //@mark(S1F1, "F1")
@ -128,6 +126,8 @@ S1 struct {
a.A //@godef("A", AString)
}
```
[`b.S1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1)
-- S1F1-definition --
godef/b/b.go:9:2-4: defined here as ```go
field F1 int
@ -155,13 +155,13 @@ field F1 int
}
-- S1F1-hover --
\@mark\(S1F1, \"F1\"\)
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1.F1)
```go
field F1 int
```
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1.F1)
\@mark\(S1F1, \"F1\"\)
-- S1S2-definition --
godef/b/b.go:10:2-4: defined here as ```go
field S2 S2
@ -189,13 +189,13 @@ field S2 S2
}
-- S1S2-hover --
\@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#S1.S2)
```go
field S2 S2
```
[`(b.S1).S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1.S2)
\@godef\(\"S2\", S2\), mark\(S1S2, \"S2\"\)
-- S2-definition --
godef/b/b.go:14:6-8: defined here as ```go
S2 struct {
@ -225,8 +225,6 @@ S2 struct {
}
-- S2-hover --
[`b.S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S2)
```go
S2 struct {
F1 string //@mark(S2F1, "F1")
@ -234,6 +232,8 @@ S2 struct {
*a.A //@godef("A", AString),godef("a",AImport)
}
```
[`b.S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S2)
-- S2F1-definition --
godef/b/b.go:15:2-4: defined here as ```go
field F1 string
@ -261,13 +261,13 @@ field F1 string
}
-- S2F1-hover --
\@mark\(S2F1, \"F1\"\)
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S2.F1)
```go
field F1 string
```
[`(b.S2).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S2.F1)
\@mark\(S2F1, \"F1\"\)
-- S2F2-definition --
godef/b/b.go:16:2-4: defined here as ```go
field F2 int
@ -295,13 +295,13 @@ field F2 int
}
-- S2F2-hover --
\@mark\(S2F2, \"F2\"\)
[`(b.S1).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1.F2)
```go
field F2 int
```
[`(b.S1).F2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1.F2)
\@mark\(S2F2, \"F2\"\)
-- bX-definition --
godef/b/b.go:37:7-8: defined here as ```go
const X untyped int = 0
@ -329,13 +329,13 @@ const X untyped int = 0
}
-- bX-hover --
\@mark\(bX, \"X\"\),godef\(\"X\", bX\)
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#X)
```go
const X untyped int = 0
```
[`b.X` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#X)
\@mark\(bX, \"X\"\),godef\(\"X\", bX\)
-- myFoo-definition --
godef/b/b.go:4:2-7: defined here as ```go
package myFoo ("golang.org/x/tools/internal/lsp/foo")
@ -361,8 +361,8 @@ package myFoo ("golang.org/x/tools/internal/lsp/foo")
}
-- myFoo-hover --
[`myFoo` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/foo)
```go
package myFoo ("golang.org/x/tools/internal/lsp/foo")
```
[`myFoo` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/foo)

View File

@ -27,8 +27,6 @@ S1 struct {
}
-- S1-hover --
[`b.S1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1)
```go
S1 struct {
F1 int //@mark(S1F1, "F1")
@ -36,6 +34,8 @@ S1 struct {
a.A //@godef("A", AString)
}
```
[`b.S1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1)
-- S1F1-definition --
godef/b/b.go:9:2-4: defined here as ```go
field F1 int
@ -63,10 +63,10 @@ field F1 int
}
-- S1F1-hover --
\@mark\(S1F1, \"F1\"\)
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1.F1)
```go
field F1 int
```
[`(b.S1).F1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b#S1.F1)
\@mark\(S1F1, \"F1\"\)

View File

@ -25,13 +25,13 @@ field Member string
}
-- Member-hover --
\@Member
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing.Member)
```go
field Member string
```
[`(a.Thing).Member` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing.Member)
\@Member
-- Other-definition --
godef/a/d.go:9:5-10: defined here as ```go
var a.Other a.Thing
@ -59,13 +59,13 @@ var a.Other a.Thing
}
-- Other-hover --
\@Other
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Other)
```go
var a.Other a.Thing
```
[`a.Other` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Other)
\@Other
-- Thing-definition --
godef/a/d.go:5:6-11: defined here as ```go
Thing struct {
@ -93,13 +93,13 @@ Thing struct {
}
-- Thing-hover --
[`a.Thing` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing)
```go
Thing struct {
Member string //@Member
}
```
[`a.Thing` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Thing)
-- Things-definition --
godef/a/d.go:11:6-12: defined here as ```go
func a.Things(val []string) []a.Thing
@ -125,8 +125,8 @@ func a.Things(val []string) []a.Thing
}
-- Things-hover --
[`a.Things` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Things)
```go
func a.Things(val []string) []a.Thing
```
[`a.Things` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a#Things)

View File

@ -23,8 +23,8 @@ var myUnclosedIf string
}
-- myUnclosedIf-hover --
\@myUnclosedIf
```go
var myUnclosedIf string
```
\@myUnclosedIf