$ isn't that rare in javascript
Also having to escape leads to subtle bugs like https://github.com/ajaxorg/ace/issues/1492, so would be good to find a way around it if possible.
Maybe snippet completer can use `data.snippet="..."` instead of `data.value`?