@@ -14,7 +14,7 @@ type Version struct {
1414}
1515
1616type VersionSelector interface {
17- Find (versions []* Version ) (int , error )
17+ Find (versions []* Version , hasPreview bool ) (int , error )
1818}
1919
2020type versionSelector struct {}
@@ -35,20 +35,25 @@ type mockVersionSelector struct {
3535 err error
3636}
3737
38- func (selector * mockVersionSelector ) Find (versions []* Version ) (int , error ) {
38+ func (selector * mockVersionSelector ) Find (versions []* Version , hasPreview bool ) (int , error ) {
3939 return selector .idx , selector .err
4040}
4141
42- func (selector * versionSelector ) Find (versions []* Version ) (int , error ) {
42+ func (selector * versionSelector ) Find (versions []* Version , hasPreview bool ) (int , error ) {
43+ if hasPreview {
44+ return fuzzyfinder .Find (versions , func (i int ) string { //nolint:wrapcheck
45+ return getVersionItem (versions [i ])
46+ },
47+ fuzzyfinder .WithPreviewWindow (func (i , w , h int ) string {
48+ if i < 0 {
49+ return "No version matches"
50+ }
51+ return getVersionPreview (versions [i ], i , w )
52+ }))
53+ }
4354 return fuzzyfinder .Find (versions , func (i int ) string { //nolint:wrapcheck
4455 return getVersionItem (versions [i ])
45- },
46- fuzzyfinder .WithPreviewWindow (func (i , w , h int ) string {
47- if i < 0 {
48- return "No package matches"
49- }
50- return getVersionPreview (versions [i ], i , w )
51- }))
56+ })
5257}
5358
5459func getVersionItem (version * Version ) string {
@@ -60,7 +65,7 @@ func getVersionPreview(version *Version, i, w int) string {
6065 return ""
6166 }
6267 s := version .Version
63- if version .Name != version .Version {
68+ if version .Name != "" && version . Name != version .Version {
6469 s += fmt .Sprintf (" (%s)" , version .Name )
6570 }
6671 if version .URL != "" || version .Description != "" {
@@ -74,3 +79,13 @@ func getVersionPreview(version *Version, i, w int) string {
7479 }
7580 return s
7681}
82+
83+ func convertStringsToVersions (arr []string ) []* Version {
84+ versions := make ([]* Version , len (arr ))
85+ for i , a := range arr {
86+ versions [i ] = & Version {
87+ Version : a ,
88+ }
89+ }
90+ return versions
91+ }
0 commit comments