diff --git a/internal/lsp/source/hover.go b/internal/lsp/source/hover.go
index 66f1e20..2423010 100644
--- a/internal/lsp/source/hover.go
+++ b/internal/lsp/source/hover.go
@@ -381,7 +381,7 @@
 	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 e7fc967..779ca2f 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 @@
 }
 
 -- 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 cf683f3..2687d30 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 @@
 }
 
 -- 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 e21d537..b5909a7 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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 4defe1a..9bcf614 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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-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 @@
 }
 
 -- 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 adba700..bba2e2b 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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 7f14091..47208e9 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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-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 @@
 	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 @@
 }
 
 -- 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 @@
 }
 
 -- 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-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 @@
 	*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 @@
 }
 
 -- 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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 7711d29..fdf2216 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-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 @@
 	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 @@
 }
 
 -- 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 7e87c6c..f0bfe97 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 @@
 }
 
 -- 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 @@
 }
 
 -- 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-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 @@
 }
 
 -- 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 5809cf7..eac0339 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 @@
 }
 
 -- myUnclosedIf-hover --
-\@myUnclosedIf
-
 ```go
 var myUnclosedIf string
 ```
+
+\@myUnclosedIf
