Slack’s new WYSIWYG input box is terrible
FWIW, the editor they use, at least on the web, seems to be <a href="https://github.com/quilljs/quill" rel="nofollow">https://github.com/quilljs/quill</a>.<p>I'm guessing Slack implemented something a-la <a href="https://github.com/patleeman/quill-markdown-shortcuts" rel="nofollow">https://github.com/patleeman/quill-markdown-shortcuts</a>, but not very well...<p>In general the model of allowing separate positions for cursor inside vs outside a span is a huge improvements over WYSIWYG assigning "sticky formatting" to characters.
(Hat tip to TeXmacs which was maybe first time I've met that UI pattern.)
But you have to do it consistently.  E.g. end of literal block has separate inside/outside but start doesn't.<p>(Of course, in source editing, it comes for free – formatting is delimited by characters like * or ` and cursor is clearly before or after the delimeter.)<p>----<p>I believe there is a saner middle ground — formatting as syntax highlighting.  You're still editing the source, no hidden state, just immediate in-place feedback.
(Nowdays some call this "WYSIWYM" though it's not exactly same)
Examples: 
<a href="https://stackedit.io/" rel="nofollow">https://stackedit.io/</a>, <a href="https://codemirror.net/demo/variableheight.html" rel="nofollow">https://codemirror.net/demo/variableheight.html</a>,
<a href="https://simplemde.com/" rel="nofollow">https://simplemde.com/</a>, 
<a href="https://laobubu.net/HyperMD" rel="nofollow">https://laobubu.net/HyperMD</a> (the latter is borderline, hides too many formatting chars IMHO, but does reveal them when you move cursor to edit.)