Change summary
cache/filter.go | 11 +++--------
cache/identity_excerpt.go | 8 ++++++++
doc/queries.md | 1 +
3 files changed, 12 insertions(+), 8 deletions(-)
Detailed changes
@@ -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
}
}
@@ -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
*/
@@ -11,6 +11,7 @@ A few tips:
- queries are case insensitive.
- you can combine as many qualifiers as you want.
- you can use double quotes for multi-word search terms. For example, `author:"René Descartes"` searches for bugs opened by René Descartes, whereas `author:René Descartes` will throw an error since full-text search is not yet supported.
+- instead of a complete ID, you can use any prefix length. For example `participant=9ed1a`.
## Filtering