Ok, you are wanting several things here…and I’m not sure what your end goal is, which might alter how you want to proceed.
A syntax only controls how display styles are applied in the editor. If you have a draft assigned the WhatsApp syntax, you can type *bold* and you would get the output you want.
As for commands that manipulate text, those are all implemented in actions in your action list. By default, drafts ships with a “Markdown Bold” action which is bound to the keyboard shortcut command-B, and applies Markdown bold formatting to the selected text (either wrapping a text selection with ** or inserting it if there is no selection).
In a default installation, that action is in the “Markdown” action group. You can edit that action and change it to insert a single * if you desire. Which might be what you want if you are only using WhatsApp - the line to change is at the beginning of the one script in that action at looks like, you would just remove one of the asterisks:
// Apply Markdown bold to selection, or insert ** if no selection
const markup = "**";
That would, of course, make it always only insert one asterisk. If you also use Markdown, that might not be desireable. If you wanted to make it smart and syntax sensitive, you could check for the current syntax assignment and replace that one line above in the action with the following:
let markup = "**"
if (draft.syntax.name == "WhatsApp") {
markup = "*"
}
This would only switch to the single * if the WhatsApp syntax is assigned to the current draft.