Javascript Visual Studio代码JS片段转义花括号

Javascript Visual Studio代码JS片段转义花括号,javascript,visual-studio,escaping,code-snippets,curly-braces,Javascript,Visual Studio,Escaping,Code Snippets,Curly Braces,我想在VisualStudio代码中为Javascript创建一个片段,其中包含一个包含花括号的占位符,但VisualStudio似乎没有跟踪括号嵌套 我的代码片段如下所示: "MySnippet": { "prefix": "snippet", "body": [ "OuterFunction(() => {", " //code", " ${1:InnerFunction(() =>{", "

我想在VisualStudio代码中为Javascript创建一个片段,其中包含一个包含花括号的占位符,但VisualStudio似乎没有跟踪括号嵌套

我的代码片段如下所示:

"MySnippet": {
    "prefix": "snippet",
    "body": [
        "OuterFunction(() => {",
        "   //code",
        "   ${1:InnerFunction(() =>{",
        "       $2",
        "   },timeout);}",
        "});"
    ],
    "description": "create a thing"
}
我期望这一结果:

OuterFunction(() => {
       //code
       InnerFunction(() => {

       },timeout);
    });
使用setTimeout语法作为占位符

相反,我得到的是:

OuterFunction(() => {
   //code
   InnerFunction(() => {

   ,timeout)};
});
这显然不起作用

我尝试过像这样避开这个大括号,但是它似乎不起作用。有没有一个简单的方法可以做到这一点,或者我只需要为外部和内部函数使用两个独立的代码段?

这能起作用吗

"MySnippet": {
    "prefix": "snippet",
    "body": [
        "OuterFunction(() => {",
        "   //code",
        "   ${1:InnerFunction(() => { $2 \\}, timeout);}",
        "});"
    ],
    "description": "create a thing"
}
产生:

OuterFunction(() => {
   //code
   InnerFunction(() => {  }, timeout);
});

其中
InnerFunction(()=>{},超时)选中;
,然后在制表符后放在括号内。

这会生成工作代码,但只选择内部函数的名称作为占位符。我的目标是选择第3-5行中的整个代码块。请参阅更新的答案,如果它位于一行中,则可以使用
\\}