internal/lsp: remove multi-module support in tests
Mostly a rollback of CL 217541. No changes in the actual tests.
Change-Id: I910551d4750822bd2d8c5039d1cf194e42d01500
Reviewed-on: https://go-review.googlesource.com/c/tools/+/256363
Trust: Heschi Kreinick <heschi@google.com>
Run-TryBot: Heschi Kreinick <heschi@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
diff --git a/internal/lsp/cmd/test/cmdtest.go b/internal/lsp/cmd/test/cmdtest.go
index cb911cb..2339413 100644
--- a/internal/lsp/cmd/test/cmdtest.go
+++ b/internal/lsp/cmd/test/cmdtest.go
@@ -53,14 +53,9 @@
}
ctx := tests.Context(t)
ts := NewTestServer(ctx, options)
- data := tests.Load(t, exporter, testdata)
- for _, datum := range data {
- defer datum.Exported.Cleanup()
- t.Run(tests.FormatFolderName(datum.Folder), func(t *testing.T) {
- t.Helper()
- tests.Run(t, NewRunner(exporter, datum, ctx, ts.Addr, options), datum)
- })
- }
+ datum := tests.Load(t, exporter, testdata)
+ defer datum.Exported.Cleanup()
+ tests.Run(t, NewRunner(exporter, datum, ctx, ts.Addr, options), datum)
cmd.CloseTestConnections(ctx)
}
}
diff --git a/internal/lsp/lsp_test.go b/internal/lsp/lsp_test.go
index b829001..7766940 100644
--- a/internal/lsp/lsp_test.go
+++ b/internal/lsp/lsp_test.go
@@ -43,60 +43,55 @@
func testLSP(t *testing.T, exporter packagestest.Exporter) {
ctx := tests.Context(t)
- data := tests.Load(t, exporter, "testdata")
+ datum := tests.Load(t, exporter, "testdata")
+ defer datum.Exported.Cleanup()
- for _, datum := range data {
- defer datum.Exported.Cleanup()
+ cache := cache.New(ctx, nil)
+ session := cache.NewSession(ctx)
+ options := source.DefaultOptions().Clone()
+ tests.DefaultOptions(options)
+ session.SetOptions(options)
+ options.Env = datum.Config.Env
+ view, _, release, err := session.NewView(ctx, datum.Config.Dir, span.URIFromPath(datum.Config.Dir), options)
+ release()
+ if err != nil {
+ t.Fatal(err)
+ }
- cache := cache.New(ctx, nil)
- session := cache.NewSession(ctx)
- options := source.DefaultOptions().Clone()
- tests.DefaultOptions(options)
- session.SetOptions(options)
- options.Env = datum.Config.Env
- view, _, release, err := session.NewView(ctx, datum.Config.Dir, span.URIFromPath(datum.Config.Dir), options)
- release()
- if err != nil {
- t.Fatal(err)
+ defer view.Shutdown(ctx)
+
+ // Enable type error analyses for tests.
+ // TODO(golang/go#38212): Delete this once they are enabled by default.
+ tests.EnableAllAnalyzers(view, options)
+ view.SetOptions(ctx, options)
+
+ // Only run the -modfile specific tests in module mode with Go 1.14 or above.
+ datum.ModfileFlagAvailable = view.ModFile() != "" && testenv.Go1Point() >= 14
+
+ var modifications []source.FileModification
+ for filename, content := range datum.Config.Overlay {
+ kind := source.DetectLanguage("", filename)
+ if kind != source.Go {
+ continue
}
-
- defer view.Shutdown(ctx)
-
- // Enable type error analyses for tests.
- // TODO(golang/go#38212): Delete this once they are enabled by default.
- tests.EnableAllAnalyzers(view, options)
- view.SetOptions(ctx, options)
-
- // Only run the -modfile specific tests in module mode with Go 1.14 or above.
- datum.ModfileFlagAvailable = view.ModFile() != "" && testenv.Go1Point() >= 14
-
- var modifications []source.FileModification
- for filename, content := range datum.Config.Overlay {
- kind := source.DetectLanguage("", filename)
- if kind != source.Go {
- continue
- }
- modifications = append(modifications, source.FileModification{
- URI: span.URIFromPath(filename),
- Action: source.Open,
- Version: -1,
- Text: content,
- LanguageID: "go",
- })
- }
- if err := session.ModifyFiles(ctx, modifications); err != nil {
- t.Fatal(err)
- }
- r := &runner{
- server: NewServer(session, nil),
- data: datum,
- ctx: ctx,
- }
- t.Run(tests.FormatFolderName(datum.Folder), func(t *testing.T) {
- t.Helper()
- tests.Run(t, r, datum)
+ modifications = append(modifications, source.FileModification{
+ URI: span.URIFromPath(filename),
+ Action: source.Open,
+ Version: -1,
+ Text: content,
+ LanguageID: "go",
})
}
+ if err := session.ModifyFiles(ctx, modifications); err != nil {
+ t.Fatal(err)
+ }
+ r := &runner{
+ server: NewServer(session, nil),
+ data: datum,
+ ctx: ctx,
+ }
+ tests.Run(t, r, datum)
+
}
func (r *runner) CallHierarchy(t *testing.T, spn span.Span, expectedCalls *tests.CallHierarchyResult) {
diff --git a/internal/lsp/source/source_test.go b/internal/lsp/source/source_test.go
index ce790bb..37ebc6a 100644
--- a/internal/lsp/source/source_test.go
+++ b/internal/lsp/source/source_test.go
@@ -46,56 +46,51 @@
func testSource(t *testing.T, exporter packagestest.Exporter) {
ctx := tests.Context(t)
- data := tests.Load(t, exporter, "../testdata")
- for _, datum := range data {
- defer datum.Exported.Cleanup()
+ datum := tests.Load(t, exporter, "../testdata")
+ defer datum.Exported.Cleanup()
- cache := cache.New(ctx, nil)
- session := cache.NewSession(ctx)
- options := source.DefaultOptions().Clone()
- tests.DefaultOptions(options)
- options.Env = datum.Config.Env
- view, _, release, err := session.NewView(ctx, "source_test", span.URIFromPath(datum.Config.Dir), options)
- release()
- if err != nil {
- t.Fatal(err)
- }
- defer view.Shutdown(ctx)
+ cache := cache.New(ctx, nil)
+ session := cache.NewSession(ctx)
+ options := source.DefaultOptions().Clone()
+ tests.DefaultOptions(options)
+ options.Env = datum.Config.Env
+ view, _, release, err := session.NewView(ctx, "source_test", span.URIFromPath(datum.Config.Dir), options)
+ release()
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer view.Shutdown(ctx)
- // Enable type error analyses for tests.
- // TODO(golang/go#38212): Delete this once they are enabled by default.
- tests.EnableAllAnalyzers(view, options)
- view.SetOptions(ctx, options)
- var modifications []source.FileModification
- for filename, content := range datum.Config.Overlay {
- kind := source.DetectLanguage("", filename)
- if kind != source.Go {
- continue
- }
- modifications = append(modifications, source.FileModification{
- URI: span.URIFromPath(filename),
- Action: source.Open,
- Version: -1,
- Text: content,
- LanguageID: "go",
- })
+ // Enable type error analyses for tests.
+ // TODO(golang/go#38212): Delete this once they are enabled by default.
+ tests.EnableAllAnalyzers(view, options)
+ view.SetOptions(ctx, options)
+ var modifications []source.FileModification
+ for filename, content := range datum.Config.Overlay {
+ kind := source.DetectLanguage("", filename)
+ if kind != source.Go {
+ continue
}
- if err := session.ModifyFiles(ctx, modifications); err != nil {
- t.Fatal(err)
- }
- snapshot, release := view.Snapshot(ctx)
- defer release()
- r := &runner{
- view: view,
- snapshot: snapshot,
- data: datum,
- ctx: ctx,
- }
- t.Run(tests.FormatFolderName(datum.Folder), func(t *testing.T) {
- t.Helper()
- tests.Run(t, r, datum)
+ modifications = append(modifications, source.FileModification{
+ URI: span.URIFromPath(filename),
+ Action: source.Open,
+ Version: -1,
+ Text: content,
+ LanguageID: "go",
})
}
+ if err := session.ModifyFiles(ctx, modifications); err != nil {
+ t.Fatal(err)
+ }
+ snapshot, release := view.Snapshot(ctx)
+ defer release()
+ r := &runner{
+ view: view,
+ snapshot: snapshot,
+ data: datum,
+ ctx: ctx,
+ }
+ tests.Run(t, r, datum)
}
func (r *runner) CallHierarchy(t *testing.T, spn span.Span, expectedCalls *tests.CallHierarchyResult) {
diff --git a/internal/lsp/testdata/lsp/primarymod/%percent/perc%ent.go b/internal/lsp/testdata/%percent/perc%ent.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/%percent/perc%ent.go
rename to internal/lsp/testdata/%percent/perc%ent.go
diff --git a/internal/lsp/testdata/lsp/primarymod/address/address.go b/internal/lsp/testdata/address/address.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/address/address.go
rename to internal/lsp/testdata/address/address.go
diff --git a/internal/lsp/testdata/lsp/primarymod/analyzer/bad_test.go b/internal/lsp/testdata/analyzer/bad_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/analyzer/bad_test.go
rename to internal/lsp/testdata/analyzer/bad_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/anon/anon.go.in b/internal/lsp/testdata/anon/anon.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/anon/anon.go.in
rename to internal/lsp/testdata/anon/anon.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/append/append.go b/internal/lsp/testdata/append/append.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/append/append.go
rename to internal/lsp/testdata/append/append.go
diff --git a/internal/lsp/testdata/lsp/primarymod/append/append2.go.in b/internal/lsp/testdata/append/append2.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/append/append2.go.in
rename to internal/lsp/testdata/append/append2.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/arraytype/array_type.go.in b/internal/lsp/testdata/arraytype/array_type.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/arraytype/array_type.go.in
rename to internal/lsp/testdata/arraytype/array_type.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/assign/assign.go.in b/internal/lsp/testdata/assign/assign.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/assign/assign.go.in
rename to internal/lsp/testdata/assign/assign.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/assign/internal/secret/secret.go b/internal/lsp/testdata/assign/internal/secret/secret.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/assign/internal/secret/secret.go
rename to internal/lsp/testdata/assign/internal/secret/secret.go
diff --git a/internal/lsp/testdata/lsp/primarymod/bad/bad0.go b/internal/lsp/testdata/bad/bad0.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/bad/bad0.go
rename to internal/lsp/testdata/bad/bad0.go
diff --git a/internal/lsp/testdata/lsp/primarymod/bad/bad1.go b/internal/lsp/testdata/bad/bad1.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/bad/bad1.go
rename to internal/lsp/testdata/bad/bad1.go
diff --git a/internal/lsp/testdata/lsp/primarymod/bad/badimport.go b/internal/lsp/testdata/bad/badimport.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/bad/badimport.go
rename to internal/lsp/testdata/bad/badimport.go
diff --git a/internal/lsp/testdata/lsp/primarymod/badstmt/badstmt.go.in b/internal/lsp/testdata/badstmt/badstmt.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/badstmt/badstmt.go.in
rename to internal/lsp/testdata/badstmt/badstmt.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_2.go.in b/internal/lsp/testdata/badstmt/badstmt_2.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_2.go.in
rename to internal/lsp/testdata/badstmt/badstmt_2.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_3.go.in b/internal/lsp/testdata/badstmt/badstmt_3.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_3.go.in
rename to internal/lsp/testdata/badstmt/badstmt_3.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_4.go.in b/internal/lsp/testdata/badstmt/badstmt_4.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/badstmt/badstmt_4.go.in
rename to internal/lsp/testdata/badstmt/badstmt_4.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/bar/bar.go.in b/internal/lsp/testdata/bar/bar.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/bar/bar.go.in
rename to internal/lsp/testdata/bar/bar.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/basiclit/basiclit.go b/internal/lsp/testdata/basiclit/basiclit.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/basiclit/basiclit.go
rename to internal/lsp/testdata/basiclit/basiclit.go
diff --git a/internal/lsp/testdata/lsp/primarymod/baz/baz.go.in b/internal/lsp/testdata/baz/baz.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/baz/baz.go.in
rename to internal/lsp/testdata/baz/baz.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/builtins/builtin_args.go b/internal/lsp/testdata/builtins/builtin_args.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/builtins/builtin_args.go
rename to internal/lsp/testdata/builtins/builtin_args.go
diff --git a/internal/lsp/testdata/lsp/primarymod/builtins/builtin_types.go b/internal/lsp/testdata/builtins/builtin_types.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/builtins/builtin_types.go
rename to internal/lsp/testdata/builtins/builtin_types.go
diff --git a/internal/lsp/testdata/lsp/primarymod/builtins/builtins.go b/internal/lsp/testdata/builtins/builtins.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/builtins/builtins.go
rename to internal/lsp/testdata/builtins/builtins.go
diff --git a/internal/lsp/testdata/lsp/primarymod/builtins/constants.go b/internal/lsp/testdata/builtins/constants.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/builtins/constants.go
rename to internal/lsp/testdata/builtins/constants.go
diff --git a/internal/lsp/testdata/lsp/primarymod/callhierarchy/callhierarchy.go b/internal/lsp/testdata/callhierarchy/callhierarchy.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/callhierarchy/callhierarchy.go
rename to internal/lsp/testdata/callhierarchy/callhierarchy.go
diff --git a/internal/lsp/testdata/lsp/primarymod/callhierarchy/incoming/incoming.go b/internal/lsp/testdata/callhierarchy/incoming/incoming.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/callhierarchy/incoming/incoming.go
rename to internal/lsp/testdata/callhierarchy/incoming/incoming.go
diff --git a/internal/lsp/testdata/lsp/primarymod/callhierarchy/outgoing/outgoing.go b/internal/lsp/testdata/callhierarchy/outgoing/outgoing.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/callhierarchy/outgoing/outgoing.go
rename to internal/lsp/testdata/callhierarchy/outgoing/outgoing.go
diff --git a/internal/lsp/testdata/lsp/primarymod/casesensitive/casesensitive.go b/internal/lsp/testdata/casesensitive/casesensitive.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/casesensitive/casesensitive.go
rename to internal/lsp/testdata/casesensitive/casesensitive.go
diff --git a/internal/lsp/testdata/lsp/primarymod/cast/cast.go.in b/internal/lsp/testdata/cast/cast.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cast/cast.go.in
rename to internal/lsp/testdata/cast/cast.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go b/internal/lsp/testdata/cgo/declarecgo.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go
rename to internal/lsp/testdata/cgo/declarecgo.go
diff --git a/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go.golden b/internal/lsp/testdata/cgo/declarecgo.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgo/declarecgo.go.golden
rename to internal/lsp/testdata/cgo/declarecgo.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/cgo/declarecgo_nocgo.go b/internal/lsp/testdata/cgo/declarecgo_nocgo.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgo/declarecgo_nocgo.go
rename to internal/lsp/testdata/cgo/declarecgo_nocgo.go
diff --git a/internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.golden b/internal/lsp/testdata/cgoimport/usecgo.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.golden
rename to internal/lsp/testdata/cgoimport/usecgo.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.in b/internal/lsp/testdata/cgoimport/usecgo.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/cgoimport/usecgo.go.in
rename to internal/lsp/testdata/cgoimport/usecgo.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/channel/channel.go b/internal/lsp/testdata/channel/channel.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/channel/channel.go
rename to internal/lsp/testdata/channel/channel.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/double/b/b.go b/internal/lsp/testdata/circular/double/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/double/b/b.go
rename to internal/lsp/testdata/circular/double/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/double/one/one.go b/internal/lsp/testdata/circular/double/one/one.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/double/one/one.go
rename to internal/lsp/testdata/circular/double/one/one.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/self.go b/internal/lsp/testdata/circular/self.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/self.go
rename to internal/lsp/testdata/circular/self.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/triple/a/a.go b/internal/lsp/testdata/circular/triple/a/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/triple/a/a.go
rename to internal/lsp/testdata/circular/triple/a/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/triple/b/b.go b/internal/lsp/testdata/circular/triple/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/triple/b/b.go
rename to internal/lsp/testdata/circular/triple/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/circular/triple/c/c.go b/internal/lsp/testdata/circular/triple/c/c.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/circular/triple/c/c.go
rename to internal/lsp/testdata/circular/triple/c/c.go
diff --git a/internal/lsp/testdata/lsp/primarymod/codelens/codelens_test.go b/internal/lsp/testdata/codelens/codelens_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/codelens/codelens_test.go
rename to internal/lsp/testdata/codelens/codelens_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/comment_completion/comment_completion.go.in b/internal/lsp/testdata/comment_completion/comment_completion.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/comment_completion/comment_completion.go.in
rename to internal/lsp/testdata/comment_completion/comment_completion.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/complit/complit.go.in b/internal/lsp/testdata/complit/complit.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/complit/complit.go.in
rename to internal/lsp/testdata/complit/complit.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/constant/constant.go b/internal/lsp/testdata/constant/constant.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/constant/constant.go
rename to internal/lsp/testdata/constant/constant.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for.go b/internal/lsp/testdata/danglingstmt/dangling_for.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for.go
rename to internal/lsp/testdata/danglingstmt/dangling_for.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init.go b/internal/lsp/testdata/danglingstmt/dangling_for_init.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init.go
rename to internal/lsp/testdata/danglingstmt/dangling_for_init.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init_cond.go b/internal/lsp/testdata/danglingstmt/dangling_for_init_cond.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init_cond.go
rename to internal/lsp/testdata/danglingstmt/dangling_for_init_cond.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init_cond_post.go b/internal/lsp/testdata/danglingstmt/dangling_for_init_cond_post.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_for_init_cond_post.go
rename to internal/lsp/testdata/danglingstmt/dangling_for_init_cond_post.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if.go b/internal/lsp/testdata/danglingstmt/dangling_if.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if.go
rename to internal/lsp/testdata/danglingstmt/dangling_if.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_eof.go b/internal/lsp/testdata/danglingstmt/dangling_if_eof.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_eof.go
rename to internal/lsp/testdata/danglingstmt/dangling_if_eof.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_init.go b/internal/lsp/testdata/danglingstmt/dangling_if_init.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_init.go
rename to internal/lsp/testdata/danglingstmt/dangling_if_init.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_init_cond.go b/internal/lsp/testdata/danglingstmt/dangling_if_init_cond.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_if_init_cond.go
rename to internal/lsp/testdata/danglingstmt/dangling_if_init_cond.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_multiline_if.go b/internal/lsp/testdata/danglingstmt/dangling_multiline_if.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_multiline_if.go
rename to internal/lsp/testdata/danglingstmt/dangling_multiline_if.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_selector_1.go b/internal/lsp/testdata/danglingstmt/dangling_selector_1.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_selector_1.go
rename to internal/lsp/testdata/danglingstmt/dangling_selector_1.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_selector_2.go b/internal/lsp/testdata/danglingstmt/dangling_selector_2.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_selector_2.go
rename to internal/lsp/testdata/danglingstmt/dangling_selector_2.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_switch_init.go b/internal/lsp/testdata/danglingstmt/dangling_switch_init.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_switch_init.go
rename to internal/lsp/testdata/danglingstmt/dangling_switch_init.go
diff --git a/internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_switch_init_tag.go b/internal/lsp/testdata/danglingstmt/dangling_switch_init_tag.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/danglingstmt/dangling_switch_init_tag.go
rename to internal/lsp/testdata/danglingstmt/dangling_switch_init_tag.go
diff --git a/internal/lsp/testdata/lsp/primarymod/deep/deep.go b/internal/lsp/testdata/deep/deep.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/deep/deep.go
rename to internal/lsp/testdata/deep/deep.go
diff --git a/internal/lsp/testdata/lsp/primarymod/errors/errors.go b/internal/lsp/testdata/errors/errors.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/errors/errors.go
rename to internal/lsp/testdata/errors/errors.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_args_returns.go b/internal/lsp/testdata/extract/extract_function/extract_args_returns.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_args_returns.go
rename to internal/lsp/testdata/extract/extract_function/extract_args_returns.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_args_returns.go.golden b/internal/lsp/testdata/extract/extract_function/extract_args_returns.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_args_returns.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_args_returns.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_basic.go b/internal/lsp/testdata/extract/extract_function/extract_basic.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_basic.go
rename to internal/lsp/testdata/extract/extract_function/extract_basic.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_basic.go.golden b/internal/lsp/testdata/extract/extract_function/extract_basic.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_basic.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_basic.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_redefine.go b/internal/lsp/testdata/extract/extract_function/extract_redefine.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_redefine.go
rename to internal/lsp/testdata/extract/extract_function/extract_redefine.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_redefine.go.golden b/internal/lsp/testdata/extract/extract_function/extract_redefine.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_redefine.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_redefine.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_basic.go b/internal/lsp/testdata/extract/extract_function/extract_return_basic.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_basic.go
rename to internal/lsp/testdata/extract/extract_function/extract_return_basic.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_basic.go.golden b/internal/lsp/testdata/extract/extract_function/extract_return_basic.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_basic.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_return_basic.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_complex.go b/internal/lsp/testdata/extract/extract_function/extract_return_complex.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_complex.go
rename to internal/lsp/testdata/extract/extract_function/extract_return_complex.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_complex.go.golden b/internal/lsp/testdata/extract/extract_function/extract_return_complex.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_complex.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_return_complex.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_func_lit.go b/internal/lsp/testdata/extract/extract_function/extract_return_func_lit.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_func_lit.go
rename to internal/lsp/testdata/extract/extract_function/extract_return_func_lit.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_func_lit.go.golden b/internal/lsp/testdata/extract/extract_function/extract_return_func_lit.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_func_lit.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_return_func_lit.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_init.go b/internal/lsp/testdata/extract/extract_function/extract_return_init.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_init.go
rename to internal/lsp/testdata/extract/extract_function/extract_return_init.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_init.go.golden b/internal/lsp/testdata/extract/extract_function/extract_return_init.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_return_init.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_return_init.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_scope.go b/internal/lsp/testdata/extract/extract_function/extract_scope.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_scope.go
rename to internal/lsp/testdata/extract/extract_function/extract_scope.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_scope.go.golden b/internal/lsp/testdata/extract/extract_function/extract_scope.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_scope.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_scope.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_initialization.go b/internal/lsp/testdata/extract/extract_function/extract_smart_initialization.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_initialization.go
rename to internal/lsp/testdata/extract/extract_function/extract_smart_initialization.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_initialization.go.golden b/internal/lsp/testdata/extract/extract_function/extract_smart_initialization.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_initialization.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_smart_initialization.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_return.go b/internal/lsp/testdata/extract/extract_function/extract_smart_return.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_return.go
rename to internal/lsp/testdata/extract/extract_function/extract_smart_return.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_return.go.golden b/internal/lsp/testdata/extract/extract_function/extract_smart_return.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_smart_return.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_smart_return.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_unnecessary_param.go b/internal/lsp/testdata/extract/extract_function/extract_unnecessary_param.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_unnecessary_param.go
rename to internal/lsp/testdata/extract/extract_function/extract_unnecessary_param.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_unnecessary_param.go.golden b/internal/lsp/testdata/extract/extract_function/extract_unnecessary_param.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_function/extract_unnecessary_param.go.golden
rename to internal/lsp/testdata/extract/extract_function/extract_unnecessary_param.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_basic_lit.go b/internal/lsp/testdata/extract/extract_variable/extract_basic_lit.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_basic_lit.go
rename to internal/lsp/testdata/extract/extract_variable/extract_basic_lit.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_basic_lit.go.golden b/internal/lsp/testdata/extract/extract_variable/extract_basic_lit.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_basic_lit.go.golden
rename to internal/lsp/testdata/extract/extract_variable/extract_basic_lit.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_func_call.go b/internal/lsp/testdata/extract/extract_variable/extract_func_call.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_func_call.go
rename to internal/lsp/testdata/extract/extract_variable/extract_func_call.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_func_call.go.golden b/internal/lsp/testdata/extract/extract_variable/extract_func_call.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_func_call.go.golden
rename to internal/lsp/testdata/extract/extract_variable/extract_func_call.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_scope.go b/internal/lsp/testdata/extract/extract_variable/extract_scope.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_scope.go
rename to internal/lsp/testdata/extract/extract_variable/extract_scope.go
diff --git a/internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_scope.go.golden b/internal/lsp/testdata/extract/extract_variable/extract_scope.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/extract/extract_variable/extract_scope.go.golden
rename to internal/lsp/testdata/extract/extract_variable/extract_scope.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fieldlist/field_list.go b/internal/lsp/testdata/fieldlist/field_list.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fieldlist/field_list.go
rename to internal/lsp/testdata/fieldlist/field_list.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a.go b/internal/lsp/testdata/fillstruct/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a.go
rename to internal/lsp/testdata/fillstruct/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a.go.golden b/internal/lsp/testdata/fillstruct/a.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a.go.golden
rename to internal/lsp/testdata/fillstruct/a.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a2.go b/internal/lsp/testdata/fillstruct/a2.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a2.go
rename to internal/lsp/testdata/fillstruct/a2.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a2.go.golden b/internal/lsp/testdata/fillstruct/a2.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a2.go.golden
rename to internal/lsp/testdata/fillstruct/a2.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a3.go b/internal/lsp/testdata/fillstruct/a3.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a3.go
rename to internal/lsp/testdata/fillstruct/a3.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a3.go.golden b/internal/lsp/testdata/fillstruct/a3.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a3.go.golden
rename to internal/lsp/testdata/fillstruct/a3.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a4.go b/internal/lsp/testdata/fillstruct/a4.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a4.go
rename to internal/lsp/testdata/fillstruct/a4.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/a4.go.golden b/internal/lsp/testdata/fillstruct/a4.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/a4.go.golden
rename to internal/lsp/testdata/fillstruct/a4.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/data/a.go b/internal/lsp/testdata/fillstruct/data/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/data/a.go
rename to internal/lsp/testdata/fillstruct/data/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct.go b/internal/lsp/testdata/fillstruct/fill_struct.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct.go
rename to internal/lsp/testdata/fillstruct/fill_struct.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct.go.golden b/internal/lsp/testdata/fillstruct/fill_struct.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_anon.go b/internal/lsp/testdata/fillstruct/fill_struct_anon.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_anon.go
rename to internal/lsp/testdata/fillstruct/fill_struct_anon.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_anon.go.golden b/internal/lsp/testdata/fillstruct/fill_struct_anon.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_anon.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct_anon.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_nested.go b/internal/lsp/testdata/fillstruct/fill_struct_nested.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_nested.go
rename to internal/lsp/testdata/fillstruct/fill_struct_nested.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_nested.go.golden b/internal/lsp/testdata/fillstruct/fill_struct_nested.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_nested.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct_nested.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_package.go b/internal/lsp/testdata/fillstruct/fill_struct_package.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_package.go
rename to internal/lsp/testdata/fillstruct/fill_struct_package.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_package.go.golden b/internal/lsp/testdata/fillstruct/fill_struct_package.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_package.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct_package.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_spaces.go b/internal/lsp/testdata/fillstruct/fill_struct_spaces.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_spaces.go
rename to internal/lsp/testdata/fillstruct/fill_struct_spaces.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_spaces.go.golden b/internal/lsp/testdata/fillstruct/fill_struct_spaces.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fillstruct/fill_struct_spaces.go.golden
rename to internal/lsp/testdata/fillstruct/fill_struct_spaces.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/a.go b/internal/lsp/testdata/folding/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/folding/a.go
rename to internal/lsp/testdata/folding/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/a.go.golden b/internal/lsp/testdata/folding/a.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/folding/a.go.golden
rename to internal/lsp/testdata/folding/a.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/bad.go.golden b/internal/lsp/testdata/folding/bad.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/folding/bad.go.golden
rename to internal/lsp/testdata/folding/bad.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/folding/bad.go.in b/internal/lsp/testdata/folding/bad.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/folding/bad.go.in
rename to internal/lsp/testdata/folding/bad.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/foo/foo.go b/internal/lsp/testdata/foo/foo.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/foo/foo.go
rename to internal/lsp/testdata/foo/foo.go
diff --git a/internal/lsp/testdata/lsp/primarymod/format/bad_format.go.golden b/internal/lsp/testdata/format/bad_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/bad_format.go.golden
rename to internal/lsp/testdata/format/bad_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/format/bad_format.go.in b/internal/lsp/testdata/format/bad_format.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/bad_format.go.in
rename to internal/lsp/testdata/format/bad_format.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/format/good_format.go b/internal/lsp/testdata/format/good_format.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/good_format.go
rename to internal/lsp/testdata/format/good_format.go
diff --git a/internal/lsp/testdata/lsp/primarymod/format/good_format.go.golden b/internal/lsp/testdata/format/good_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/good_format.go.golden
rename to internal/lsp/testdata/format/good_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/format/newline_format.go.golden b/internal/lsp/testdata/format/newline_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/newline_format.go.golden
rename to internal/lsp/testdata/format/newline_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/format/newline_format.go.in b/internal/lsp/testdata/format/newline_format.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/newline_format.go.in
rename to internal/lsp/testdata/format/newline_format.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/format/one_line.go.golden b/internal/lsp/testdata/format/one_line.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/one_line.go.golden
rename to internal/lsp/testdata/format/one_line.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/format/one_line.go.in b/internal/lsp/testdata/format/one_line.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/format/one_line.go.in
rename to internal/lsp/testdata/format/one_line.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/func_rank/func_rank.go.in b/internal/lsp/testdata/func_rank/func_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/func_rank/func_rank.go.in
rename to internal/lsp/testdata/func_rank/func_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/funcsig/func_sig.go b/internal/lsp/testdata/funcsig/func_sig.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/funcsig/func_sig.go
rename to internal/lsp/testdata/funcsig/func_sig.go
diff --git a/internal/lsp/testdata/lsp/primarymod/funcvalue/func_value.go b/internal/lsp/testdata/funcvalue/func_value.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/funcvalue/func_value.go
rename to internal/lsp/testdata/funcvalue/func_value.go
diff --git a/internal/lsp/testdata/lsp/primarymod/fuzzymatch/fuzzymatch.go b/internal/lsp/testdata/fuzzymatch/fuzzymatch.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/fuzzymatch/fuzzymatch.go
rename to internal/lsp/testdata/fuzzymatch/fuzzymatch.go
diff --git a/internal/lsp/testdata/lsp/primarymod/generate/generate.go b/internal/lsp/testdata/generate/generate.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/generate/generate.go
rename to internal/lsp/testdata/generate/generate.go
diff --git a/internal/lsp/testdata/lsp/primarymod/generated/generated.go b/internal/lsp/testdata/generated/generated.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/generated/generated.go
rename to internal/lsp/testdata/generated/generated.go
diff --git a/internal/lsp/testdata/lsp/primarymod/generated/generator.go b/internal/lsp/testdata/generated/generator.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/generated/generator.go
rename to internal/lsp/testdata/generated/generator.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a.go b/internal/lsp/testdata/godef/a/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a.go
rename to internal/lsp/testdata/godef/a/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a.go.golden b/internal/lsp/testdata/godef/a/a.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a.go.golden
rename to internal/lsp/testdata/godef/a/a.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a_test.go b/internal/lsp/testdata/godef/a/a_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a_test.go
rename to internal/lsp/testdata/godef/a/a_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a_test.go.golden b/internal/lsp/testdata/godef/a/a_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a_test.go.golden
rename to internal/lsp/testdata/godef/a/a_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a_x_test.go b/internal/lsp/testdata/godef/a/a_x_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a_x_test.go
rename to internal/lsp/testdata/godef/a/a_x_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/a_x_test.go.golden b/internal/lsp/testdata/godef/a/a_x_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/a_x_test.go.golden
rename to internal/lsp/testdata/godef/a/a_x_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/d.go b/internal/lsp/testdata/godef/a/d.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/d.go
rename to internal/lsp/testdata/godef/a/d.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/d.go.golden b/internal/lsp/testdata/godef/a/d.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/d.go.golden
rename to internal/lsp/testdata/godef/a/d.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/f.go b/internal/lsp/testdata/godef/a/f.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/f.go
rename to internal/lsp/testdata/godef/a/f.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/f.go.golden b/internal/lsp/testdata/godef/a/f.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/f.go.golden
rename to internal/lsp/testdata/godef/a/f.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/random.go b/internal/lsp/testdata/godef/a/random.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/random.go
rename to internal/lsp/testdata/godef/a/random.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/a/random.go.golden b/internal/lsp/testdata/godef/a/random.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/a/random.go.golden
rename to internal/lsp/testdata/godef/a/random.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/b.go b/internal/lsp/testdata/godef/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/b.go
rename to internal/lsp/testdata/godef/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/b.go.golden b/internal/lsp/testdata/godef/b/b.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/b.go.golden
rename to internal/lsp/testdata/godef/b/b.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/c.go b/internal/lsp/testdata/godef/b/c.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/c.go
rename to internal/lsp/testdata/godef/b/c.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/c.go.golden b/internal/lsp/testdata/godef/b/c.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/c.go.golden
rename to internal/lsp/testdata/godef/b/c.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/c.go.saved b/internal/lsp/testdata/godef/b/c.go.saved
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/c.go.saved
rename to internal/lsp/testdata/godef/b/c.go.saved
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/e.go b/internal/lsp/testdata/godef/b/e.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/e.go
rename to internal/lsp/testdata/godef/b/e.go
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/b/e.go.golden b/internal/lsp/testdata/godef/b/e.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/b/e.go.golden
rename to internal/lsp/testdata/godef/b/e.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.golden b/internal/lsp/testdata/godef/broken/unclosedIf.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.golden
rename to internal/lsp/testdata/godef/broken/unclosedIf.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.in b/internal/lsp/testdata/godef/broken/unclosedIf.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/godef/broken/unclosedIf.go.in
rename to internal/lsp/testdata/godef/broken/unclosedIf.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/good/good0.go b/internal/lsp/testdata/good/good0.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/good/good0.go
rename to internal/lsp/testdata/good/good0.go
diff --git a/internal/lsp/testdata/lsp/primarymod/good/good1.go b/internal/lsp/testdata/good/good1.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/good/good1.go
rename to internal/lsp/testdata/good/good1.go
diff --git a/internal/lsp/testdata/lsp/primarymod/highlights/highlights.go b/internal/lsp/testdata/highlights/highlights.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/highlights/highlights.go
rename to internal/lsp/testdata/highlights/highlights.go
diff --git a/internal/lsp/testdata/lsp/primarymod/implementation/implementation.go b/internal/lsp/testdata/implementation/implementation.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/implementation/implementation.go
rename to internal/lsp/testdata/implementation/implementation.go
diff --git a/internal/lsp/testdata/lsp/primarymod/implementation/other/other.go b/internal/lsp/testdata/implementation/other/other.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/implementation/other/other.go
rename to internal/lsp/testdata/implementation/other/other.go
diff --git a/internal/lsp/testdata/lsp/primarymod/implementation/other/other_test.go b/internal/lsp/testdata/implementation/other/other_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/implementation/other/other_test.go
rename to internal/lsp/testdata/implementation/other/other_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/importedcomplit/imported_complit.go.in b/internal/lsp/testdata/importedcomplit/imported_complit.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/importedcomplit/imported_complit.go.in
rename to internal/lsp/testdata/importedcomplit/imported_complit.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/add_import.go.golden b/internal/lsp/testdata/imports/add_import.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/add_import.go.golden
rename to internal/lsp/testdata/imports/add_import.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/add_import.go.in b/internal/lsp/testdata/imports/add_import.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/add_import.go.in
rename to internal/lsp/testdata/imports/add_import.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/good_imports.go.golden b/internal/lsp/testdata/imports/good_imports.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/good_imports.go.golden
rename to internal/lsp/testdata/imports/good_imports.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/good_imports.go.in b/internal/lsp/testdata/imports/good_imports.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/good_imports.go.in
rename to internal/lsp/testdata/imports/good_imports.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/issue35458.go.golden b/internal/lsp/testdata/imports/issue35458.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/issue35458.go.golden
rename to internal/lsp/testdata/imports/issue35458.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/issue35458.go.in b/internal/lsp/testdata/imports/issue35458.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/issue35458.go.in
rename to internal/lsp/testdata/imports/issue35458.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/multiple_blocks.go.golden b/internal/lsp/testdata/imports/multiple_blocks.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/multiple_blocks.go.golden
rename to internal/lsp/testdata/imports/multiple_blocks.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/multiple_blocks.go.in b/internal/lsp/testdata/imports/multiple_blocks.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/multiple_blocks.go.in
rename to internal/lsp/testdata/imports/multiple_blocks.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/needs_imports.go.golden b/internal/lsp/testdata/imports/needs_imports.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/needs_imports.go.golden
rename to internal/lsp/testdata/imports/needs_imports.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/needs_imports.go.in b/internal/lsp/testdata/imports/needs_imports.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/needs_imports.go.in
rename to internal/lsp/testdata/imports/needs_imports.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/remove_import.go.golden b/internal/lsp/testdata/imports/remove_import.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/remove_import.go.golden
rename to internal/lsp/testdata/imports/remove_import.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/remove_import.go.in b/internal/lsp/testdata/imports/remove_import.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/remove_import.go.in
rename to internal/lsp/testdata/imports/remove_import.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/remove_imports.go.golden b/internal/lsp/testdata/imports/remove_imports.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/remove_imports.go.golden
rename to internal/lsp/testdata/imports/remove_imports.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/remove_imports.go.in b/internal/lsp/testdata/imports/remove_imports.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/remove_imports.go.in
rename to internal/lsp/testdata/imports/remove_imports.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/two_lines.go.golden b/internal/lsp/testdata/imports/two_lines.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/two_lines.go.golden
rename to internal/lsp/testdata/imports/two_lines.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/imports/two_lines.go.in b/internal/lsp/testdata/imports/two_lines.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/imports/two_lines.go.in
rename to internal/lsp/testdata/imports/two_lines.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/index/index.go b/internal/lsp/testdata/index/index.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/index/index.go
rename to internal/lsp/testdata/index/index.go
diff --git a/internal/lsp/testdata/lsp/primarymod/interfacerank/interface_rank.go b/internal/lsp/testdata/interfacerank/interface_rank.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/interfacerank/interface_rank.go
rename to internal/lsp/testdata/interfacerank/interface_rank.go
diff --git a/internal/lsp/testdata/lsp/primarymod/keywords/accidental_keywords.go.in b/internal/lsp/testdata/keywords/accidental_keywords.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/keywords/accidental_keywords.go.in
rename to internal/lsp/testdata/keywords/accidental_keywords.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/keywords/empty_select.go b/internal/lsp/testdata/keywords/empty_select.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/keywords/empty_select.go
rename to internal/lsp/testdata/keywords/empty_select.go
diff --git a/internal/lsp/testdata/lsp/primarymod/keywords/empty_switch.go b/internal/lsp/testdata/keywords/empty_switch.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/keywords/empty_switch.go
rename to internal/lsp/testdata/keywords/empty_switch.go
diff --git a/internal/lsp/testdata/lsp/primarymod/keywords/keywords.go b/internal/lsp/testdata/keywords/keywords.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/keywords/keywords.go
rename to internal/lsp/testdata/keywords/keywords.go
diff --git a/internal/lsp/testdata/lsp/primarymod/labels/labels.go b/internal/lsp/testdata/labels/labels.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/labels/labels.go
rename to internal/lsp/testdata/labels/labels.go
diff --git a/internal/lsp/testdata/lsp/primarymod/links/links.go b/internal/lsp/testdata/links/links.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/links/links.go
rename to internal/lsp/testdata/links/links.go
diff --git a/internal/lsp/testdata/lsp/primarymod/maps/maps.go.in b/internal/lsp/testdata/maps/maps.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/maps/maps.go.in
rename to internal/lsp/testdata/maps/maps.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/multireturn/multi_return.go.in b/internal/lsp/testdata/multireturn/multi_return.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/multireturn/multi_return.go.in
rename to internal/lsp/testdata/multireturn/multi_return.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/nested_complit/nested_complit.go.in b/internal/lsp/testdata/nested_complit/nested_complit.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/nested_complit/nested_complit.go.in
rename to internal/lsp/testdata/nested_complit/nested_complit.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/nodisk/empty b/internal/lsp/testdata/nodisk/empty
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/nodisk/empty
rename to internal/lsp/testdata/nodisk/empty
diff --git a/internal/lsp/testdata/lsp/primarymod/nodisk/nodisk.overlay.go b/internal/lsp/testdata/nodisk/nodisk.overlay.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/nodisk/nodisk.overlay.go
rename to internal/lsp/testdata/nodisk/nodisk.overlay.go
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse/noparse.go.in b/internal/lsp/testdata/noparse/noparse.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse/noparse.go.in
rename to internal/lsp/testdata/noparse/noparse.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse_format/noparse_format.go.golden b/internal/lsp/testdata/noparse_format/noparse_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse_format/noparse_format.go.golden
rename to internal/lsp/testdata/noparse_format/noparse_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse_format/noparse_format.go.in b/internal/lsp/testdata/noparse_format/noparse_format.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse_format/noparse_format.go.in
rename to internal/lsp/testdata/noparse_format/noparse_format.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse_format/parse_format.go.golden b/internal/lsp/testdata/noparse_format/parse_format.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse_format/parse_format.go.golden
rename to internal/lsp/testdata/noparse_format/parse_format.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/noparse_format/parse_format.go.in b/internal/lsp/testdata/noparse_format/parse_format.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/noparse_format/parse_format.go.in
rename to internal/lsp/testdata/noparse_format/parse_format.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/printf/printf.go b/internal/lsp/testdata/printf/printf.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/printf/printf.go
rename to internal/lsp/testdata/printf/printf.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/assign_rank.go.in b/internal/lsp/testdata/rank/assign_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/assign_rank.go.in
rename to internal/lsp/testdata/rank/assign_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/binexpr_rank.go.in b/internal/lsp/testdata/rank/binexpr_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/binexpr_rank.go.in
rename to internal/lsp/testdata/rank/binexpr_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/boolexpr_rank.go b/internal/lsp/testdata/rank/boolexpr_rank.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/boolexpr_rank.go
rename to internal/lsp/testdata/rank/boolexpr_rank.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/convert_rank.go.in b/internal/lsp/testdata/rank/convert_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/convert_rank.go.in
rename to internal/lsp/testdata/rank/convert_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/switch_rank.go.in b/internal/lsp/testdata/rank/switch_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/switch_rank.go.in
rename to internal/lsp/testdata/rank/switch_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/type_assert_rank.go.in b/internal/lsp/testdata/rank/type_assert_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/type_assert_rank.go.in
rename to internal/lsp/testdata/rank/type_assert_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rank/type_switch_rank.go.in b/internal/lsp/testdata/rank/type_switch_rank.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rank/type_switch_rank.go.in
rename to internal/lsp/testdata/rank/type_switch_rank.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/references/another/another.go b/internal/lsp/testdata/references/another/another.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/references/another/another.go
rename to internal/lsp/testdata/references/another/another.go
diff --git a/internal/lsp/testdata/lsp/primarymod/references/other/other.go b/internal/lsp/testdata/references/other/other.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/references/other/other.go
rename to internal/lsp/testdata/references/other/other.go
diff --git a/internal/lsp/testdata/lsp/primarymod/references/refs.go b/internal/lsp/testdata/references/refs.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/references/refs.go
rename to internal/lsp/testdata/references/refs.go
diff --git a/internal/lsp/testdata/lsp/primarymod/references/refs_test.go b/internal/lsp/testdata/references/refs_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/references/refs_test.go
rename to internal/lsp/testdata/references/refs_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/a/random.go.golden b/internal/lsp/testdata/rename/a/random.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/a/random.go.golden
rename to internal/lsp/testdata/rename/a/random.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/a/random.go.in b/internal/lsp/testdata/rename/a/random.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/a/random.go.in
rename to internal/lsp/testdata/rename/a/random.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/b/b.go b/internal/lsp/testdata/rename/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/b/b.go
rename to internal/lsp/testdata/rename/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/b/b.go.golden b/internal/lsp/testdata/rename/b/b.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/b/b.go.golden
rename to internal/lsp/testdata/rename/b/b.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/bad/bad.go.golden b/internal/lsp/testdata/rename/bad/bad.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/bad/bad.go.golden
rename to internal/lsp/testdata/rename/bad/bad.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/bad/bad.go.in b/internal/lsp/testdata/rename/bad/bad.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/bad/bad.go.in
rename to internal/lsp/testdata/rename/bad/bad.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/bad/bad_test.go.in b/internal/lsp/testdata/rename/bad/bad_test.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/bad/bad_test.go.in
rename to internal/lsp/testdata/rename/bad/bad_test.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/c/c.go b/internal/lsp/testdata/rename/c/c.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/c/c.go
rename to internal/lsp/testdata/rename/c/c.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/c/c.go.golden b/internal/lsp/testdata/rename/c/c.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/c/c.go.golden
rename to internal/lsp/testdata/rename/c/c.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/another/another.go b/internal/lsp/testdata/rename/crosspkg/another/another.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/another/another.go
rename to internal/lsp/testdata/rename/crosspkg/another/another.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/another/another.go.golden b/internal/lsp/testdata/rename/crosspkg/another/another.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/another/another.go.golden
rename to internal/lsp/testdata/rename/crosspkg/another/another.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/crosspkg.go b/internal/lsp/testdata/rename/crosspkg/crosspkg.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/crosspkg.go
rename to internal/lsp/testdata/rename/crosspkg/crosspkg.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/crosspkg.go.golden b/internal/lsp/testdata/rename/crosspkg/crosspkg.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/crosspkg.go.golden
rename to internal/lsp/testdata/rename/crosspkg/crosspkg.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/other/other.go b/internal/lsp/testdata/rename/crosspkg/other/other.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/other/other.go
rename to internal/lsp/testdata/rename/crosspkg/other/other.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/crosspkg/other/other.go.golden b/internal/lsp/testdata/rename/crosspkg/other/other.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/crosspkg/other/other.go.golden
rename to internal/lsp/testdata/rename/crosspkg/other/other.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/issue39614/issue39614.go.golden b/internal/lsp/testdata/rename/issue39614/issue39614.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/issue39614/issue39614.go.golden
rename to internal/lsp/testdata/rename/issue39614/issue39614.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/issue39614/issue39614.go.in b/internal/lsp/testdata/rename/issue39614/issue39614.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/issue39614/issue39614.go.in
rename to internal/lsp/testdata/rename/issue39614/issue39614.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/testy/testy.go b/internal/lsp/testdata/rename/testy/testy.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/testy/testy.go
rename to internal/lsp/testdata/rename/testy/testy.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/testy/testy.go.golden b/internal/lsp/testdata/rename/testy/testy.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/testy/testy.go.golden
rename to internal/lsp/testdata/rename/testy/testy.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/testy/testy_test.go b/internal/lsp/testdata/rename/testy/testy_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/testy/testy_test.go
rename to internal/lsp/testdata/rename/testy/testy_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/testy/testy_test.go.golden b/internal/lsp/testdata/rename/testy/testy_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/rename/testy/testy_test.go.golden
rename to internal/lsp/testdata/rename/testy/testy_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/selector/selector.go.in b/internal/lsp/testdata/selector/selector.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/selector/selector.go.in
rename to internal/lsp/testdata/selector/selector.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature.go b/internal/lsp/testdata/signature/signature.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature.go
rename to internal/lsp/testdata/signature/signature.go
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature.go.golden b/internal/lsp/testdata/signature/signature.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature.go.golden
rename to internal/lsp/testdata/signature/signature.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature2.go.golden b/internal/lsp/testdata/signature/signature2.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature2.go.golden
rename to internal/lsp/testdata/signature/signature2.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature2.go.in b/internal/lsp/testdata/signature/signature2.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature2.go.in
rename to internal/lsp/testdata/signature/signature2.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature3.go.golden b/internal/lsp/testdata/signature/signature3.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature3.go.golden
rename to internal/lsp/testdata/signature/signature3.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature3.go.in b/internal/lsp/testdata/signature/signature3.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature3.go.in
rename to internal/lsp/testdata/signature/signature3.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature_test.go b/internal/lsp/testdata/signature/signature_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature_test.go
rename to internal/lsp/testdata/signature/signature_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/signature/signature_test.go.golden b/internal/lsp/testdata/signature/signature_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/signature/signature_test.go.golden
rename to internal/lsp/testdata/signature/signature_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/literal.go b/internal/lsp/testdata/snippets/literal.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/literal.go
rename to internal/lsp/testdata/snippets/literal.go
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/literal.go.golden b/internal/lsp/testdata/snippets/literal.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/literal.go.golden
rename to internal/lsp/testdata/snippets/literal.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/literal_snippets.go.in b/internal/lsp/testdata/snippets/literal_snippets.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/literal_snippets.go.in
rename to internal/lsp/testdata/snippets/literal_snippets.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/snippets.go.golden b/internal/lsp/testdata/snippets/snippets.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/snippets.go.golden
rename to internal/lsp/testdata/snippets/snippets.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/snippets/snippets.go.in b/internal/lsp/testdata/snippets/snippets.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/snippets/snippets.go.in
rename to internal/lsp/testdata/snippets/snippets.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/statements/append.go b/internal/lsp/testdata/statements/append.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/statements/append.go
rename to internal/lsp/testdata/statements/append.go
diff --git a/internal/lsp/testdata/lsp/primarymod/statements/if_err_check_return.go b/internal/lsp/testdata/statements/if_err_check_return.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/statements/if_err_check_return.go
rename to internal/lsp/testdata/statements/if_err_check_return.go
diff --git a/internal/lsp/testdata/lsp/primarymod/statements/if_err_check_return_2.go b/internal/lsp/testdata/statements/if_err_check_return_2.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/statements/if_err_check_return_2.go
rename to internal/lsp/testdata/statements/if_err_check_return_2.go
diff --git a/internal/lsp/testdata/lsp/primarymod/suggestedfix/has_suggested_fix.go b/internal/lsp/testdata/suggestedfix/has_suggested_fix.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/suggestedfix/has_suggested_fix.go
rename to internal/lsp/testdata/suggestedfix/has_suggested_fix.go
diff --git a/internal/lsp/testdata/lsp/primarymod/suggestedfix/has_suggested_fix.go.golden b/internal/lsp/testdata/suggestedfix/has_suggested_fix.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/suggestedfix/has_suggested_fix.go.golden
rename to internal/lsp/testdata/suggestedfix/has_suggested_fix.go.golden
diff --git a/internal/lsp/testdata/lsp/summary.txt.golden b/internal/lsp/testdata/summary.txt.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/summary.txt.golden
rename to internal/lsp/testdata/summary.txt.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/symbols/main.go b/internal/lsp/testdata/symbols/main.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/symbols/main.go
rename to internal/lsp/testdata/symbols/main.go
diff --git a/internal/lsp/testdata/lsp/primarymod/symbols/main.go.golden b/internal/lsp/testdata/symbols/main.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/symbols/main.go.golden
rename to internal/lsp/testdata/symbols/main.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/testy/testy.go b/internal/lsp/testdata/testy/testy.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/testy/testy.go
rename to internal/lsp/testdata/testy/testy.go
diff --git a/internal/lsp/testdata/lsp/primarymod/testy/testy_test.go b/internal/lsp/testdata/testy/testy_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/testy/testy_test.go
rename to internal/lsp/testdata/testy/testy_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/testy/testy_test.go.golden b/internal/lsp/testdata/testy/testy_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/testy/testy_test.go.golden
rename to internal/lsp/testdata/testy/testy_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/typeassert/type_assert.go b/internal/lsp/testdata/typeassert/type_assert.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/typeassert/type_assert.go
rename to internal/lsp/testdata/typeassert/type_assert.go
diff --git a/internal/lsp/testdata/lsp/primarymod/typeerrors/noresultvalues.go b/internal/lsp/testdata/typeerrors/noresultvalues.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/typeerrors/noresultvalues.go
rename to internal/lsp/testdata/typeerrors/noresultvalues.go
diff --git a/internal/lsp/testdata/lsp/primarymod/typeerrors/noresultvalues.go.golden b/internal/lsp/testdata/typeerrors/noresultvalues.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/typeerrors/noresultvalues.go.golden
rename to internal/lsp/testdata/typeerrors/noresultvalues.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/types/types.go b/internal/lsp/testdata/types/types.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/types/types.go
rename to internal/lsp/testdata/types/types.go
diff --git a/internal/lsp/testdata/lsp/primarymod/undeclared/var.go b/internal/lsp/testdata/undeclared/var.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/undeclared/var.go
rename to internal/lsp/testdata/undeclared/var.go
diff --git a/internal/lsp/testdata/lsp/primarymod/undeclared/var.go.golden b/internal/lsp/testdata/undeclared/var.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/undeclared/var.go.golden
rename to internal/lsp/testdata/undeclared/var.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/unimported/export_test.go b/internal/lsp/testdata/unimported/export_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unimported/export_test.go
rename to internal/lsp/testdata/unimported/export_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/unimported/unimported.go.in b/internal/lsp/testdata/unimported/unimported.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unimported/unimported.go.in
rename to internal/lsp/testdata/unimported/unimported.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/unimported/unimported_cand_type.go b/internal/lsp/testdata/unimported/unimported_cand_type.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unimported/unimported_cand_type.go
rename to internal/lsp/testdata/unimported/unimported_cand_type.go
diff --git a/internal/lsp/testdata/lsp/primarymod/unimported/x_test.go b/internal/lsp/testdata/unimported/x_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unimported/x_test.go
rename to internal/lsp/testdata/unimported/x_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/unresolved/unresolved.go.in b/internal/lsp/testdata/unresolved/unresolved.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unresolved/unresolved.go.in
rename to internal/lsp/testdata/unresolved/unresolved.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/unsafe/unsafe.go b/internal/lsp/testdata/unsafe/unsafe.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/unsafe/unsafe.go
rename to internal/lsp/testdata/unsafe/unsafe.go
diff --git a/internal/lsp/testdata/lsp/primarymod/variadic/variadic.go.in b/internal/lsp/testdata/variadic/variadic.go.in
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/variadic/variadic.go.in
rename to internal/lsp/testdata/variadic/variadic.go.in
diff --git a/internal/lsp/testdata/lsp/primarymod/variadic/variadic_intf.go b/internal/lsp/testdata/variadic/variadic_intf.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/variadic/variadic_intf.go
rename to internal/lsp/testdata/variadic/variadic_intf.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/EmptyQuery.golden b/internal/lsp/testdata/workspacesymbol/EmptyQuery.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/EmptyQuery.golden
rename to internal/lsp/testdata/workspacesymbol/EmptyQuery.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a.go b/internal/lsp/testdata/workspacesymbol/a/a.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a.go
rename to internal/lsp/testdata/workspacesymbol/a/a.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a.go.golden b/internal/lsp/testdata/workspacesymbol/a/a.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a.go.golden
rename to internal/lsp/testdata/workspacesymbol/a/a.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_test.go b/internal/lsp/testdata/workspacesymbol/a/a_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_test.go
rename to internal/lsp/testdata/workspacesymbol/a/a_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_test.go.golden b/internal/lsp/testdata/workspacesymbol/a/a_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_test.go.golden
rename to internal/lsp/testdata/workspacesymbol/a/a_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_x_test.go b/internal/lsp/testdata/workspacesymbol/a/a_x_test.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_x_test.go
rename to internal/lsp/testdata/workspacesymbol/a/a_x_test.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_x_test.go.golden b/internal/lsp/testdata/workspacesymbol/a/a_x_test.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/a/a_x_test.go.golden
rename to internal/lsp/testdata/workspacesymbol/a/a_x_test.go.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/b/b.go b/internal/lsp/testdata/workspacesymbol/b/b.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/b/b.go
rename to internal/lsp/testdata/workspacesymbol/b/b.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/b/b.go.golden b/internal/lsp/testdata/workspacesymbol/b/b.go.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/b/b.go.golden
rename to internal/lsp/testdata/workspacesymbol/b/b.go.golden
diff --git "a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/\041dunk.golden" "b/internal/lsp/testdata/workspacesymbol/casesensitive/\041dunk.golden"
similarity index 100%
rename from "internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/\041dunk.golden"
rename to "internal/lsp/testdata/workspacesymbol/casesensitive/\041dunk.golden"
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/casesensitive.go b/internal/lsp/testdata/workspacesymbol/casesensitive/casesensitive.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/casesensitive.go
rename to internal/lsp/testdata/workspacesymbol/casesensitive/casesensitive.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/dunk.golden b/internal/lsp/testdata/workspacesymbol/casesensitive/dunk.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/casesensitive/dunk.golden
rename to internal/lsp/testdata/workspacesymbol/casesensitive/dunk.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/fuzzy.go b/internal/lsp/testdata/workspacesymbol/fuzzy/fuzzy.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/fuzzy.go
rename to internal/lsp/testdata/workspacesymbol/fuzzy/fuzzy.go
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/randoma.golden b/internal/lsp/testdata/workspacesymbol/fuzzy/randoma.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/randoma.golden
rename to internal/lsp/testdata/workspacesymbol/fuzzy/randoma.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/randomb.golden b/internal/lsp/testdata/workspacesymbol/fuzzy/randomb.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/randomb.golden
rename to internal/lsp/testdata/workspacesymbol/fuzzy/randomb.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/rgop.golden b/internal/lsp/testdata/workspacesymbol/fuzzy/rgop.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/fuzzy/rgop.golden
rename to internal/lsp/testdata/workspacesymbol/fuzzy/rgop.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/randomgophervar.golden b/internal/lsp/testdata/workspacesymbol/randomgophervar.golden
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/randomgophervar.golden
rename to internal/lsp/testdata/workspacesymbol/randomgophervar.golden
diff --git a/internal/lsp/testdata/lsp/primarymod/workspacesymbol/workspacesymbol.go b/internal/lsp/testdata/workspacesymbol/workspacesymbol.go
similarity index 100%
rename from internal/lsp/testdata/lsp/primarymod/workspacesymbol/workspacesymbol.go
rename to internal/lsp/testdata/workspacesymbol/workspacesymbol.go
diff --git a/internal/lsp/tests/tests.go b/internal/lsp/tests/tests.go
index 8f899ad..9f7a648 100644
--- a/internal/lsp/tests/tests.go
+++ b/internal/lsp/tests/tests.go
@@ -110,7 +110,6 @@
t testing.TB
fragments map[string]string
dir string
- Folder string
golden map[string]*Golden
ModfileFlagAvailable bool
@@ -243,216 +242,177 @@
o.ExperimentalWorkspaceModule = true
}
-// Load creates the folder structure required when testing with modules.
-// The directory structure of a test needs to look like the example below:
-//
-// - dir
-// - primarymod
-// - .go files
-// - packages
-// - go.mod (optional)
-// - modules
-// - repoa
-// - mod1
-// - .go files
-// - packages
-// - go.mod (optional)
-// - mod2
-// - repob
-// - mod1
-//
-// All the files that are primarily being tested should be in the primarymod folder,
-// any auxillary packages should be declared in the modules folder.
-// The modules folder requires each module to have the following format: repo/module
-// Then inside each repo/module, there can be any number of packages and files that are
-// needed to test the primarymod.
-func Load(t testing.TB, exporter packagestest.Exporter, dir string) []*Data {
+func Load(t testing.TB, exporter packagestest.Exporter, dir string) *Data {
t.Helper()
- folders, err := testFolders(dir)
- if err != nil {
- t.Fatalf("could not get test folders for %v, %v", dir, err)
+ datum := &Data{
+ CallHierarchy: make(CallHierarchy),
+ CodeLens: make(CodeLens),
+ Diagnostics: make(Diagnostics),
+ CompletionItems: make(CompletionItems),
+ Completions: make(Completions),
+ CompletionSnippets: make(CompletionSnippets),
+ UnimportedCompletions: make(UnimportedCompletions),
+ DeepCompletions: make(DeepCompletions),
+ FuzzyCompletions: make(FuzzyCompletions),
+ RankCompletions: make(RankCompletions),
+ CaseSensitiveCompletions: make(CaseSensitiveCompletions),
+ Definitions: make(Definitions),
+ Implementations: make(Implementations),
+ Highlights: make(Highlights),
+ References: make(References),
+ Renames: make(Renames),
+ PrepareRenames: make(PrepareRenames),
+ SuggestedFixes: make(SuggestedFixes),
+ FunctionExtractions: make(FunctionExtractions),
+ Symbols: make(Symbols),
+ symbolsChildren: make(SymbolsChildren),
+ symbolInformation: make(SymbolInformation),
+ WorkspaceSymbols: make(WorkspaceSymbols),
+ FuzzyWorkspaceSymbols: make(WorkspaceSymbols),
+ CaseSensitiveWorkspaceSymbols: make(WorkspaceSymbols),
+ Signatures: make(Signatures),
+ Links: make(Links),
+
+ t: t,
+ dir: dir,
+ fragments: map[string]string{},
+ golden: map[string]*Golden{},
+ mappers: map[span.URI]*protocol.ColumnMapper{},
}
- var data []*Data
- for _, folder := range folders {
- datum := &Data{
- CallHierarchy: make(CallHierarchy),
- CodeLens: make(CodeLens),
- Diagnostics: make(Diagnostics),
- CompletionItems: make(CompletionItems),
- Completions: make(Completions),
- CompletionSnippets: make(CompletionSnippets),
- UnimportedCompletions: make(UnimportedCompletions),
- DeepCompletions: make(DeepCompletions),
- FuzzyCompletions: make(FuzzyCompletions),
- RankCompletions: make(RankCompletions),
- CaseSensitiveCompletions: make(CaseSensitiveCompletions),
- Definitions: make(Definitions),
- Implementations: make(Implementations),
- Highlights: make(Highlights),
- References: make(References),
- Renames: make(Renames),
- PrepareRenames: make(PrepareRenames),
- SuggestedFixes: make(SuggestedFixes),
- FunctionExtractions: make(FunctionExtractions),
- Symbols: make(Symbols),
- symbolsChildren: make(SymbolsChildren),
- symbolInformation: make(SymbolInformation),
- WorkspaceSymbols: make(WorkspaceSymbols),
- FuzzyWorkspaceSymbols: make(WorkspaceSymbols),
- CaseSensitiveWorkspaceSymbols: make(WorkspaceSymbols),
- Signatures: make(Signatures),
- Links: make(Links),
-
- t: t,
- dir: folder,
- Folder: folder,
- fragments: map[string]string{},
- golden: map[string]*Golden{},
- mappers: map[span.URI]*protocol.ColumnMapper{},
+ if !*UpdateGolden {
+ summary := filepath.Join(filepath.FromSlash(dir), summaryFile+goldenFileSuffix)
+ if _, err := os.Stat(summary); os.IsNotExist(err) {
+ t.Fatalf("could not find golden file summary.txt in %#v", dir)
}
+ archive, err := txtar.ParseFile(summary)
+ if err != nil {
+ t.Fatalf("could not read golden file %v/%v: %v", dir, summary, err)
+ }
+ datum.golden[summaryFile] = &Golden{
+ Filename: summary,
+ Archive: archive,
+ }
+ }
- if !*UpdateGolden {
- summary := filepath.Join(filepath.FromSlash(folder), summaryFile+goldenFileSuffix)
- if _, err := os.Stat(summary); os.IsNotExist(err) {
- t.Fatalf("could not find golden file summary.txt in %#v", folder)
- }
- archive, err := txtar.ParseFile(summary)
+ files := packagestest.MustCopyFileTree(dir)
+ overlays := map[string][]byte{}
+ for fragment, operation := range files {
+ if trimmed := strings.TrimSuffix(fragment, goldenFileSuffix); trimmed != fragment {
+ delete(files, fragment)
+ goldFile := filepath.Join(dir, fragment)
+ archive, err := txtar.ParseFile(goldFile)
if err != nil {
- t.Fatalf("could not read golden file %v/%v: %v", folder, summary, err)
+ t.Fatalf("could not read golden file %v: %v", fragment, err)
}
- datum.golden[summaryFile] = &Golden{
- Filename: summary,
+ datum.golden[trimmed] = &Golden{
+ Filename: goldFile,
Archive: archive,
}
- }
-
- modules, _ := packagestest.GroupFilesByModules(folder)
- for i, m := range modules {
- for fragment, operation := range m.Files {
- if trimmed := strings.TrimSuffix(fragment, goldenFileSuffix); trimmed != fragment {
- delete(m.Files, fragment)
- goldFile := filepath.Join(m.Name, fragment)
- if i == 0 {
- goldFile = filepath.Join(m.Name, "primarymod", fragment)
- }
- archive, err := txtar.ParseFile(goldFile)
- if err != nil {
- t.Fatalf("could not read golden file %v: %v", fragment, err)
- }
- datum.golden[trimmed] = &Golden{
- Filename: goldFile,
- Archive: archive,
- }
- } else if trimmed := strings.TrimSuffix(fragment, inFileSuffix); trimmed != fragment {
- delete(m.Files, fragment)
- m.Files[trimmed] = operation
- } else if index := strings.Index(fragment, overlayFileSuffix); index >= 0 {
- delete(m.Files, fragment)
- partial := fragment[:index] + fragment[index+len(overlayFileSuffix):]
- overlayFile := filepath.Join(m.Name, fragment)
- if i == 0 {
- overlayFile = filepath.Join(m.Name, "primarymod", fragment)
- }
- contents, err := ioutil.ReadFile(overlayFile)
- if err != nil {
- t.Fatal(err)
- }
- m.Overlay[partial] = contents
- }
+ } else if trimmed := strings.TrimSuffix(fragment, inFileSuffix); trimmed != fragment {
+ delete(files, fragment)
+ files[trimmed] = operation
+ } else if index := strings.Index(fragment, overlayFileSuffix); index >= 0 {
+ delete(files, fragment)
+ partial := fragment[:index] + fragment[index+len(overlayFileSuffix):]
+ contents, err := ioutil.ReadFile(filepath.Join(dir, fragment))
+ if err != nil {
+ t.Fatal(err)
}
+ overlays[partial] = contents
}
- if len(modules) > 0 {
- // For certain LSP related tests to run, make sure that the primary
- // module for the passed in directory is testModule.
- modules[0].Name = testModule
- }
- // Add exampleModule to provide tests with another pkg.
- datum.Exported = packagestest.Export(t, exporter, modules)
- for _, m := range modules {
- for fragment := range m.Files {
- filename := datum.Exported.File(m.Name, fragment)
- datum.fragments[filename] = fragment
- }
- }
-
- // Turn off go/packages debug logging.
- datum.Exported.Config.Logf = nil
- datum.Config.Logf = nil
-
- // Merge the exported.Config with the view.Config.
- datum.Config = *datum.Exported.Config
- datum.Config.Fset = token.NewFileSet()
- datum.Config.Context = Context(nil)
- datum.Config.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) {
- panic("ParseFile should not be called")
- }
-
- // Do a first pass to collect special markers for completion and workspace symbols.
- if err := datum.Exported.Expect(map[string]interface{}{
- "item": func(name string, r packagestest.Range, _ []string) {
- datum.Exported.Mark(name, r)
- },
- "symbol": func(name string, r packagestest.Range, _ []string) {
- datum.Exported.Mark(name, r)
- },
- }); err != nil {
- t.Fatal(err)
- }
-
- // Collect any data that needs to be used by subsequent tests.
- if err := datum.Exported.Expect(map[string]interface{}{
- "codelens": datum.collectCodeLens,
- "diag": datum.collectDiagnostics,
- "item": datum.collectCompletionItems,
- "complete": datum.collectCompletions(CompletionDefault),
- "unimported": datum.collectCompletions(CompletionUnimported),
- "deep": datum.collectCompletions(CompletionDeep),
- "fuzzy": datum.collectCompletions(CompletionFuzzy),
- "casesensitive": datum.collectCompletions(CompletionCaseSensitive),
- "rank": datum.collectCompletions(CompletionRank),
- "snippet": datum.collectCompletionSnippets,
- "fold": datum.collectFoldingRanges,
- "format": datum.collectFormats,
- "import": datum.collectImports,
- "godef": datum.collectDefinitions,
- "implementations": datum.collectImplementations,
- "typdef": datum.collectTypeDefinitions,
- "hover": datum.collectHoverDefinitions,
- "highlight": datum.collectHighlights,
- "refs": datum.collectReferences,
- "rename": datum.collectRenames,
- "prepare": datum.collectPrepareRenames,
- "symbol": datum.collectSymbols,
- "signature": datum.collectSignatures,
- "link": datum.collectLinks,
- "suggestedfix": datum.collectSuggestedFixes,
- "extractfunc": datum.collectFunctionExtractions,
- "incomingcalls": datum.collectIncomingCalls,
- "outgoingcalls": datum.collectOutgoingCalls,
- }); err != nil {
- t.Fatal(err)
- }
- for _, symbols := range datum.Symbols {
- for i := range symbols {
- children := datum.symbolsChildren[symbols[i].Name]
- symbols[i].Children = children
- }
- }
- // Collect names for the entries that require golden files.
- if err := datum.Exported.Expect(map[string]interface{}{
- "godef": datum.collectDefinitionNames,
- "hover": datum.collectDefinitionNames,
- "workspacesymbol": datum.collectWorkspaceSymbols(WorkspaceSymbolsDefault),
- "workspacesymbolfuzzy": datum.collectWorkspaceSymbols(WorkspaceSymbolsFuzzy),
- "workspacesymbolcasesensitive": datum.collectWorkspaceSymbols(WorkspaceSymbolsCaseSensitive),
- }); err != nil {
- t.Fatal(err)
- }
- data = append(data, datum)
}
- return data
+
+ modules := []packagestest.Module{
+ {
+ Name: testModule,
+ Files: files,
+ Overlay: overlays,
+ },
+ } // Add exampleModule to provide tests with another pkg.
+ datum.Exported = packagestest.Export(t, exporter, modules)
+ for _, m := range modules {
+ for fragment := range m.Files {
+ filename := datum.Exported.File(m.Name, fragment)
+ datum.fragments[filename] = fragment
+ }
+ }
+
+ // Turn off go/packages debug logging.
+ datum.Exported.Config.Logf = nil
+ datum.Config.Logf = nil
+
+ // Merge the exported.Config with the view.Config.
+ datum.Config = *datum.Exported.Config
+ datum.Config.Fset = token.NewFileSet()
+ datum.Config.Context = Context(nil)
+ datum.Config.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) {
+ panic("ParseFile should not be called")
+ }
+
+ // Do a first pass to collect special markers for completion and workspace symbols.
+ if err := datum.Exported.Expect(map[string]interface{}{
+ "item": func(name string, r packagestest.Range, _ []string) {
+ datum.Exported.Mark(name, r)
+ },
+ "symbol": func(name string, r packagestest.Range, _ []string) {
+ datum.Exported.Mark(name, r)
+ },
+ }); err != nil {
+ t.Fatal(err)
+ }
+
+ // Collect any data that needs to be used by subsequent tests.
+ if err := datum.Exported.Expect(map[string]interface{}{
+ "codelens": datum.collectCodeLens,
+ "diag": datum.collectDiagnostics,
+ "item": datum.collectCompletionItems,
+ "complete": datum.collectCompletions(CompletionDefault),
+ "unimported": datum.collectCompletions(CompletionUnimported),
+ "deep": datum.collectCompletions(CompletionDeep),
+ "fuzzy": datum.collectCompletions(CompletionFuzzy),
+ "casesensitive": datum.collectCompletions(CompletionCaseSensitive),
+ "rank": datum.collectCompletions(CompletionRank),
+ "snippet": datum.collectCompletionSnippets,
+ "fold": datum.collectFoldingRanges,
+ "format": datum.collectFormats,
+ "import": datum.collectImports,
+ "godef": datum.collectDefinitions,
+ "implementations": datum.collectImplementations,
+ "typdef": datum.collectTypeDefinitions,
+ "hover": datum.collectHoverDefinitions,
+ "highlight": datum.collectHighlights,
+ "refs": datum.collectReferences,
+ "rename": datum.collectRenames,
+ "prepare": datum.collectPrepareRenames,
+ "symbol": datum.collectSymbols,
+ "signature": datum.collectSignatures,
+ "link": datum.collectLinks,
+ "suggestedfix": datum.collectSuggestedFixes,
+ "extractfunc": datum.collectFunctionExtractions,
+ "incomingcalls": datum.collectIncomingCalls,
+ "outgoingcalls": datum.collectOutgoingCalls,
+ }); err != nil {
+ t.Fatal(err)
+ }
+ for _, symbols := range datum.Symbols {
+ for i := range symbols {
+ children := datum.symbolsChildren[symbols[i].Name]
+ symbols[i].Children = children
+ }
+ }
+ // Collect names for the entries that require golden files.
+ if err := datum.Exported.Expect(map[string]interface{}{
+ "godef": datum.collectDefinitionNames,
+ "hover": datum.collectDefinitionNames,
+ "workspacesymbol": datum.collectWorkspaceSymbols(WorkspaceSymbolsDefault),
+ "workspacesymbolfuzzy": datum.collectWorkspaceSymbols(WorkspaceSymbolsFuzzy),
+ "workspacesymbolcasesensitive": datum.collectWorkspaceSymbols(WorkspaceSymbolsCaseSensitive),
+ }); err != nil {
+ t.Fatal(err)
+ }
+ return datum
}
func Run(t *testing.T, tests Tests, data *Data) {
@@ -1318,28 +1278,6 @@
return dst, nil
}
-func testFolders(root string) ([]string, error) {
- // Check if this only has one test directory.
- if _, err := os.Stat(filepath.Join(filepath.FromSlash(root), "primarymod")); !os.IsNotExist(err) {
- return []string{root}, nil
- }
- folders := []string{}
- root = filepath.FromSlash(root)
- // Get all test directories that are one level deeper than root.
- if err := filepath.Walk(root, func(path string, info os.FileInfo, _ error) error {
- if !info.IsDir() {
- return nil
- }
- if filepath.Dir(path) == root {
- folders = append(folders, filepath.ToSlash(path))
- }
- return nil
- }); err != nil {
- return nil, err
- }
- return folders, nil
-}
-
func shouldSkip(data *Data, uri span.URI) bool {
if data.ModfileFlagAvailable {
return false
diff --git a/internal/lsp/tests/util.go b/internal/lsp/tests/util.go
index 346eea3..f002683 100644
--- a/internal/lsp/tests/util.go
+++ b/internal/lsp/tests/util.go
@@ -518,13 +518,6 @@
return msg.String()
}
-func FormatFolderName(folder string) string {
- if index := strings.Index(folder, "testdata"); index != -1 {
- return folder[index:]
- }
- return folder
-}
-
func EnableAllAnalyzers(view source.View, opts *source.Options) {
if opts.Analyses == nil {
opts.Analyses = make(map[string]bool)