LoginSignup
40

More than 1 year has passed since last update.

VSCodeでプロジェクト単位の拡張機能を設定する

Last updated at Posted at 2019-03-23

リポジトリごとに拡張機能を共通化したい時ってあると思います。

その時の設定を残しておきたいと思います:santa:

TL;DR

  • vscodeのワークスペースを使用する(限定的にする)
  • vscodeを使用しているチームにおすすめ

※今回はPrettierを例にしていますが、

  • 拡張機能を共通化(.vscode/extensions.json)
  • リポジトリでVSCodeの挙動を共通化(.vscode/settings.json)

が目的であれば一読の余地ありかと!:santa:

対象読者

  • vscode v1.52.1以上
  • チームでvscodeを使用している

背景

例えば、チームでPrettierを既存のプロジェクトに導入していくのが決まったとして、大体Prettierを入れる目的って、フォーマッター使用してレビュー負担を減らしたいだったりすると思います:santa:

そうであれば、Prettierを発動させるベストなタイミングは

  1. プロジェクトを担当しているメンバーのエディター(vscode)上
  2. ファイル保存したタイミング
  3. 拡張機能もたっくさんあるから同じの使いたいね
  4. でも、他のプロジェクトには影響させたくないね

上記の要望はjsonファイル用意して解決していきましょう:santa:

ファイルを保存したタイミングでフォーマッターを適応させる

  1. command + ,で設定を開きましょう(Mac)
  2. ワークスペースの設定のタブをクリック(これしないと、全体適応になってまう)
  3. 検索欄に「onsave」とかいれると、「Format On Save」がデフォルトでチェック外れているので、チェックいれる

スクリーンショット 2019-03-23 20.38.16.png

すると、自動で.vscode/settings.jsonが作成されたと思います
それがあるフォルダ配下にだけ、ユーザー設定に上書きされて適応されます:santa:

これで、ファイル保存時にPrettierを適応させる準備が整いました:santa:

対象の拡張機能をおすすめさせる

Prettierの拡張機能たくさんありすぎて字が読めなーい!!!ってならないように拡張機能を選びましょう

今回は公式で勧められている拡張機能を選びます

VSCodeの拡張から、prettierを検索して、歯車マークを押すと、
「ワークスペースの推奨事項に追加する」を押すと、「.vscode/extension.json」に対象のIDが配列に追加されれば完了です
スクリーンショット 2021-02-14 19.48.31.png

おすすめ強制機能オン設定

まだこれだけではおすすめ機能を出すことができません:santa:
"extensions.ignoreRecommendations"という項目をfalseにしないと、おすすめされないのです:santa::anger:

ということで、先ほどの.vscodeフォルダにあるsetting.jsonに追記しましょう

setting.json
{
  "editor.formatOnSave": true,
  "extensions.ignoreRecommendations": false
}

結果

上記設定がされたフォルダをvscodeで開くと・・・

vscodeの右下にダイアログが出て、
スクリーンショット 2019-03-23 20.56.44.png

推奨事項を表示をクリックすると、
スクリーンショット 2019-03-23 20.57.53.png

インストールしてほしい、拡張機能を表示させることが出来ましたとさ:santa:

  • .vscode/extensions.json
  • .vscode/settings.json

をGitHubなどのリポジトリにプッシュすれば、これからプロジェクトに参加する人におすすめすることができましたとさ:santa:

めでたしめでたし:santa:

参考

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
40