Skip to content

Commit 1dcf589

Browse files
author
Stephen Gutekanst
committed
langserver: add SymbolDescriptor id field
This adds an `id` field to the `SymbolDescriptor` for Go. This is a requirement for enabling Sourcegraph URL-To-Definition links like: ``` sourcegraph.com/github.com/golang/go/-/info/GoPackage/net/http/-/ListenAndServe ``` To properly jump to the location of the specified symbol. The Go IDs are in the form: ``` <package>:<packageName>:<recv>:<name> ``` Additionally, an extra form with <packageName> omitted entirely is supported: ``` <package>:<recv>:<name> ``` Examples: ``` github.com/gorilla/mux:mux_test:Router:ServeHTTP github.com/gorilla/mux:Router:ServeHTTP ``` The above two are considered identical when making comparisons. The Sourcegraph URLs for the above examples would look like: ``` sourcegraph.com/github.com/gorilla/mux/-/go/github.com/gorilla/mux:mux_test:Router:ServeHTTP sourcegraph.com/github.com/gorilla/mux/-/go/github.com/gorilla/mux:Router:ServeHTTP ``` And because of the second form where `packageName` is omittable, it is possible for Sourcegraph to handle redirects from old URLs that did not have `packageName` information in them.
1 parent f6480d1 commit 1dcf589

File tree

3 files changed

+110
-53
lines changed

3 files changed

+110
-53
lines changed

langserver/langserver_test.go

Lines changed: 61 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ func TestServer(t *testing.T) {
4949
"b.go:1:23": "/src/test/pkg/a.go:1:17",
5050
},
5151
wantXDefinition: map[string]string{
52-
"a.go:1:17": "/src/test/pkg/a.go:1:17 name:A package:test/pkg packageName:p recv: vendor:false",
53-
"a.go:1:23": "/src/test/pkg/a.go:1:17 name:A package:test/pkg packageName:p recv: vendor:false",
54-
"b.go:1:17": "/src/test/pkg/b.go:1:17 name:B package:test/pkg packageName:p recv: vendor:false",
55-
"b.go:1:23": "/src/test/pkg/a.go:1:17 name:A package:test/pkg packageName:p recv: vendor:false",
52+
"a.go:1:17": "/src/test/pkg/a.go:1:17 id:test/pkg:p::A name:A package:test/pkg packageName:p recv: vendor:false",
53+
"a.go:1:23": "/src/test/pkg/a.go:1:17 id:test/pkg:p::A name:A package:test/pkg packageName:p recv: vendor:false",
54+
"b.go:1:17": "/src/test/pkg/b.go:1:17 id:test/pkg:p::B name:B package:test/pkg packageName:p recv: vendor:false",
55+
"b.go:1:23": "/src/test/pkg/a.go:1:17 id:test/pkg:p::A name:A package:test/pkg packageName:p recv: vendor:false",
5656
},
5757
wantReferences: map[string][]string{
5858
"a.go:1:17": []string{
@@ -106,6 +106,14 @@ func TestServer(t *testing.T) {
106106
{Symbol: lspext.SymbolDescriptor{"package": "test/pkg", "name": "B", "packageName": "p"}}: []string{"/src/test/pkg/b.go:function:pkg.B:1:17"},
107107
{Symbol: lspext.SymbolDescriptor{"package": "test/pkg", "name": "B", "packageName": "p", "recv": ""}}: []string{"/src/test/pkg/b.go:function:pkg.B:1:17"},
108108
{Symbol: lspext.SymbolDescriptor{"package": "test/pkg", "name": "B", "packageName": "p", "recv": "", "vendor": false}}: []string{"/src/test/pkg/b.go:function:pkg.B:1:17"},
109+
110+
// By ID (first form, `<package>:<packageName>:<recv>:<name>`).
111+
{Symbol: lspext.SymbolDescriptor{"id": "test/pkg:p::B"}}: []string{"/src/test/pkg/b.go:function:pkg.B:1:17"},
112+
{Symbol: lspext.SymbolDescriptor{"id": "test/pkg:p::A"}}: []string{"/src/test/pkg/a.go:function:pkg.A:1:17"},
113+
114+
// By ID (second form, `<package>:<recv>:<name>`).
115+
{Symbol: lspext.SymbolDescriptor{"id": "test/pkg::B"}}: []string{"/src/test/pkg/b.go:function:pkg.B:1:17"},
116+
{Symbol: lspext.SymbolDescriptor{"id": "test/pkg::A"}}: []string{"/src/test/pkg/a.go:function:pkg.A:1:17"},
109117
},
110118
wantFormatting: map[string]string{
111119
"a.go": "package p\n\nfunc A() { A() }\n",
@@ -184,11 +192,11 @@ func TestServer(t *testing.T) {
184192
"d2/b.go:1:52": "/src/test/pkg/d/d2/b.go:1:39",
185193
},
186194
wantXDefinition: map[string]string{
187-
"a.go:1:17": "/src/test/pkg/d/a.go:1:17 name:A package:test/pkg/d packageName:d recv: vendor:false",
188-
"a.go:1:23": "/src/test/pkg/d/a.go:1:17 name:A package:test/pkg/d packageName:d recv: vendor:false",
189-
"d2/b.go:1:39": "/src/test/pkg/d/d2/b.go:1:39 name:B package:test/pkg/d/d2 packageName:d2 recv: vendor:false",
190-
"d2/b.go:1:47": "/src/test/pkg/d/a.go:1:17 name:A package:test/pkg/d packageName:d recv: vendor:false",
191-
"d2/b.go:1:52": "/src/test/pkg/d/d2/b.go:1:39 name:B package:test/pkg/d/d2 packageName:d2 recv: vendor:false",
195+
"a.go:1:17": "/src/test/pkg/d/a.go:1:17 id:test/pkg/d:d::A name:A package:test/pkg/d packageName:d recv: vendor:false",
196+
"a.go:1:23": "/src/test/pkg/d/a.go:1:17 id:test/pkg/d:d::A name:A package:test/pkg/d packageName:d recv: vendor:false",
197+
"d2/b.go:1:39": "/src/test/pkg/d/d2/b.go:1:39 id:test/pkg/d/d2:d2::B name:B package:test/pkg/d/d2 packageName:d2 recv: vendor:false",
198+
"d2/b.go:1:47": "/src/test/pkg/d/a.go:1:17 id:test/pkg/d:d::A name:A package:test/pkg/d packageName:d recv: vendor:false",
199+
"d2/b.go:1:52": "/src/test/pkg/d/d2/b.go:1:39 id:test/pkg/d/d2:d2::B name:B package:test/pkg/d/d2 packageName:d2 recv: vendor:false",
192200
},
193201
wantSymbols: map[string][]string{
194202
"a.go": []string{"/src/test/pkg/d/a.go:function:d.A:1:17"},
@@ -217,26 +225,26 @@ func TestServer(t *testing.T) {
217225

218226
// Matching against a dirs hint with multiple dirs.
219227
{Query: lspext.SymbolDescriptor{"package": "test/pkg/d"}, Hints: map[string]interface{}{"dirs": []string{"file:///src/test/pkg/d/d2", "file:///src/test/pkg/d/invalid"}}}: []string{
220-
"/src/test/pkg/d/d2/b.go:1:20-1:20 -> name: package:test/pkg/d packageName:d recv: vendor:false",
221-
"/src/test/pkg/d/d2/b.go:1:47-1:47 -> name:A package:test/pkg/d packageName:d recv: vendor:false",
228+
"/src/test/pkg/d/d2/b.go:1:20-1:20 -> id:test/pkg/d:d:: name: package:test/pkg/d packageName:d recv: vendor:false",
229+
"/src/test/pkg/d/d2/b.go:1:47-1:47 -> id:test/pkg/d:d::A name:A package:test/pkg/d packageName:d recv: vendor:false",
222230
},
223231

224232
// Matching against a dirs hint.
225233
{Query: lspext.SymbolDescriptor{"package": "test/pkg/d"}, Hints: map[string]interface{}{"dirs": []string{"file:///src/test/pkg/d/d2"}}}: []string{
226-
"/src/test/pkg/d/d2/b.go:1:20-1:20 -> name: package:test/pkg/d packageName:d recv: vendor:false",
227-
"/src/test/pkg/d/d2/b.go:1:47-1:47 -> name:A package:test/pkg/d packageName:d recv: vendor:false",
234+
"/src/test/pkg/d/d2/b.go:1:20-1:20 -> id:test/pkg/d:d:: name: package:test/pkg/d packageName:d recv: vendor:false",
235+
"/src/test/pkg/d/d2/b.go:1:47-1:47 -> id:test/pkg/d:d::A name:A package:test/pkg/d packageName:d recv: vendor:false",
228236
},
229237

230238
// Matching against single field.
231239
{Query: lspext.SymbolDescriptor{"package": "test/pkg/d"}}: []string{
232-
"/src/test/pkg/d/d2/b.go:1:20-1:20 -> name: package:test/pkg/d packageName:d recv: vendor:false",
233-
"/src/test/pkg/d/d2/b.go:1:47-1:47 -> name:A package:test/pkg/d packageName:d recv: vendor:false",
240+
"/src/test/pkg/d/d2/b.go:1:20-1:20 -> id:test/pkg/d:d:: name: package:test/pkg/d packageName:d recv: vendor:false",
241+
"/src/test/pkg/d/d2/b.go:1:47-1:47 -> id:test/pkg/d:d::A name:A package:test/pkg/d packageName:d recv: vendor:false",
234242
},
235243

236244
// Matching against no fields.
237245
{Query: lspext.SymbolDescriptor{}}: []string{
238-
"/src/test/pkg/d/d2/b.go:1:20-1:20 -> name: package:test/pkg/d packageName:d recv: vendor:false",
239-
"/src/test/pkg/d/d2/b.go:1:47-1:47 -> name:A package:test/pkg/d packageName:d recv: vendor:false",
246+
"/src/test/pkg/d/d2/b.go:1:20-1:20 -> id:test/pkg/d:d:: name: package:test/pkg/d packageName:d recv: vendor:false",
247+
"/src/test/pkg/d/d2/b.go:1:47-1:47 -> id:test/pkg/d:d::A name:A package:test/pkg/d packageName:d recv: vendor:false",
240248
},
241249
{
242250
Query: lspext.SymbolDescriptor{
@@ -246,7 +254,7 @@ func TestServer(t *testing.T) {
246254
"recv": "",
247255
"vendor": false,
248256
},
249-
}: []string{"/src/test/pkg/d/d2/b.go:1:20-1:20 -> name: package:test/pkg/d packageName:d recv: vendor:false"},
257+
}: []string{"/src/test/pkg/d/d2/b.go:1:20-1:20 -> id:test/pkg/d:d:: name: package:test/pkg/d packageName:d recv: vendor:false"},
250258
{
251259
Query: lspext.SymbolDescriptor{
252260
"name": "A",
@@ -255,7 +263,7 @@ func TestServer(t *testing.T) {
255263
"recv": "",
256264
"vendor": false,
257265
},
258-
}: []string{"/src/test/pkg/d/d2/b.go:1:47-1:47 -> name:A package:test/pkg/d packageName:d recv: vendor:false"},
266+
}: []string{"/src/test/pkg/d/d2/b.go:1:47-1:47 -> id:test/pkg/d:d::A name:A package:test/pkg/d packageName:d recv: vendor:false"},
259267
},
260268
},
261269
},
@@ -288,8 +296,8 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
288296
// "main.go:3:52": "/src/test/pkg/main.go:3:39", // B() -> func B()
289297
},
290298
wantXDefinition: map[string]string{
291-
"a.go:1:17": "/src/test/pkg/a.go:1:17 name:A package:test/pkg packageName:p recv: vendor:false",
292-
"a.go:1:23": "/src/test/pkg/a.go:1:17 name:A package:test/pkg packageName:p recv: vendor:false",
299+
"a.go:1:17": "/src/test/pkg/a.go:1:17 id:test/pkg:p::A name:A package:test/pkg packageName:p recv: vendor:false",
300+
"a.go:1:23": "/src/test/pkg/a.go:1:17 id:test/pkg:p::A name:A package:test/pkg packageName:p recv: vendor:false",
293301
},
294302
wantSymbols: map[string][]string{
295303
"a.go": []string{"/src/test/pkg/a.go:function:pkg.A:1:17"},
@@ -322,7 +330,7 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
322330
// "a.go:1:53": "/goroot/src/builtin/builtin.go:TODO:TODO", // TODO(sqs): support builtins
323331
},
324332
wantXDefinition: map[string]string{
325-
"a.go:1:40": "/goroot/src/fmt/print.go:1:19 name:Println package:fmt packageName:fmt recv: vendor:false",
333+
"a.go:1:40": "/goroot/src/fmt/print.go:1:19 id:fmt:fmt::Println name:Println package:fmt packageName:fmt recv: vendor:false",
326334
},
327335
wantSymbols: map[string][]string{
328336
"a.go": []string{
@@ -341,8 +349,8 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
341349
},
342350
wantWorkspaceReferences: map[*lspext.WorkspaceReferencesParams][]string{
343351
{Query: lspext.SymbolDescriptor{}}: []string{
344-
"/src/test/pkg/a.go:1:19-1:19 -> name: package:fmt packageName:fmt recv: vendor:false",
345-
"/src/test/pkg/a.go:1:38-1:38 -> name:Println package:fmt packageName:fmt recv: vendor:false",
352+
"/src/test/pkg/a.go:1:19-1:19 -> id:fmt:fmt:: name: package:fmt packageName:fmt recv: vendor:false",
353+
"/src/test/pkg/a.go:1:38-1:38 -> id:fmt:fmt::Println name:Println package:fmt packageName:fmt recv: vendor:false",
346354
},
347355
},
348356
},
@@ -365,8 +373,8 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
365373
"b/b.go:1:43": "/src/test/pkg/a/a.go:1:17",
366374
},
367375
wantXDefinition: map[string]string{
368-
"a/a.go:1:17": "/src/test/pkg/a/a.go:1:17 name:A package:test/pkg/a packageName:a recv: vendor:false",
369-
"b/b.go:1:43": "/src/test/pkg/a/a.go:1:17 name:A package:test/pkg/a packageName:a recv: vendor:false",
376+
"a/a.go:1:17": "/src/test/pkg/a/a.go:1:17 id:test/pkg/a:a::A name:A package:test/pkg/a packageName:a recv: vendor:false",
377+
"b/b.go:1:43": "/src/test/pkg/a/a.go:1:17 id:test/pkg/a:a::A name:A package:test/pkg/a packageName:a recv: vendor:false",
370378
},
371379
wantReferences: map[string][]string{
372380
"a/a.go:1:17": []string{
@@ -388,8 +396,8 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
388396
},
389397
wantWorkspaceReferences: map[*lspext.WorkspaceReferencesParams][]string{
390398
{Query: lspext.SymbolDescriptor{}}: []string{
391-
"/src/test/pkg/b/b.go:1:19-1:19 -> name: package:test/pkg/a packageName:a recv: vendor:false",
392-
"/src/test/pkg/b/b.go:1:43-1:43 -> name:A package:test/pkg/a packageName:a recv: vendor:false",
399+
"/src/test/pkg/b/b.go:1:19-1:19 -> id:test/pkg/a:a:: name: package:test/pkg/a packageName:a recv: vendor:false",
400+
"/src/test/pkg/b/b.go:1:43-1:43 -> id:test/pkg/a:a::A name:A package:test/pkg/a packageName:a recv: vendor:false",
393401
},
394402
},
395403
},
@@ -408,7 +416,7 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
408416
"a.go:1:61": "/src/test/pkg/vendor/github.com/v/vendored/v.go:1:24",
409417
},
410418
wantXDefinition: map[string]string{
411-
"a.go:1:61": "/src/test/pkg/vendor/github.com/v/vendored/v.go:1:24 name:V package:test/pkg/vendor/github.com/v/vendored packageName:vendored recv: vendor:true",
419+
"a.go:1:61": "/src/test/pkg/vendor/github.com/v/vendored/v.go:1:24 id:test/pkg/vendor/github.com/v/vendored:vendored::V name:V package:test/pkg/vendor/github.com/v/vendored packageName:vendored recv: vendor:true",
412420
},
413421
wantReferences: map[string][]string{
414422
"vendor/github.com/v/vendored/v.go:1:24": []string{
@@ -429,8 +437,8 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
429437
},
430438
wantWorkspaceReferences: map[*lspext.WorkspaceReferencesParams][]string{
431439
{Query: lspext.SymbolDescriptor{}}: []string{
432-
"/src/test/pkg/a.go:1:19-1:19 -> name: package:test/pkg/vendor/github.com/v/vendored packageName:vendored recv: vendor:true",
433-
"/src/test/pkg/a.go:1:61-1:61 -> name:V package:test/pkg/vendor/github.com/v/vendored packageName:vendored recv: vendor:true",
440+
"/src/test/pkg/a.go:1:19-1:19 -> id:test/pkg/vendor/github.com/v/vendored:vendored:: name: package:test/pkg/vendor/github.com/v/vendored packageName:vendored recv: vendor:true",
441+
"/src/test/pkg/a.go:1:61-1:61 -> id:test/pkg/vendor/github.com/v/vendored:vendored::V name:V package:test/pkg/vendor/github.com/v/vendored packageName:vendored recv: vendor:true",
434442
},
435443
},
436444
},
@@ -491,7 +499,7 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
491499
"a.go:1:51": "/src/github.com/d/dep/d.go:1:19",
492500
},
493501
wantXDefinition: map[string]string{
494-
"a.go:1:51": "/src/github.com/d/dep/d.go:1:19 name:D package:github.com/d/dep packageName:dep recv: vendor:false",
502+
"a.go:1:51": "/src/github.com/d/dep/d.go:1:19 id:github.com/d/dep:dep::D name:D package:github.com/d/dep packageName:dep recv: vendor:false",
495503
},
496504
wantReferences: map[string][]string{
497505
"a.go:1:51": []string{
@@ -504,9 +512,9 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
504512
},
505513
wantWorkspaceReferences: map[*lspext.WorkspaceReferencesParams][]string{
506514
{Query: lspext.SymbolDescriptor{}}: []string{
507-
"/src/test/pkg/a.go:1:19-1:19 -> name: package:github.com/d/dep packageName:dep recv: vendor:false",
508-
"/src/test/pkg/a.go:1:51-1:51 -> name:D package:github.com/d/dep packageName:dep recv: vendor:false",
509-
"/src/test/pkg/a.go:1:66-1:66 -> name:D package:github.com/d/dep packageName:dep recv: vendor:false",
515+
"/src/test/pkg/a.go:1:19-1:19 -> id:github.com/d/dep:dep:: name: package:github.com/d/dep packageName:dep recv: vendor:false",
516+
"/src/test/pkg/a.go:1:51-1:51 -> id:github.com/d/dep:dep::D name:D package:github.com/d/dep packageName:dep recv: vendor:false",
517+
"/src/test/pkg/a.go:1:66-1:66 -> id:github.com/d/dep:dep::D name:D package:github.com/d/dep packageName:dep recv: vendor:false",
510518
},
511519
},
512520
},
@@ -527,13 +535,13 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
527535
"a.go:1:55": "/src/github.com/d/dep/vendor/vendp/vp.go:1:32",
528536
},
529537
wantXDefinition: map[string]string{
530-
"a.go:1:55": "/src/github.com/d/dep/vendor/vendp/vp.go:1:32 name:F package:github.com/d/dep/vendor/vendp packageName:vendp recv:V vendor:true",
538+
"a.go:1:55": "/src/github.com/d/dep/vendor/vendp/vp.go:1:32 id:github.com/d/dep/vendor/vendp:vendp:V:F name:F package:github.com/d/dep/vendor/vendp packageName:vendp recv:V vendor:true",
531539
},
532540
wantWorkspaceReferences: map[*lspext.WorkspaceReferencesParams][]string{
533541
{Query: lspext.SymbolDescriptor{}}: []string{
534-
"/src/test/pkg/a.go:1:19-1:19 -> name: package:github.com/d/dep packageName:dep recv: vendor:false",
535-
"/src/test/pkg/a.go:1:55-1:55 -> name:F package:github.com/d/dep/vendor/vendp packageName:vendp recv:V vendor:true",
536-
"/src/test/pkg/a.go:1:51-1:51 -> name:D package:github.com/d/dep packageName:dep recv: vendor:false",
542+
"/src/test/pkg/a.go:1:19-1:19 -> id:github.com/d/dep:dep:: name: package:github.com/d/dep packageName:dep recv: vendor:false",
543+
"/src/test/pkg/a.go:1:55-1:55 -> id:github.com/d/dep/vendor/vendp:vendp:V:F name:F package:github.com/d/dep/vendor/vendp packageName:vendp recv:V vendor:true",
544+
"/src/test/pkg/a.go:1:51-1:51 -> id:github.com/d/dep:dep::D name:D package:github.com/d/dep packageName:dep recv: vendor:false",
537545
},
538546
},
539547
},
@@ -556,12 +564,12 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
556564
"a.go:1:57": "/src/github.com/d/dep/subp/d.go:1:20",
557565
},
558566
wantXDefinition: map[string]string{
559-
"a.go:1:57": "/src/github.com/d/dep/subp/d.go:1:20 name:D package:github.com/d/dep/subp packageName:subp recv: vendor:false",
567+
"a.go:1:57": "/src/github.com/d/dep/subp/d.go:1:20 id:github.com/d/dep/subp:subp::D name:D package:github.com/d/dep/subp packageName:subp recv: vendor:false",
560568
},
561569
wantWorkspaceReferences: map[*lspext.WorkspaceReferencesParams][]string{
562570
{Query: lspext.SymbolDescriptor{}}: []string{
563-
"/src/test/pkg/a.go:1:19-1:19 -> name: package:github.com/d/dep/subp packageName:subp recv: vendor:false",
564-
"/src/test/pkg/a.go:1:57-1:57 -> name:D package:github.com/d/dep/subp packageName:subp recv: vendor:false",
571+
"/src/test/pkg/a.go:1:19-1:19 -> id:github.com/d/dep/subp:subp:: name: package:github.com/d/dep/subp packageName:subp recv: vendor:false",
572+
"/src/test/pkg/a.go:1:57-1:57 -> id:github.com/d/dep/subp:subp::D name:D package:github.com/d/dep/subp packageName:subp recv: vendor:false",
565573
},
566574
},
567575
},
@@ -589,14 +597,14 @@ package main; import "test/pkg"; func B() { p.A(); B() }`,
589597
"a.go:1:58": "/src/github.com/d/dep2/d2.go:1:32", // field D2
590598
},
591599
wantXDefinition: map[string]string{
592-
"a.go:1:53": "/src/github.com/d/dep1/d1.go:1:48 name:D1 package:github.com/d/dep1 packageName:dep1 recv: vendor:false",
593-
"a.go:1:58": "/src/github.com/d/dep2/d2.go:1:32 name:D2 package:github.com/d/dep2 packageName:dep2 recv:D2 vendor:false",
600+
"a.go:1:53": "/src/github.com/d/dep1/d1.go:1:48 id:github.com/d/dep1:dep1::D1 name:D1 package:github.com/d/dep1 packageName:dep1 recv: vendor:false",
601+
"a.go:1:58": "/src/github.com/d/dep2/d2.go:1:32 id:github.com/d/dep2:dep2:D2:D2 name:D2 package:github.com/d/dep2 packageName:dep2 recv:D2 vendor:false",
594602
},
595603
wantWorkspaceReferences: map[*lspext.WorkspaceReferencesParams][]string{
596604
{Query: lspext.SymbolDescriptor{}}: []string{
597-
"/src/test/pkg/a.go:1:19-1:19 -> name: package:github.com/d/dep1 packageName:dep1 recv: vendor:false",
598-
"/src/test/pkg/a.go:1:58-1:58 -> name:D2 package:github.com/d/dep2 packageName:dep2 recv:D2 vendor:false",
599-
"/src/test/pkg/a.go:1:53-1:53 -> name:D1 package:github.com/d/dep1 packageName:dep1 recv: vendor:false",
605+
"/src/test/pkg/a.go:1:19-1:19 -> id:github.com/d/dep1:dep1:: name: package:github.com/d/dep1 packageName:dep1 recv: vendor:false",
606+
"/src/test/pkg/a.go:1:58-1:58 -> id:github.com/d/dep2:dep2:D2:D2 name:D2 package:github.com/d/dep2 packageName:dep2 recv:D2 vendor:false",
607+
"/src/test/pkg/a.go:1:53-1:53 -> id:github.com/d/dep1:dep1::D1 name:D1 package:github.com/d/dep1 packageName:dep1 recv: vendor:false",
600608
},
601609
},
602610
},
@@ -716,12 +724,12 @@ type Header struct {
716724
cases: lspTestCases{
717725
wantWorkspaceReferences: map[*lspext.WorkspaceReferencesParams][]string{
718726
{Query: lspext.SymbolDescriptor{}}: []string{
719-
"/src/test/pkg/a.go:1:19-1:19 -> name: package:fmt packageName:fmt recv: vendor:false",
720-
"/src/test/pkg/a.go:1:38-1:38 -> name:Println package:fmt packageName:fmt recv: vendor:false",
721-
"/src/test/pkg/b.go:1:19-1:19 -> name: package:fmt packageName:fmt recv: vendor:false",
722-
"/src/test/pkg/b.go:1:38-1:38 -> name:Println package:fmt packageName:fmt recv: vendor:false",
723-
"/src/test/pkg/c.go:1:19-1:19 -> name: package:fmt packageName:fmt recv: vendor:false",
724-
"/src/test/pkg/c.go:1:38-1:38 -> name:Println package:fmt packageName:fmt recv: vendor:false",
727+
"/src/test/pkg/a.go:1:19-1:19 -> id:fmt:fmt:: name: package:fmt packageName:fmt recv: vendor:false",
728+
"/src/test/pkg/a.go:1:38-1:38 -> id:fmt:fmt::Println name:Println package:fmt packageName:fmt recv: vendor:false",
729+
"/src/test/pkg/b.go:1:19-1:19 -> id:fmt:fmt:: name: package:fmt packageName:fmt recv: vendor:false",
730+
"/src/test/pkg/b.go:1:38-1:38 -> id:fmt:fmt::Println name:Println package:fmt packageName:fmt recv: vendor:false",
731+
"/src/test/pkg/c.go:1:19-1:19 -> id:fmt:fmt:: name: package:fmt packageName:fmt recv: vendor:false",
732+
"/src/test/pkg/c.go:1:38-1:38 -> id:fmt:fmt::Println name:Println package:fmt packageName:fmt recv: vendor:false",
725733
},
726734
},
727735
},

0 commit comments

Comments
 (0)