2017-01-25 23 views
1

崇高なテキストでは、通常の文書を書くときにスニペットファイルの空白を含む複数行のコードスニペットを定義できますが、Visual Studioコードの同様の複数行のスニペットについては、各行をリスト内の二重引用符で囲まれた文字列要素に分解したり、1つの文字列に明示的なASCII改行(\ n)文字を使用しなければならないJSONエントリです。複数コードのコードスニペットをVSコードで定義する方がいいですか?

特にコードが長い場合、コードスニペットを定義するためのより良い方法があるのだろうかと思います。

答えて

0

各行をリスト内の二重引用符で囲まれた文字列要素に分割する必要があります。

これは完全に真実ではない、あなたは、例えば、\n文字を単一の文字列を使用することができます。もちろん

"For loop": { 
    "prefix": "for", 
    "body": [ 
     "for (int i = 0; i < $0; i++) {\n\n}" 
    ] 
} 

を、長いスニペットのために、これはまだ非常に快適な(多分ありません悪い)オプション。私は今、もっと良い方法があるとは思わない。

+0

thxです。私はスニペットでアスキー改行を使用しないことを好むと言って忘れました。これはほとんどのエディタでスニペットを定義する方法ではありません。それが私の質問に追加されます。 – kakyo

1

あなたはこのようにそれを行うことができます。

"Create for loop":{ 
    "prefix": "mkfor", 
    "body":[ 
     "for(int i = 0; i < 3; i++)", 
     "{", 
     " //code goes here", 
     "}" 
    ], 
    "description": "Creates a for loop" 
    } 

か、Easy Snippet Maker拡張機能をインストールする場合は、あなたがテキストを強調することで、あなたのスニペットを作成することができます。

+0

ありがとうございます。あなたがここでくれたスニペットは、私の疑問の正確な問題です。ダブルクォートの複数の文字列をコンマで区切りたいとは思いません。私はその拡張を試してみましょう。 – kakyo

2

複数行のスニペットを作成するには良い方法がありません。それはおそらく私が最も良く見たいと思う機能の1つです。別の答えが示唆しているように、スニペットの作成に役立ついくつかの拡張機能があります(thisthisなど)。しかし、彼らは文字通りのドル記号を免れず、インデントはあまり大きくありません。

この回答を参照すると、Pen by Denis Malinochkinthis issueからリンクされています)を見つけました。しかし、それはまた、ドル記号を正しく逃していないので、私はそれをフォークし、リテラルドル記号を扱うためにこの行を追加しました。 ここにあります:https://codepen.io/cbejensen/pen/WXLxaE

希望に役立ちます!

P.S. - これは私が追加した行です:

line = line.replace(new RegExp(/\$/, 'g'), '\\$'); 
+0

ありがとう!それは狂って、この仕事をするためにハックする必要があります。 – kakyo

関連する問題