blob: 13f1573cfdd1fb1f152575c781ca2fd7bc3198b2 [file] [log] [blame]
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)