T232601 implemented the fundamental components that make in-surface autocomplete [for @ mentioning] possible.
This task is about building off that work to make the username completion list [1] work in the following ways described in "Expected behavior."
Expected behavior
When someone types @, they will see...
- The username completion list, populated with the usernames of the people who have already commented anywhere on the talk page they are viewing.
- The usernames in the completion list will be sorted alphabetically.
- The usernames shown in the username completion list will appear in the username results list exactly as they appear on the page. Meaning, if someone has a custom signature such that the username that is appended to the comments they post on talk pages [2] is different from the username that appears in the link to their user page [3], their alias will show up in the username results list.
When someone selects an alias from the username completion list, they can expect the following to happen:
- The Reply text input will show @ + alias (read: the same as what is shown in the username completion list).
When someone publishes a comment containing a ping to someone with an alias set, they can expect the following to happen:
- A ping will be sent in the same way it would be to a person who does not have an alias set.
Open questions
- For people who have aliases set, is it customary for people wanting to @-mention them to refer to them by alias or by their registered username?
- What if a custom signature and a real username collide?
- What if multiple people on a page have the same alias?
- Will it confuse the user if they pick @alias in the dropdown and what's output in the wikitext is [[User:RealName]]?
- Do we indicate alias-status in the completion dropdown?
- Will it confuse the user that completion of some names only works on some pages for inscrutable reasons?
- Do we assume everything that links to a user-page is intended as an alias?
Done
- The "Open questions" have been answered
- The functionality described in "Expected behavior" has been implemented