Skip to content

Commit 8f6b7ab

Browse files
authored
Sort reference origins (#124)
* Sort reference origins * Fix sorting in `CollectReferenceOrigins` as well
1 parent 053ec0d commit 8f6b7ab

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

decoder/reference_origins.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ func (d *Decoder) ReferenceOriginsTargetingPos(path lang.Path, file string, pos
4545
}
4646
}
4747

48+
sort.SliceStable(origins, func(i, j int) bool {
49+
if origins[i].Path.Path != origins[j].Path.Path {
50+
return origins[i].Path.Path < origins[j].Path.Path
51+
}
52+
if origins[i].Range.Filename != origins[j].Range.Filename {
53+
return origins[i].Range.Filename < origins[j].Range.Filename
54+
}
55+
return origins[i].Range.Start.Byte < origins[j].Range.Start.Byte
56+
})
57+
4858
return origins
4959
}
5060

@@ -91,8 +101,10 @@ func (d *PathDecoder) CollectReferenceOrigins() (reference.Origins, error) {
91101
}
92102

93103
sort.SliceStable(refOrigins, func(i, j int) bool {
94-
return refOrigins[i].OriginRange().Filename <= refOrigins[j].OriginRange().Filename &&
95-
refOrigins[i].OriginRange().Start.Byte < refOrigins[j].OriginRange().Start.Byte
104+
if refOrigins[i].OriginRange().Filename != refOrigins[j].OriginRange().Filename {
105+
return refOrigins[i].OriginRange().Filename < refOrigins[j].OriginRange().Filename
106+
}
107+
return refOrigins[i].OriginRange().Start.Byte < refOrigins[j].OriginRange().Start.Byte
96108
})
97109

98110
return refOrigins, nil

0 commit comments

Comments
 (0)