From 820fab7a675235caf9dfb14ac3fb06020a71ed96 Mon Sep 17 00:00:00 2001 From: ewy Date: Tue, 25 Aug 2026 18:16:55 +0200 Subject: using search, first targets match search terms for respective source --- menu/model.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/menu/model.go b/menu/model.go index 68d55e3..f947a17 100644 --- a/menu/model.go +++ b/menu/model.go @@ -11,6 +11,7 @@ import ( "github.com/charmbracelet/x/term" "github.com/spf13/pflag" "os" + "slices" "strings" ) @@ -34,7 +35,7 @@ func (m *Model) Highlights(src *model.HydratedSource, t model.HydratedTarget) bo return false } - if strings.Contains(t.Target().Label(), val) { + if strings.Contains(strings.Join(append(t.Target().Sub(), t.Target().Label()), " "), val) { return true } @@ -42,8 +43,20 @@ func (m *Model) Highlights(src *model.HydratedSource, t model.HydratedTarget) bo return true } - if strings.Contains(strings.Join(append(t.Target().Sub(), t.Target().Label()), " "), val) { - return true + if slices.Index(src.HydratedTargets, t) != 0 { + return false + } + + srcIds := []string{ + src.Identity.Full, + src.Identity.Reduced, + } + srcIds = append(srcIds, src.Aliases...) + + for _, id := range srcIds { + if src.Is(id) { + return true + } } return false -- cgit v1.3.1