結論
VScodeのユーザースニペットには
- ユーザースニペット
- グローバルユーザースニペット
の2種類があり、それぞれ挙動が異なる。
詳細
どちらのsnippetも「CのコメントスタイルをサポートするJSON」形式で書かれており、ユーザースニペットをそのままグローバルユーザースニペットに転記しても使えます。
VScodeの英語ページでは
ユーザースニペット→ language snippet
グローバルユーザースニッペト→ global snippet
と表記が分けられていました。
1. ユーザースニペット(language snippet)
特定の言語のスニペットで、例えばJavascript.json
やLaTeX.json
がこれにあたります。
注意点として VScodeの言語モード(右下のとこに出てるやつ)が一致している時にしか表示されません。
例えば、LaTeXのユーザースニペットを出したい場合、ここがLaTeX
になっている必要があります。
2. グローバルユーザースニペット(global snippet)
複数以上の言語に対応しているsnippetはすべてグローバルユーザースニペット(global snippet)だそうです(上記英語のVScodeのページより)。
これは拡張子が.code-snippets
のファイルになります。
scope
プロパティを追記しない限り、言語モードに関わらず全ての言語のファイルで使用可能です。
以下の例ではPythonファイルを編集中でもCtrl+Space
でLaTeXのsnippetが出てきています。
scope
プロパティを"scope": "javascript,html",
みたいに書くと任意の言語のファイルでのみsnippetが有効になるようです。
ちなみに
Stack Overflowなんかを見ていると、自分で設定したsnippetを削除するにはsnippetが入っているフォルダーを開いてファイルごと消すのが一般的なようです。他にいい方法があれば教えてください。