@Override
    public String getPreparedText(int tabstopNumber) {

        // Special characters need escaping so that we can support tokens, see demo to see how this works in practice

        final String escapedText =
                tabstopText
                        .replace("\\", "\\\\") // backslash becomes double backslash
                        .replace("$", "\\$")   // dollar becomes backslash dollar
                        .replace("}", "\\}");  // right brace becones backslash right brace
        return "${" + tabstopNumber + ":" + escapedText + "}";
    }
Text that should fit inside a tabstop, the first tabstop is selected after a substitution, and subsequent tabstops are moved between by
pressing the tab button. Tabstops are identified using an id.

@param tabstopText The literal text that makes up part of the tab stop. This does not need to be escaped, escaping will be handled automatically.
stroom-core-client-widget/src/main/java/edu/ycp/cs/dh/acegwt/client/ace/AceCompletionSnippetSegmentTabstopItem.java