結論
以下のファイルを.vscode
フォルダ内におくだけで、フォルダごとに異なるVSCodeの設定を変更できます。
僕が新規プロジェクトやコードを試したいときに使っているテンプートです。
.vscode/settings.json
{
"workbench.colorCustomizations": {
"activityBar.foreground": "#fff", // 選択したアイコンの色
"activityBar.background": "#127CC9", // アクティビティバーの背景色
"activityBar.inactiveForeground": "#333" // 選択されていないアイコンの色
},
"workbench.editor.tabSizing": "shrink", // タブのサイズをファイル名に合わせる
"workbench.tree.renderIndentGuides": "always", // ファイルツリーにインデントガイドを表示
"workbench.tree.indent": 16, // ファイルツリーのインデントの幅
"terminal.integrated.copyOnSelection": true, // 選択した文字列をコピー
"editor.tabSize": 4, //タブのサイズを変更
"editor.guides.bracketPairs": true, // 対応する括弧を強調表示
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter", // blackをデフォルトフォーマッタに設定
// "editor.defaultFormatter": "ms-python.flake8", // flake8をデフォルトフォーマッタに設定
"editor.formatOnSave": true // 保存時に自動フォーマット
},
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit" // 保存時にimportを自動整理
},
// "editor.defaultFormatter": "esbenp.prettier-vscode", // prettierをデフォルトフォーマッタに設定
"flake8.args": ["--max-line-length=120", "--ignore=E203,E402,W503"], // flake8の設定
"black-formatter.args": ["--line-length=120"], // blackの設定
"isort.path": [
"/home/username/anaconda3/bin/isort" // which isortで取得したPathを記入したら、isortが使えるようになる
],
"files.insertFinalNewline": true, // 最後の行を保存時に自動改行
"files.trimTrailingWhitespace": true // 末尾のスペースを保存時に自動削除
}
extensions.json
は拡張機能の推薦をしてくれるだけなので、.vscode
フォルダ内に置かなくてもかまいません。
(コメントアウトしている拡張機能も僕が普段使っているもので、おすすめです)
.vscode/extensions.json
{
"recommendations": [
"ms-python.python", // Python
"donjayamanne.python-environment-manager", // Pythonの仮想環境を管理
"mgesbert.python-path", // Pythonのパスを設定
"ms-python.black-formatter", // black formatter
"ms-python.flake8", // flake8 formatter
"kevinrose.vsc-python-indent", // Pythonのインデントを調整
"nhoizey.gremlins", // エラーになりやすい文字を表示
"oderwat.indent-rainbow", // インデントを虹色に表示
"ms-python.isort", // isort
"mosapride.zenkaku", // 全角スペースを表示
// "github.copilot", // GitHub Copilot
// "eamodio.gitlens", // GitLensを使うための
// "shd101wyy.markdown-preview-enhanced", // Markdownのプレビューを強化
// "mechatroner.rainbow-csv", // CSVの列を色分け
// "gruntfuggly.todo-tree", // TODOコメントを表示
// "redhat.vscode-yaml", // YAMLを編集
// "njqdev.vscode-python-typehint", // Pythonの型ヒントを表示
// "mkxml.vscode-filesize", // ファイルサイズを表示
// "streetsidesoftware.code-spell-checker", // スペルチェックを行う
// "formulahendry.auto-rename-tag", // HTML/XMLのタグを自動でリネーム
// "softwaredotcom.swdc-vscode", // Softwareの利用状況を表示
// "usernamehw.errorlens", // エラーを強調表示
// "emilast.logfilehighlighter", // ログファイルをハイライト
// "pkief.material-icon-theme", // アイコンを変更
// "ibm.output-colorizer", // 出力結果をカラー表示
// "ms-vscode-remote.remote-ssh", // SSHでリモート接続
// "tomoki1207.pdf", // PDFを表示
// "christian-kohler.path-intellisense", // パスを補完
// "shardulm94.trailing-spaces", // 末尾のスペースを赤く表示
]
}
備考
主にPythonプロジェクト向けになります。
とりあえず使ってみて、
「エディターの色をプロジェクトごとに変えたい」
「改行する文字数120だと見切れるから80にしよう」
「Formatter(勝手に整形してくれるやつ)はflake8がいい」
と思ったらその都度変更することができます。
あとFormatterなどは拡張機能を入れることで機能します。