mirror of
https://github.com/golang/go
synced 2024-11-19 06:54:39 -07:00
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
|
// Copyright 2020 The Go Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package regtest
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"golang.org/x/tools/internal/lsp/fake"
|
||
|
)
|
||
|
|
||
|
const symbolSetup = `
|
||
|
-- go.mod --
|
||
|
module mod.com
|
||
|
|
||
|
go 1.12
|
||
|
-- main.go --
|
||
|
package main
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
func main() {
|
||
|
fmt.Println(Message)
|
||
|
}
|
||
|
-- const.go --
|
||
|
package main
|
||
|
|
||
|
const Message = "Hello World."
|
||
|
`
|
||
|
|
||
|
// TestSymbolPos tests that, at a basic level, we get the correct position
|
||
|
// information for symbols matches that are returned.
|
||
|
func TestSymbolPos(t *testing.T) {
|
||
|
matcher := "caseSensitive"
|
||
|
opts := []RunOption{
|
||
|
WithEditorConfig(fake.EditorConfig{SymbolMatcher: &matcher}),
|
||
|
}
|
||
|
|
||
|
runner.Run(t, symbolSetup, func(t *testing.T, env *Env) {
|
||
|
res := env.Symbol("main")
|
||
|
exp := &expSymbolInformation{
|
||
|
Name: pString("main"),
|
||
|
Location: &expLocation{
|
||
|
Path: pString("main.go"),
|
||
|
Range: &expRange{
|
||
|
Start: &expPos{
|
||
|
Line: pInt(4),
|
||
|
Column: pInt(5),
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
if !exp.matchAgainst(res) {
|
||
|
t.Fatalf("failed to find match for main function")
|
||
|
}
|
||
|
}, opts...)
|
||
|
}
|