--- /dev/null
+-- S1-definition --
+godef/b/b.go:27:6-8: defined here as ```go
+type S1 struct {
+ F1 int //@mark(S1F1, "F1")
+ S2 //@godef("S2", S2),mark(S1S2, "S2")
+ a.A //@godef("A", AString)
+ aAlias //@godef("a", aAlias)
+}
+```
+
+[`b.S1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1)
+-- S1-definition-json --
+{
+ "span": {
+ "uri": "file://godef/b/b.go",
+ "start": {
+ "line": 27,
+ "column": 6,
+ "offset": 566
+ },
+ "end": {
+ "line": 27,
+ "column": 8,
+ "offset": 568
+ }
+ },
+ "description": "```go\ntype S1 struct {\n\tF1 int //@mark(S1F1, \"F1\")\n\tS2 //@godef(\"S2\", S2),mark(S1S2, \"S2\")\n\ta.A //@godef(\"A\", AString)\n\taAlias //@godef(\"a\", aAlias)\n}\n```\n\n[`b.S1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1)"
+}
+
+-- S1-hover --
+```go
+type S1 struct {
+ F1 int //@mark(S1F1, "F1")
+ S2 //@godef("S2", S2),mark(S1S2, "S2")
+ a.A //@godef("A", AString)
+ aAlias //@godef("a", aAlias)
+}
+```
+
+[`b.S1` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S1)
+-- S1F1-definition --
+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\"\)
+-- S1F1-definition-json --
+{
+ "span": {
+ "uri": "file://godef/b/b.go",
+ "start": {
+ "line": 28,
+ "column": 2,
+ "offset": 585
+ },
+ "end": {
+ "line": 28,
+ "column": 4,
+ "offset": 587
+ }
+ },
+ "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\\\"\\)"
+}
+
+-- S1F1-hover --
+```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\"\)