This test checks hover results for built-in or standard library symbols.
It uses synopsis documentation as full documentation for some of these
built-ins varies across Go versions, where as it just so happens that the
synopsis does not.
In the future we may need to limit this test to the latest Go version to avoid
documentation churn.
-- settings.json --
{
"hoverKind": "SynopsisDocumentation"
}
-- go.mod --
module mod.com
go 1.18
-- std.go --
package std
import (
"fmt"
"go/types"
"sync"
)
func _() {
var err error //@loc(err, "err")
fmt.Printf("%v", err) //@def("err", err)
var _ string //@hover("string", "string", hoverstring)
_ = make([]int, 0) //@hover("make", "make", hovermake)
var mu sync.Mutex
mu.Lock() //@hover("Lock", "Lock", hoverLock)
var typ *types.Named //@hover("types", "types", hoverTypes)
typ.Obj().Name() //@hover("Name", "Name", hoverName)
}
-- @hoverLock --
```go
func (m *sync.Mutex) Lock()
```
---
Lock locks m.
---
[`(sync.Mutex).Lock` on pkg.go.dev](https://pkg.go.dev/sync#Mutex.Lock)
-- @hoverName --
```go
func (obj *types.object) Name() string
```
---
Name returns the object's (package-local, unqualified) name.
---
[`(types.TypeName).Name` on pkg.go.dev](https://pkg.go.dev/go/types#TypeName.Name)
-- @hoverTypes --
```go
package types ("go/types")
```
---
[`types` on pkg.go.dev](https://pkg.go.dev/go/types)
-- @hovermake --
```go
func make(t Type, size ...int) Type
```
---
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)
-- @hoverstring --
```go
type string string
```
---
string is the set of all strings of 8-bit bytes, conventionally but not necessarily representing UTF-8-encoded text.
---
[`string` on pkg.go.dev](https://pkg.go.dev/builtin#string)