internal/lsp: fix accepting line:colum forms to query definition

Change-Id: I425a9ebf77925b16fb7cb6fd5727d2377ab836b1
Reviewed-on: https://go-review.googlesource.com/c/tools/+/168178
Run-TryBot: Ian Cottrell <iancottrell@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Michael Matloob <matloob@golang.org>
This commit is contained in:
Ian Cottrell 2019-03-18 14:40:57 -04:00
parent a41300a290
commit bb1270c20e
2 changed files with 8 additions and 6 deletions

View File

@ -67,12 +67,12 @@ func (d *definition) Run(ctx context.Context, args ...string) error {
if err != nil { if err != nil {
return err return err
} }
tok := f.GetToken(ctx) converter := span.NewTokenConverter(view.FileSet(), f.GetToken(ctx))
pos := tok.Pos(from.Start().Offset()) rng, err := from.Range(converter)
if !pos.IsValid() { if err != nil {
return fmt.Errorf("invalid position %v", from) return err
} }
ident, err := source.Identifier(ctx, view, f, pos) ident, err := source.Identifier(ctx, view, f, rng.Start)
if err != nil { if err != nil {
return fmt.Errorf("%v: %v", from, err) return fmt.Errorf("%v: %v", from, err)
} }

View File

@ -39,7 +39,9 @@ func TestDefinitionHelpExample(t *testing.T) {
thisFile := filepath.Join(dir, "definition.go") thisFile := filepath.Join(dir, "definition.go")
baseArgs := []string{"query", "definition"} baseArgs := []string{"query", "definition"}
expect := regexp.MustCompile(`^[\w/\\:_]+flag[/\\]flag.go:\d+:\d+-\d+: defined here as type flag.FlagSet struct{.*}$`) expect := regexp.MustCompile(`^[\w/\\:_]+flag[/\\]flag.go:\d+:\d+-\d+: defined here as type flag.FlagSet struct{.*}$`)
for _, query := range []string{fmt.Sprintf("%v:#%v", thisFile, cmd.ExampleOffset)} { for _, query := range []string{
fmt.Sprintf("%v:%v:%v", thisFile, cmd.ExampleLine, cmd.ExampleColumn),
fmt.Sprintf("%v:#%v", thisFile, cmd.ExampleOffset)} {
args := append(baseArgs, query) args := append(baseArgs, query)
got := captureStdOut(t, func() { got := captureStdOut(t, func() {
tool.Main(context.Background(), &cmd.Application{}, args) tool.Main(context.Background(), &cmd.Application{}, args)