| This test demonstrates file uri over doc link in hover. |
| |
| -- settings.json -- |
| { |
| "hoverKind": "FullDocumentation" |
| } |
| |
| -- flags -- |
| -ignore_extra_diags |
| |
| -- go.mod -- |
| module example.com |
| |
| go 1.18 |
| |
| -- main.go -- |
| package main |
| |
| import ( |
| "example.com/foo" |
| ) |
| |
| func main() { |
| // Call [foo.Foo]//@hover("Foo", "Foo", Foo) |
| foo.Foo()//@hover("Foo", "Foo", fooFoo) |
| } |
| |
| -- foo/foo.go -- |
| // package foo defines function [Foo]//@hover("Foo", "Foo", Foo) |
| package foo |
| |
| import( |
| "example.com/a" |
| "example.com/b" |
| ) |
| |
| // doc comment for Foo will reference the following |
| // |
| // two packages [a] and [b] |
| // |
| // a type [a.A] |
| // |
| // a type's field [a.A.A] |
| // |
| // a type's method [a.A.Bar] |
| // |
| // an interface [a.I] |
| // |
| // an interface's method [a.I.Foo] |
| // |
| // a const [b.B] |
| // |
| // a variable [b.V] |
| // |
| // a doc link [xtools github website] |
| // |
| // [xtools github website]: https://github.com/golang/tools |
| func Foo() {} //@hover("Foo", "Foo", Foo) |
| -- a/a.go -- |
| package a |
| |
| type A struct { |
| A string |
| } |
| |
| func (*A) Bar(){} |
| |
| type I interface { |
| Foo() |
| } |
| |
| -- b/b.go -- |
| package b |
| |
| import ( |
| "example.com/a" |
| ) |
| |
| const B = 3 |
| |
| var V = 4 |
| -- @Foo -- |
| ```go |
| func Foo() |
| ``` |
| |
| --- |
| |
| doc comment for Foo will reference the following |
| |
| two packages [a](file://$WORKDIR/foo/foo.go#5,5) and [b](file://$WORKDIR/foo/foo.go#6,5) |
| |
| a type [a.A](file://$WORKDIR/a/a.go#3,6) |
| |
| a type's field [a.A.A](file://$WORKDIR/a/a.go#4,5) |
| |
| a type's method [a.A.Bar](file://$WORKDIR/a/a.go#7,11) |
| |
| an interface [a.I](file://$WORKDIR/a/a.go#9,6) |
| |
| an interface's method [a.I.Foo](file://$WORKDIR/a/a.go#10,5) |
| |
| a const [b.B](file://$WORKDIR/b/b.go#7,7) |
| |
| a variable [b.V](file://$WORKDIR/b/b.go#9,5) |
| |
| a doc link [xtools github website](https://github.com/golang/tools) |
| |
| |
| --- |
| |
| [`foo.Foo` on pkg.go.dev](https://pkg.go.dev/example.com/foo#Foo) |
| -- @fooFoo -- |
| ```go |
| func foo.Foo() |
| ``` |
| |
| --- |
| |
| doc comment for Foo will reference the following |
| |
| two packages [a](file://$WORKDIR/foo/foo.go#5,5) and [b](file://$WORKDIR/foo/foo.go#6,5) |
| |
| a type [a.A](file://$WORKDIR/a/a.go#3,6) |
| |
| a type's field [a.A.A](file://$WORKDIR/a/a.go#4,5) |
| |
| a type's method [a.A.Bar](file://$WORKDIR/a/a.go#7,11) |
| |
| an interface [a.I](file://$WORKDIR/a/a.go#9,6) |
| |
| an interface's method [a.I.Foo](file://$WORKDIR/a/a.go#10,5) |
| |
| a const [b.B](file://$WORKDIR/b/b.go#7,7) |
| |
| a variable [b.V](file://$WORKDIR/b/b.go#9,5) |
| |
| a doc link [xtools github website](https://github.com/golang/tools) |
| |
| |
| --- |
| |
| [`foo.Foo` on pkg.go.dev](https://pkg.go.dev/example.com/foo#Foo) |