diff options
Diffstat (limited to 'cache')
-rw-r--r-- | cache/filter.go | 11 | ||||
-rw-r--r-- | cache/identity_excerpt.go | 8 |
2 files changed, 11 insertions, 8 deletions
diff --git a/cache/filter.go b/cache/filter.go index b26e7ae1..27e92cf3 100644 --- a/cache/filter.go +++ b/cache/filter.go @@ -33,8 +33,7 @@ func AuthorFilter(query string) Filter { panic("missing identity in the cache") } - return strings.Contains(strings.ToLower(author.Name), query) || - strings.Contains(strings.ToLower(author.Login), query) + return author.Match(query) } // Legacy identity support @@ -66,9 +65,7 @@ func ActorFilter(query string) Filter { panic("missing identity in the cache") } - if query == identityExcerpt.Id || - strings.Contains(strings.ToLower(identityExcerpt.Name), query) || - query == strings.ToLower(identityExcerpt.Login) { + if identityExcerpt.Match(query) { return true } } @@ -87,9 +84,7 @@ func ParticipantFilter(query string) Filter { panic("missing identity in the cache") } - if query == identityExcerpt.Id || - strings.Contains(strings.ToLower(identityExcerpt.Name), query) || - query == strings.ToLower(identityExcerpt.Login) { + if identityExcerpt.Match(query) { return true } } diff --git a/cache/identity_excerpt.go b/cache/identity_excerpt.go index 2a13bc60..3ac13903 100644 --- a/cache/identity_excerpt.go +++ b/cache/identity_excerpt.go @@ -3,6 +3,7 @@ package cache import ( "encoding/gob" "fmt" + "strings" "github.com/MichaelMure/git-bug/identity" ) @@ -51,6 +52,13 @@ func (i *IdentityExcerpt) DisplayName() string { panic("invalid person data") } +// Match matches a query with the identity name, login and ID prefixes +func (i *IdentityExcerpt) Match(query string) bool { + return strings.HasPrefix(i.Id, query) || + strings.Contains(strings.ToLower(i.Name), query) || + strings.Contains(strings.ToLower(i.Login), query) +} + /* * Sorting */ |