コードエディタ、何使ってますか? 僕はAtom派だったんですが、なくなっちゃったのでVSCode使ってます。学校とかでも結構これを勧められることが多いんじゃないでしょうか。僕は特にこだわりとかはなく、プラグインが豊富で補完がある程度使い物になるコードエディタと言ったらもうこれぐらいしか無いので使ってます。
プログラミングするときは基本的にIDE使うんですが、RustとフロントエンドはVSCodeで書いています。
拡張機能#
主にJS/TSとRustに関連するプラグインのみインストールしています。Reactとかは必要なプロジェクトのみで有効化したりしていますが、あんまりこだわりはないです。
IntelliSense系#
- IntelliCode
- IntelliCode API Usage Examples
- IntelliSense for CSS class names in HTML
- HTML CSS Support
- Path Intellisense
フロントエンドとかGUIで使う系#
僕はバックエンドでJS/TSは使わない(使うときはWebStorm使う)のでJS/TS系もここに入れています。
- Biome
- JavaScript and TypeScript Nightly
- Tauri
- IntelliSense for CSS class names in HTML
- HTML CSS Support
Rust系#
Docs ViewとかError LensとかはRustでしか使わないのでここに入れた。今後Rustのデバッグ関連増えていきそうな予感
- Tauri
- rust-analyzer
- Serial Monitor
- Docs View
- Error Lens
- Even Better TOML
その他#
Dockerは正直いらんかも
- Japanese Language Pack for Visual Studio Code
- Docker
- Code Spell Checker
- Markdown All in One
- YAML
- WakaTime
設定#
本体の設定系#
workbench.startupEditor#
起動時の画面
"workbench.startupEditor": "none"
起動時にそんな画面要らないよね
editor.wordWrap#
折り返しの設定
"editor.wordWrap": "on"
これの設定ステータスバーから変更できるようにしてほしい
window.autoDetectColorScheme#
ダークモードをシステムのモードとあわせる
"window.autoDetectColorScheme": true
Auto Dark Mode(Windowsのソフト)とかと合わせていい感じ
editor.suggest.showKeywordsとeditor.suggest.showWords#
サジェストに文中の単語を表示するか
"editor.suggest.showKeywords": false
"editor.suggest.showWords": false
IntelliSenseとかの賢い補完以外は邪魔なので無効化
emmet.showExpandedAbbreviation#
なんかよくわからないけどhtmlのタグとかを簡単に出せる機能らしいです。
"emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFilesOnly"
最っっっっ高に邪魔なのでhtml/css以外で無効化 なんでこれ既定値がalways
なんだよ
editor.linkedEditing#
htmlタグをいい感じに編集できるようになったりする
"editor.linkedEditing": true
便利
explorer.confirmDelete#
ファイルの削除時に聞かない
"explorer.confirmDelete": false
まぁうざいよね
files.autoSaveとfiles.autoSaveWhenNoErrors#
エディターがフォーカスを失ったときに自動で保存
"files.autoSave": "onFocusChange"
ファイルにエラーがあったときは自動保存しない
"files.autoSaveWhenNoErrors": true,
これはホットロードが結構使われてるフロントエンド界隈だと便利かも? Tauri&Rustの組み合わせと相性は悪いみたいですが…
Git系#
git.autofetch#
定期的にgit fetchしてくれるやつ
"git.autofetch": true
まぁ便利
git.confirmSync#
gitで同期前(pullかな?)に確認をしない
"git.confirmSync": false
git.enableSmartCommit#
ステージされた変更がゼロのときは自動で全部の変更をコミット
"git.enableSmartCommit": true
たまにやらかすけど便利
言語系#
Rust#
多いのでまとめて
"rust-analyzer.inlayHints.bindingModeHints.enable": true,
"rust-analyzer.inlayHints.closureCaptureHints.enable": true,
"rust-analyzer.inlayHints.closureReturnTypeHints.enable": "always",
"rust-analyzer.inlayHints.discriminantHints.enable": "always",
"rust-analyzer.inlayHints.expressionAdjustmentHints.enable": "always",
"rust-analyzer.inlayHints.genericParameterHints.lifetime.enable": true,
"rust-analyzer.inlayHints.genericParameterHints.type.enable": true,
"rust-analyzer.inlayHints.lifetimeElisionHints.useParameterNames": true,
"rust-analyzer.inlayHints.rangeExclusiveHints.enable": true,
"rust-analyzer.inlayHints.reborrowHints.enable": "always",
"rust-analyzer.inlayHints.typeHints.hideClosureInitialization": true,
"rust-analyzer.inlayHints.typeHints.hideNamedConstructor": true,
とにかく全ての情報を表示する設定になっています。必要な~と思ったらだんだん消していこうかなと
"rust-analyzer.check.command": "clippy"
Lintをclippyに変更 Rustをメインで使っている分野が組み込みなので実行前にできるだけ不確定要素(?)を減らしたいのでちょっと重いけどClippy使ってます。
JS/TS#
関数の補完時にカッコを入力する
"javascript.suggest.completeFunctionCalls": true
"typescript.suggest.completeFunctionCalls": true
逆になんでカッコ入らないの設定がデフォルトなのか
さいごに#
こんなもんじゃないでしょうか。さすがにIDEと比べると全然機能不足って感じですが、軽量なことを考えると十分使えると思います。他に強化するとしたらあとは後置補完とか、リファクタリング機能とかですかね。あんまりやりすぎて重たくなったら本末転倒なのでいい塩梅を見つけたいです。