Tab-completion should automatically add a space after a username

I decided to spend my Sunday doing some more comprehensive research on how @mentions are handled on different other platforms. :tada:

What do other platforms do?

There are two main ways of doing it, as mentioned before:

  • Appending a space after the name.
  • Not appending a space after the name.

(I took the liberty to link the names of platforms which are open source / free software to promote them a bit. :slight_smile: )

Platforms which append a space

  • Twitter appends " " (a space). Suggests names only with @. Uses handles.
  • WhatsApp appends " " (a space). Suggests names only with @. Shows display names instead of handles, but does not allow modification.
  • Instagram appends " " (a space). Suggests names only with @. Uses handles.
  • Github appends " " (a space). Suggests names only with @. Uses handles.
  • GitLab appends " " (a space). Suggests names only with @. Uses handles.
  • Trello appends " " (a space). Suggests names only with @. Uses handles.
  • Disqus appends " " (a space). Suggests names only with @. Shows display names instead of handles, but does not allow modification.
  • Ghost seems to mostly use/encourage Disqus for commenting, although Discourse is possible.
  • Mastodon appends " " (a space). Suggests names only with @.
  • Taiga appends " " (a space). Suggests names only with @.
  • Slack appends " " (a space). Suggests names both with and without @, but only mentions them when an @ was used.
  • Asana appends " " (a space). Suggests names only with @, but cuts the @ automatically. Shows display names instead of handles, but does not allow modification.
  • Riot appends ": " (a colon and a space). Suggests names both with and without @, but cuts the @ automatically. Shows display names instead of handles, but does not allow modification.
  • Nextcloud still needs to implement the auto-complete part and the current spec is to add a space automatically.

Platforms which append nothing

  • Facebook appends nothing. Suggests names both with and without @, but cuts the @ automatically. Shows display names instead of handles, and allows modification of those while keeping the mention intact (like cutting the last name).
  • Facebook Messenger appends nothing. Suggests names both with and without @, but prepends the @ automatically. Shows display names instead of handles, and allows modification of those while keeping the mention intact (like cutting the last name).
  • Medium appends nothing. Suggests names only with @, but cuts the @ automatically. Shows display names instead of handles, and allows modification of those while keeping the mention intact (like cutting the last name).
  • LinkedIn appends nothing. Suggests names only with @. Shows display names instead of handles, not sure if it allows modification (didn’t want to send an actual message cause I was testing on someone elses account).
  • Google Plus appends nothing. Suggests names with + or @, but replaces @ with a + automatically. Shows display names instead of handles, but does not allow modification.
  • Diaspora appends nothing. Suggests names only with @, but cuts the @ automatically. Shows display names instead of handles, but does not allow modification.

Other ways of doing it

  • Skype, YouTube, Reddit, Wikipedia, Pinterest, Snapchat, Meetup, Signal (to just include some other popular services) don’t do @mentioning or have their own mechanism for doing it which doesn’t use autocompletion (like Reddit’s /u/username).
  • Discourse suggests names only with @. Shows handles. Funnily enough it appends a space but puts the cursor before the space instead of after:
    Cursor position before @mention:

    Cursor position after @mention, note the extra space behind the name/cursor:

Conclusion

The two main ways of doing it have some different/opposing defining characteristics:

  1. Appending " " (a space). In that case the common other characteristics are:
  • Mostly a user handle is shown, sometimes a full/display name. This depends on which kind of name is prominently visible in other parts of the interface as otherwise it would be confusing.
  • You need to use a @ to get suggestions.
  • The @ is kept in front of the name.
  • You can not modify the handle or display name or it will break the mention.
  1. Appending nothing. In that case the common other characteristics are:
  • The full/display name is shown, not a user handle.
  • Names are suggested both with and without @.
  • The @ is cut from the front of the handle.
  • You can modify the name while keeping the mention intact, which is useful for cutting the last name if you want to be less formal.

In the case of Discourse, all defining characteristics of case 1 (appending a space) are fulfilled. Hence I would recommend to add the space, or rather also put the cursor behind the space. Or if you want to go for appending nothing, drive forward full/display names.

(Not appending a space based on anecdotal evidence that people like to add colons or apostrophes seems to be an edge-case. If you’re so inclined, you could run a metric across the Discourse Meta forum posts: What is the most common character after a user mention: 1) A space 2) A colon : 3) An apostrophe ’/’ 4) A sentence ending mark ./!/? 5) A slash / 6) A dash -/– 7) Something else?)

What do you think @erlend_sh @codinghorror?

11 Likes