这些天,我发现自己正在做大量的jQuery,因此我开始将我所做的一些常见事情抽象成摘要。我期待与社区分享这些内容,但现在遇到了一个问题。
代码片段中的文字是通过在文字名称周围添加美元符号($)来定义的,以分隔要提供的值的位置。这很困难,因为jQuery使用美元符号来使用其许多功能。
代码段的转义序列是什么,因此我可以使用美元符号,并使代码段仍然起作用?
这些天,我发现自己正在做大量的jQuery,因此我开始将我所做的一些常见事情抽象成摘要。我期待与社区分享这些内容,但现在遇到了一个问题。
代码片段中的文字是通过在文字名称周围添加美元符号($)来定义的,以分隔要提供的值的位置。这很困难,因为jQuery使用美元符号来使用其许多功能。
代码段的转义序列是什么,因此我可以使用美元符号,并使代码段仍然起作用?
Answers:
要使用文字,请$尝试将其加倍:$$
$$方法)VSC假定您要在这些位置上执行某些操作。
                    为Code元素定义了“定界符”属性。默认为$,但是您可以将其设置为其他字符,例如〜左右。
...
<Snippet>
<Code Language="JavaScript" Delimiter="~"><![CDATA[(function ($) {
    $(document).ready(function () {
    });
})(jQuery);]]></Code>
</Snippet>
...
Delimiter是一个属性,它指定用于在代码中描述文字和对象的定界符,其确切目的是在$需要时替换。<Code Language="csharp" Delimiter="!"><![CDATA[Log.Debug(message: $"!end!");]]></Code>
                    尽管jQuery响应是有效的,但使用$表示法是一种更好的语法。
我找到了一个答案:将$字符设为默认值为$的文字。
<Literal Editable="true">
<ID>dollar</ID> <ToolTip>replace the dollar sign character</ToolTip> <Default>$</Default> <Function> </Function> </Literal>
    我将其用于C#中的formattable字符串。我用以上从例如科里-捕鸟逐字:
<Literal Editable="true">
    <ID>dollar</ID>
    <ToolTip>Replace the dollar sign character</ToolTip>
    <Default>$</Default>
    <Function></Function>
</Literal>
用法(为清晰起见,添加了换行符以使Stack Overflow清晰可见,而不是原来的样子。):
    string errMessage = $dollar$"Error occurred in
       {MethodBase.GetCurrentMethod().Module}, in procedure
       {MethodBase.GetCurrentMethod().Name}: {ex.Message}".ToString();
谢谢,可怜的鸟儿!
我发现上面的cory-fowler答案很有用,但感到沮丧的是,在VS 2019中执行C#代码段时预先选择了文字$ ...
它也忽略了我的$ end $关键字...
<![CDATA[string Literal_edit_true = $dollar$"$end$";]]>
只需更改即可Editable=false解决问题,现在光标出现在$ end $处,可以输入...
<Snippet>
    <Code Language="CSharp">
        <![CDATA[string Literal_edit_false = $dollar$"$end$";]]>
    </Code>
    <Declarations>
        <Literal Editable="false">
            <ID>dollar</ID>
            <ToolTip>Replace the dollar sign character</ToolTip>
            <Default>$</Default>
            <Function></Function>
        </Literal>
    </Declarations>
</Snippet>
    
jQuery代替$