这些天,我发现自己正在做大量的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
代替$