メインコンテンツへスキップ

VSCodeの設定がいい感じになってきた

·206 文字·1 分
技術 VSCode 開発環境

コードエディタ、何使ってますか? 僕は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と比べると全然機能不足って感じですが、軽量なことを考えると十分使えると思います。他に強化するとしたらあとは後置補完とか、リファクタリング機能とかですかね。あんまりやりすぎて重たくなったら本末転倒なのでいい塩梅を見つけたいです。