1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【VS Code】ユーザースニペットの有効範囲の指定方法まとめ

Posted at

TL;DR

  • グローバルスニペットの場合は、
    C:\Users\USER\AppData\Roaming\Code\User\snippets
    (任意の名前).code-snippetsを作成する。

  • ワークスペースフォルダスニペットの場合は、
    ${workspaceFolder}\.vscode\
    (任意の名前).code-snippetsを作成する。

  • 特定の言語のみで有効にしたい場合は、
    "scope": "任意の言語の名前"
    をプロパティに設定する(例:"scope": "python")。

  • 全ての言語で有効にしたい場合は"scope"プロパティを省略する。

はじめに

ユーザースニペットには有効範囲として、

  • ワークスペースのみかVSCode全体か
  • 特定の言語のみか言語指定なしか

の2個の観点から合わせて4通りの指定方法があります。

「ワークスペースのこの言語だけに適用したいけどどうすればいいの?」
と言った感じになったので、この機会にまとめてみようと思います。

グローバルスニペット

グローバルスニペットは、VSCode内の全体で有効になるスニペットです。

下記の手順:

  1. F1キーでコマンドパレットを開き『Configure User Snippets』を選択する
  2. 候補の中から『New Global Snippets file...』を選択する
  3. ユーザースニペットのファイル名を入力する(今回はfooを入力しました)

を実行すると、foo.code-snippetesという名前のJSONファイルが生成されます。
Windows版だと、
C:\Users\USER\AppData\Roaming\Code\User\snippets
こちらのフォルダ配下にあります。

image.png
image.png
image.png

スニペット内は、以下のような感じで書きます。

foo.code-snippets
{
    "MainFunction": {
        "scope": "python",  // これを省略すると全ての言語で有効になる
        "prefix": "fmain",
        "body": [
            "def main() -> None:",
            "    $0",
            "",
            "",
            "if __name__ == \"__main__\":",
            "    main()",
            ""
        ],
        "description": "Template of main() function"
    }
}

ここで注目するのが"scope"です。
この"scope"キーで、このスニペットを有効にする範囲を設定できますが、この"scope"キーは省略が可能です。
なので、すべての言語で有効にしたいときは、このキーを無くすだけでOKですね。

ワークスペースフォルダスニペット

image.png

グローバルスニペットと同じ要領で、今回は『New Snippets file for (ワークフォルダ名)』を選択します。
名前を入力すると、${workspaceFolder}\.vscode\内にスニペットファイルが生成されます。

スニペットファイルの書き方は、グローバルスニペットと全く同じなので省略します。

おわりに

言語指定のグローバルスニペットに関しては、python.jsonみたいなファイルを作成することでも可能ですが、今回はなるべく作り方を共通化したかったので省略しました。
(ちなみに、python.jsonで作成すると、デフォルトで"scope": "python"が付く感じです)

書き始めて見たら全然まとまりませんでしたが、参考になれば幸いです。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?