0

Visual StudioコードでJavascript用のスニペットを作成したいが、中括弧を含むプレースホルダを使用しますが、Visual Studioではブラケットネストを追跡していないようです。Visual StudioコードJSスニペットエスケープ中かっこ

私のスニペットは次のようなものになります。

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

を、私はこの出力を期待:プレースホルダとしてのsetTimeout構文と

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

     },timeout); 
    }); 

を。

代わりに、私はこれを取得:

明らかに動作しません
OuterFunction(() => { 
    //code 
    InnerFunction(() => { 

    ,timeout)}; 
}); 

私はこの\{とこの{{のように中かっこをエスケープしようとしましたが、うまくいかないようです。これを行う簡単な方法はありますか、単に外側と内側の機能のために2つの別々のスニペットを使用するだけですか?

答えて

0

はでした。この作品は?:

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

が生成されます

InnerFunction(() => { }, timeout);が選択されている
OuterFunction(() => { 
    //code 
    InnerFunction(() => { }, timeout); 
}); 

、その後、タブ移動後のカッコ内。

+0

これは作業コードを生成しますが、内部関数の名前だけがプレースホルダとして選択されます。私の目標は、3-5行目のコードブロック全体を選択することです。 –

+0

更新された答えを見てください。もしそれが '\\}'を使って1行であれば完了します。 – Arg0n

+0

これは完璧に動作します、ありがとう! –

関連する問題