T232601 implemented the fundamental components that make in-surface autocomplete [for @ mentioning] possible.
This task is about enhancing the search that powers the username completion list [1] to help people more quickly and easily find the person they are wanting to notify.
Search approaches
I. Substring search
- Typing @er would return "peter" and "eran"
II. Word-separated prefix search
- Typing @pel would return "peter pelberg", but not "opel"
- Notes:
- Results shown in the username completion list would be limited to those that contain "pel" at the start of the word.
- Phabricator & Twitter use the word-separated prefix search approach. Meaning: your username and real name are "valid" search inputs such that ppelberg (peter pelberg) could be found with @pp, @pet, or @pel.
- Notes:
III. Substring + prefix search hybrid
- Typing es would return "esanders" first, then "james"
IV. Separated letters search
- Typing pr would return “peter” and “prester”
- Note: this is used on GitHub, but only against a limited set of local results (people who are active on that project).
Open questions
- Which of the above "Search approaches" should we implement?
Done
- All "Open questions" are answered
- We have implemented the search behavior described in the "Search approaches" section above
- Username completion list: this list contains the usernames people can select to ping.