-- AB-hover -- ```go 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\"\) -- AField-hover -- ```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\"\) -- AField2-hover -- ```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\"\) -- AGoodbye-hover -- ```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\"\) -- AHello-hover -- ```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\"\) -- AHey-hover -- ```go func (a.R).Hey() ``` [`(a.R).Hey` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#R.Hey) -- AHi-hover -- ```go func (a.A).Hi() ``` [`(a.A).Hi` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#A.Hi) -- AImport-definition -- godef/b/b.go:5:2-43: defined here as ```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?utm_source=gopls) -- AImport-definition-json -- { "span": { "uri": "file://godef/b/b.go", "start": { "line": 5, "column": 2, "offset": 112 }, "end": { "line": 5, "column": 43, "offset": 153 } }, "description": "```go\npackage a (\"golang.org/x/tools/internal/lsp/godef/a\")\n```\n\n[`a` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls)" } -- AImport-hover -- ```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?utm_source=gopls) -- AString-definition -- godef/a/a.go:26:6-7: defined here as ```go type A string //@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": { "uri": "file://godef/a/a.go", "start": { "line": 26, "column": 6, "offset": 452 }, "end": { "line": 26, "column": 7, "offset": 453 } }, "description": "```go\ntype A string //@mark(AString, \"A\")\n\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)" } -- AString-hover -- ```go type A string //@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() ``` [`a.AStuff` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#AStuff) -- AStuff-definition-json -- { "span": { "uri": "file://godef/a/a.go", "start": { "line": 28, "column": 6, "offset": 489 }, "end": { "line": 28, "column": 12, "offset": 495 } }, "description": "```go\nfunc a.AStuff()\n```\n\n[`a.AStuff` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#AStuff)" } -- AStuff-hover -- ```go func a.AStuff() ``` [`a.AStuff` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/a?utm_source=gopls#AStuff) -- 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\"\) -- 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\"\) -- S1S2-definition-json -- { "span": { "uri": "file://godef/b/b.go", "start": { "line": 29, "column": 2, "offset": 617 }, "end": { "line": 29, "column": 4, "offset": 619 } }, "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\\\"\\)" } -- S1S2-hover -- ```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\"\) -- S2-definition -- godef/b/b.go:34:6-8: defined here as ```go type S2 struct { F1 string //@mark(S2F1, "F1") F2 int //@mark(S2F2, "F2") *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?utm_source=gopls#S2) -- S2-definition-json -- { "span": { "uri": "file://godef/b/b.go", "start": { "line": 34, "column": 6, "offset": 741 }, "end": { "line": 34, "column": 8, "offset": 743 } }, "description": "```go\ntype S2 struct {\n\tF1 string //@mark(S2F1, \"F1\")\n\tF2 int //@mark(S2F2, \"F2\")\n\t*a.A //@godef(\"A\", AString),godef(\"a\",AImport)\n}\n```\n\n[`b.S2` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/godef/b?utm_source=gopls#S2)" } -- S2-hover -- ```go type S2 struct { F1 string //@mark(S2F1, "F1") F2 int //@mark(S2F2, "F2") *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?utm_source=gopls#S2) -- S2F1-definition -- 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\"\) -- S2F1-definition-json -- { "span": { "uri": "file://godef/b/b.go", "start": { "line": 35, "column": 2, "offset": 760 }, "end": { "line": 35, "column": 4, "offset": 762 } }, "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\\\"\\)" } -- S2F1-hover -- ```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\"\) -- 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\"\) -- S2F2-definition-json -- { "span": { "uri": "file://godef/b/b.go", "start": { "line": 36, "column": 2, "offset": 793 }, "end": { "line": 36, "column": 4, "offset": 795 } }, "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\\\"\\)" } -- S2F2-hover -- ```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\"\) -- aAlias-definition -- godef/b/b.go:25:6-12: defined here as ```go type aAlias = a.A //@mark(aAlias, "aAlias") ``` -- aAlias-definition-json -- { "span": { "uri": "file://godef/b/b.go", "start": { "line": 25, "column": 6, "offset": 521 }, "end": { "line": 25, "column": 12, "offset": 527 } }, "description": "```go\ntype aAlias = a.A //@mark(aAlias, \"aAlias\")\n\n```" } -- aAlias-hover -- ```go type aAlias = a.A //@mark(aAlias, "aAlias") ``` -- bX-definition -- 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\) -- bX-definition-json -- { "span": { "uri": "file://godef/b/b.go", "start": { "line": 57, "column": 7, "offset": 1228 }, "end": { "line": 57, "column": 8, "offset": 1229 } }, "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\\)" } -- bX-hover -- ```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\) -- myFoo-definition -- godef/b/b.go:4:2-7: defined here as ```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?utm_source=gopls) -- myFoo-definition-json -- { "span": { "uri": "file://godef/b/b.go", "start": { "line": 4, "column": 2, "offset": 21 }, "end": { "line": 4, "column": 7, "offset": 26 } }, "description": "```go\npackage myFoo (\"golang.org/x/tools/internal/lsp/foo\")\n```\n\n[`myFoo` on pkg.go.dev](https://pkg.go.dev/golang.org/x/tools/internal/lsp/foo?utm_source=gopls)" } -- myFoo-hover -- ```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?utm_source=gopls)