From 6acd2ab80ede7bbd3c059efc473d68366f975c1c Mon Sep 17 00:00:00 2001 From: Hyoyoung CHANG Date: Mon, 13 Jul 2020 23:10:05 +0000 Subject: [PATCH] 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 --- internal/lsp/source/hover.go | 2 +- .../lsp/primarymod/cgo/declarecgo.go.golden | 4 +- .../lsp/primarymod/cgoimport/usecgo.go.golden | 4 +- .../lsp/primarymod/godef/a/a.go.golden | 56 ++++++++-------- .../lsp/primarymod/godef/a/d.go.golden | 28 ++++---- .../lsp/primarymod/godef/a/random.go.golden | 8 +-- .../lsp/primarymod/godef/b/b.go.golden | 64 +++++++++---------- .../lsp/primarymod/godef/b/c.go.golden | 12 ++-- .../lsp/primarymod/godef/b/e.go.golden | 24 +++---- .../godef/broken/unclosedIf.go.golden | 4 +- 10 files changed, 103 insertions(+), 103 deletions(-) diff --git a/internal/lsp/source/hover.go b/internal/lsp/source/hover.go index 66f1e209c0..2423010935 100644 --- a/internal/lsp/source/hover.go +++ b/internal/lsp/source/hover.go @@ -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 diff --git a/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go.golden b/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go.golden index e7fc967a90..779ca2f916 100644 --- a/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go.golden +++ b/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go.golden @@ -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) diff --git a/internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.golden b/internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.golden index cf683f3be2..2687d30390 100644 --- a/internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.golden +++ b/internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.golden @@ -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) diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a.go.golden b/internal/lsp/testdata/lsp/primarymod/godef/a/a.go.golden index e21d537bff..b5909a7624 100644 --- a/internal/lsp/testdata/lsp/primarymod/godef/a/a.go.golden +++ b/internal/lsp/testdata/lsp/primarymod/godef/a/a.go.golden @@ -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\. diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/d.go.golden b/internal/lsp/testdata/lsp/primarymod/godef/a/d.go.golden index 4defe1a867..9bcf61485d 100644 --- a/internal/lsp/testdata/lsp/primarymod/godef/a/d.go.golden +++ b/internal/lsp/testdata/lsp/primarymod/godef/a/d.go.golden @@ -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\. diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/random.go.golden b/internal/lsp/testdata/lsp/primarymod/godef/a/random.go.golden index adba700632..bba2e2be54 100644 --- a/internal/lsp/testdata/lsp/primarymod/godef/a/random.go.golden +++ b/internal/lsp/testdata/lsp/primarymod/godef/a/random.go.golden @@ -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 diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/b.go.golden b/internal/lsp/testdata/lsp/primarymod/godef/b/b.go.golden index 7f14091dc0..47208e985a 100644 --- a/internal/lsp/testdata/lsp/primarymod/godef/b/b.go.golden +++ b/internal/lsp/testdata/lsp/primarymod/godef/b/b.go.golden @@ -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) diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/c.go.golden b/internal/lsp/testdata/lsp/primarymod/godef/b/c.go.golden index 7711d293ea..fdf2216f34 100644 --- a/internal/lsp/testdata/lsp/primarymod/godef/b/c.go.golden +++ b/internal/lsp/testdata/lsp/primarymod/godef/b/c.go.golden @@ -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\"\) diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/e.go.golden b/internal/lsp/testdata/lsp/primarymod/godef/b/e.go.golden index 7e87c6cb7d..f0bfe974b6 100644 --- a/internal/lsp/testdata/lsp/primarymod/godef/b/e.go.golden +++ b/internal/lsp/testdata/lsp/primarymod/godef/b/e.go.golden @@ -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) diff --git a/internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.golden b/internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.golden index 5809cf7ac3..eac0339236 100644 --- a/internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.golden +++ b/internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.golden @@ -23,8 +23,8 @@ var myUnclosedIf string } -- myUnclosedIf-hover -- -\@myUnclosedIf - ```go var myUnclosedIf string ``` + +\@myUnclosedIf