よく書くコードをまとめておく事ができるVSCodeのsnippet機能とは?

便利機能

snippet(スニペット)とは?

何回も書くことになるようなコードをひとまとめにして、名前を付けて登録したものの事。
後から、登録した名前でそのコードの塊を呼び出すことができる(めちゃ便利です)

snippetはどこに書くのか?

画面左下の歯車マークを押すと、以下のようなメニューが出てきますので
「ユーザースニペット」を押します

VisualStudioCodeの操作画面

次に自分のスニペットを登録したい言語のファイルを選んでください

VisualStudioCodeの操作画面

開くとコメントで書かれたお手本が出てきます。
ここに登録したいコードを書き込んでいきます

snippetの登録方法

"スニペット名": {
	    "prefix": "登録しておく名前",
	    "body": [
	    	"ここに呼び出したいコードを書きます"
	    ]
}

スニペットを複数登録する場合はスニペットごとの{}の終わりに ,をつける必要があります(一番下(最後)のスニペットの終わりにはいらない)

スニペット名は好きなものをつけてください

  • “prefix”
    コードを呼び出す時に使う名前なので分かりやすいものがいいと思います
  • “body”
    []の間には、呼び出したいコードを一行ずつ ” ” で囲み書いていきます。
    (複数行の場合は、最後の行以外の末尾には , が必要です↓)
"body": [
    "ここに呼び出したいコードを書きます",
    "最後の行"
]

 ↑をみて複数行の場合、「スニペットの登録(既存のコードに” “や,を書き足す作業)が
  めっちゃめんどくさそう」と思った方…安心してください
既存のコードを渡すと” “や,を付けて返すプログラムを作ったのでぜひ使って下さいねヾ(•ω•`)o

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<string> str_vec;
    for (int i = 0; i <= n; i++) {
        string s;
        //行単位で受け取る
        getline(cin, s);

        string t;
        for (int j = 0; j < s.size(); j++) {
            //" "の中に"が出てくる場合、エスケープシーケンスを使う
            if (s[j] == '"') t.push_back('\\');
            t.push_back(s[j]);
        }
        str_vec.push_back('"' + t + "\",");
    }

    //出力
    //スニペットのbody部分を出力します
    cout << endl << "////////////////////////////////////////////////////////////////////////////////////////////////////////" << endl << endl;
    for (int i = 1; i < (int)str_vec.size(); i++) {
        //最後の行はコンマがいらない
        if (i == (int)str_vec.size() - 1) str_vec[i].pop_back();
        cout << str_vec[i] << endl;
    }
}

入力例
コード行数(n)
コード1

コードn

実際に使ってみる✨

このようなスニペットを登録したとします(c++)

VisualStudioCodeの操作画面

すると…


VisualStudioCodeの操作画面

出てきましたね!
この写真では一番上の候補がスニペットです。

最後に

他にも”description”や”scope”とか$1とか色々あるみたいですが長くなりそうなので
そっちはまた今度、追記しようと思います…
(気になる方は調べてみてください)

私は8ヶ月くらいVSCodeを使っていて、この機能を知ったのはつい最近でした…
この記事でより多くの人に、この便利機能を知ってもらえるとうれしいです
最後まで読んでいただき、ありがとうございました( ゚д゚)つ Bye

コメント

タイトルとURLをコピーしました