1.環境
この記事ではmacOS Big Sur ver:11.6 にインストールしたVisual Studio Codeバージョン: 1.61.1 (Universal)を使っています。
2.やりたいこと
VScodeに備わっているデフォルトでのfor予測変換は以下のようなテンプレが表示されます。
for (int i = 0; i < n; i++)
{
/*code*/
}
このテンプレの何が不満かと言いますと、「最初の"{"の位置が")"の後ろに来ていないこと」です。つまり以下のようなcustomed_forを予測変換として表示することを目指します。
for (int i = 0; i < n; i++){
/*code*/
}
2.やること
0.何をするか
VScodeには自分のテンプレートを予測変換として保存できる「スニペット(snippet)」という機能があります。このスニペットを編集します。mac OSとwindowsでは設定画面の開き方の違いはあるものの、以下の手順で予測変換として目指すfor文をテンプレートとして表示させられます。
1.スニペットを開く
スニペットの開き方はこちらをご参照ください。
注意していただきたいのはどの言語のスニペットを開くのかという点です。下図の通りさまざまなスニペットがありますが、編集したい言語のスニペットを選択します。例えばpythonの予想変換のテンプレートを編集したい場合は検索欄にpythonと打ち、pythonのスニペットが候補として出てきますので選択して編集していきます。
今回はc++を編集したいので「cpp.json(C++)」を編集します。
2.スニペットを編集する
どの言語のスニペットを編集するか選択すると図のような画面になると考えます。
ここに
"customed_for": {
"prefix": "for",
"body": "for (${1:size_t} ${2:i} = 0; ${2:i} < ${3:count}; ${2:i}++){\n\t${4:/* code */}\n}"
}
を追加します。
コード追加後にスニペットを保存してください。(macならcommand+s, windowsならCtrl+sで保存できます。)
なお、上記のコードを追加後の図を下に示します。
3.Snippet Suggestionsをtopにする。
VScodeの設定画面を開き、検索欄で「Snippet Suggestions」と検索します。すると
Editor: Snippet Suggestions
他の修正候補と一緒にスニペットを表示するかどうか、およびその並び替えの方法を制御します。
こんなのが出てくるはずです。これをtopにします。
4.Snippet Suggestionsをtabで切り替わるようにする。
- こちらを参考にtabで予測変換を降下できるようにしてください。
5.動作確認
適当なファイル(ただし編集した言語のファイル)を作成し"for"と打ってから0.5秒くらい待ち、予測変換候補を見てくだい。下図のように2つ目にcustomed_forが表示されているはずです。
tabで2つ目のforまで下ってenterでforを出力すると下図のようになります。この灰色の部分はtabでジャンプできることを表しています。
3.まとめと余談
以上で目的としていた「予測変換のforをカスタマイズする」が完了しました。
現状はデフォルトの予測変換をカスタマイズすることはできない、らしいのですが無理矢理にでもデフォルトのforを書き換えられないものかと考えました。
そこでVScodeの設定ファイルをターミナルで検索したのですが設定ファイルが見つかりませんでした。(おそらくjsonファイルではないかと思って検索かけたのですが、見つかりませんでした。)
VScodeのデフォルトスニペット設定ファイルの場所を知っている方いましたらお教えいただけると幸いです。
4.参考文献一覧
https://qiita.com/12345/items/97ba616d530b4f692c97
https://qiita.com/ryosyo/items/35bac68a05961be1e3c1
https://keikenchi.com/how-to-find-out-the-default-snippet-list-in-vs-code