1
0
mirror of https://github.com/golang/go synced 2024-11-19 06:54:39 -07:00
go/internal/lsp/regtest/symbol_test.go

59 lines
1.1 KiB
Go
Raw Normal View History

// 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...)
}