1
0
mirror of https://github.com/golang/go synced 2024-10-01 05:28:33 -06:00
go/internal/lsp/fake
Rob Findley 4c83a7e07a internal/lsp/fake: add regexp search and replace
Expressing regtests in terms of textual coordinates is hard to read: the
reader ends up counting lines and characters to understand the text edit
or assertion.

To address, this, add two new functions for fake.Editor: RegexpSearch
and RegexpReplace, as well as a symmetric RegexpSearch function for
workspace files and wrappers for regtext.Env.

This allows expressing edits as well as buffer locations in terms of
easily scannable regexps.

An alternative solution to this problem is to integrate markers ala
packagestest. I tried this, but it ended up being cumbersome to
implement and less usable than regexps, due to the static nature of
markers: after the buffer has been edited all markers must be
updated.

Updates golang/go#36879

Change-Id: Iad087cf0d529737034197beef7b729816a159c69
Reviewed-on: https://go-review.googlesource.com/c/tools/+/224757
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2020-03-24 20:17:55 +00:00
..
client.go x/tools/gopls: add support for $/progress functionality 2020-03-16 21:25:24 +00:00
doc.go internal/lsp/fake: add fakes for testing editor interaction 2020-02-10 17:44:19 +00:00
edit_test.go internal/lsp/regtest: implement formatting and organizeImports 2020-03-02 19:16:53 +00:00
edit.go internal/lsp/fake: add regexp search and replace 2020-03-24 20:17:55 +00:00
editor_test.go internal/lsp/fake: add regexp search and replace 2020-03-24 20:17:55 +00:00
editor.go internal/lsp/fake: add regexp search and replace 2020-03-24 20:17:55 +00:00
workspace_test.go internal/lsp/fake: add fakes for testing editor interaction 2020-02-10 17:44:19 +00:00
workspace.go internal/lsp/fake: add regexp search and replace 2020-03-24 20:17:55 +00:00