It works... sort of. I've managed to get the usernames to display when you write @ or + followed by some words.
I need to fix the delete key to ensure it removes chars from the name but it's exhibiting all the right kinds of behaviour.
My next steps will be to a) work on highlighting, b) work on replacing, c) theming