Escaping the $ character in snippets

2019-02-07 16:09发布

I find myself doing a ton of jQuery these days, so I started to abstract out some of the common things I do into snippets. I look forward to sharing these with the community, but I'm running into an issue right now.

The literals in snippets are defined by adding dollar signs ($) around the name of the literal to delimit where the value you would like to provide will go. This is difficult because jQuery uses the dollar sign notation in order to use a lot of its functionality.

What is the escape sequence for snippets, so I am able to use the dollar sign, and have my snippets still function?

5条回答
我想做一个坏孩纸
2楼-- · 2019-02-07 16:18

Although the jQuery response is valid, it's a nicer syntax to use the $ notation.

I've found an answer: Making the $ character a literal with a default value of $.

<Literal Editable="true">

<ID>dollar</ID> <ToolTip>replace the dollar sign character</ToolTip> <Default>$</Default> <Function> </Function> </Literal>
查看更多
啃猪蹄的小仙女
3楼-- · 2019-02-07 16:27

There is an "Delimiter" attribute defined for a Code element. This defaults to $ but you can set it to a different character like ~ or so.

...

<Snippet>
<Code Language="JavaScript" Delimiter="~"><![CDATA[(function ($) {
    $(document).ready(function () {

    });
})(jQuery);]]></Code>
</Snippet>

...

查看更多
Lonely孤独者°
4楼-- · 2019-02-07 16:27

I used this for a formattable string in C#. I used the example above from cory-fowler verbatim:

<Literal Editable="true">
    <ID>dollar</ID>
    <ToolTip>Replace the dollar sign character</ToolTip>
    <Default>$</Default>
    <Function></Function>
</Literal>

Usage (line breaks are added for clarity on Stack Overflow, not in the original.):

    string errMessage = $dollar$"Error occurred in
       {MethodBase.GetCurrentMethod().Module}, in procedure
       {MethodBase.GetCurrentMethod().Name}: {ex.Message}".ToString();

Thanks, cory-fowler!

查看更多
Anthone
5楼-- · 2019-02-07 16:34

This is the right way: \\$.

VSC with the \\ interprets that it is a character more and not a comidin.

查看更多
Melony?
6楼-- · 2019-02-07 16:38

To have a literal $ try doubling it: $$

查看更多
登录 后发表回答