たまにはちょっと気分転換として、わたしの開発環境の紹介でも書いてみようかな、という気分だったので、
普段わたしが使っているテキストエディターである、 Visual Studio Code に入れている拡張機能について紹介しようと思います。
Programming Language
プログラミング言語系の拡張機能たち。
わたしが多種多様なプログラミング言語を触っている影響で、そこそこ多いかもしれない?
Astro
仕事で Astro を触ることがちまちまあるので、それの拡張機能です。
C/C++ Extension Pack
基本的には C++ は Visual Studio でやっているのですが、まぁ VSCode でいじれても良いだろうと言うことで。
あとは、後述する Blender 用の拡張がなぜかこれを要求しているので入っているのもある。
C#
上と同じく、基本は Visual Studio でやっているものの、あって損では無いのと、 Unity C# Reference を見るのに使う感じ。
CMake Language Support
一部 C++ プロジェクトで CMake を使用しているので、それのシンタックスハイライトとコード補完を行うためのもの。
割と賢い。
Docker
Dockerfile
を書くために入れていたけど、今の PC は仮想化機能を使うと死ぬので使ってない。
ついでに仕事でも Docker を使う機会が無いので消した。が、また使うときになったら入れると思う。
DotENV
いわゆる .env
を書くための拡張機能。
HashiCorp Terraform
インフラ管理には Terraform 使うよね???っていうアレです。
ただ、個人的には WebStorm の拡張のほうが出来が良い気がしているので、そっちを使いがち。
MDX
ブログ書くときに使う。
一応 Markdown ではあるものの、 MDX としてコンパイルしてたはずなので。
PowerShell
PowerShell を書くために入れてはいるものの、そもそもめったに書かない。
Prisma
DB スキーマ定義言語?である Prisma の拡張機能。
個人開発で Next.js で DB を使うとき、基本は Prisma でやっているのでそれで。
そうじゃなくても、 Prisma の記法自体はかなりわかりやすいと思っているので、ありとあらゆる言語がこれから DB クライアント生成されて欲しい。
Python
Python を書くための拡張機能。
Blender 拡張だったり、 NekoDraw だったりでバリバリ使ってる。
rust-analyzer
Rust 用の拡張機能。
CLI ツールを書くときは、基本的には Rust を使っているので、それが理由で入れてある。
たまに裏で死んでる気配がある。
Solidity
Ethereum 系のコントラクトを書くときに使ってた拡張機能。
こっちは基本機能を提供してくれる。
Solidity Visual Developer
Ethereum 系のコントラクトを書くときに使ってた拡張機能。
アドレスホバーするといろんな情報出してくれたり、メソッドのシグニチャだしたり出来るので、それで使ってた。
TOML Language Support
人に読みやすい設定言語コト TOML を書くときに使う拡張機能。
個人で作ってる CLI は全部 TOML で設定を保存しているので、それをいじるときに使ったりする。
Vue Language Features (Volar)
Vue 用の拡張機能。仕事で使ってる。
ただ、裏の tsc がクソ重いので、弱いマシンで起動させると死ぬ。
x86 and x86_64 Assembly
たまにアセンブリ言語を殴ってることがあるので、それのハイライトに使ってる。
XML
VSCode そのままでも XML 動くじゃん?って話ですが、これは XML の言語サーバーが内蔵されていて、 XML Schema が存在している場合はバリバリ補完が効くようになる。
もちろん、不正なタグを突っ込むとそこにエラーも出してくれる。
まぁ、最近は XML を書くことはもう無いと言えば無いのですが。。。
YAML
上と同じく、こっちも YAML の言語サーバーが内蔵されている。
ある程度のものは schemastore.org
あたりから引っぱってくれるし、もし手元に JSON Schema があるなら、
# yaml-language-server: $schema=/path/to/relative/schema.json
ってすれば、それをベースに補完が効くようになる。
Code Quality
コードのクオリティを保つための拡張機能たち。
autopep8
Python 用のコードフォーマッタ。
正直動いていない気もする。
Code Spell Checker
エディター上で動くスペルチェッカー。
スペルミスしてると波線引いて怒ってくれるが、英語のみなので、日本語が下手だと役にたたない。
EditorConfig for VS Code
個人的には .editorconfig
使わない派 (いまその役目はだいたい JS なら ESLint、 Rust なら rustfmt のように、言語そのものがになっているので) なんですが、使っているプロジェクトがいくつかあるので入れている感じ。
ESLint
言わずもがなの ESLint。
GitHub Copilot
AI プログラマーこと Copilot。
個人的には 5 割使えたら良いくらいの精度なので、 Twitter で皆が騒いでる「これでエンジニアいらなくなる!」が実感できていなくて寂しい。
IntelliCode
こっちは MS の AI プログラマー。
Visual Studio は IntelliCode が有効になっているので、それに合わせて使ってる感じ。
IntelliCode API Usage Examples
こっちは MS の AI プログラマー (2)。
ただ、こちらは GitHub から、メソッドのシグニチャを検索して、使い方を教えてくれる。
たまに使い方忘れるメソッドとかある場合はすごく便利。
isort
Python の import をソートしてくれるだけ。
たぶん動いていない気もする。
Markdown All in One
Markdown の便利機能詰め合わせセット。
テーブルとかフォーマットしてくれる。
Prettier - Code formatter
いまどき Prettier 使うのを許してくれない現場は滅べばいいと思うんです。
Stylelint
なんやかんやで最終的には公式でリリースされた Stylelint の拡張機能。
ただ、そもそも最近は CSS を書くことが減ってきているので、役目は減りつつある。
Tailwind CSS IntelliSense
Tailwind CSS でスタイリングするときに実質必須となる拡張機能。
クラス名覚えている人なんていないと思うので、クラス名が覚えられないアンチの方は使ってみてください。
Others
その他便利系。
Blender Development
Blender のアドオンを VSCode 経由でデバッグできるようにしてくれる拡張機能。
VS Code で Blender アドオン開発するなら実質必須。ただし最近のバージョンでは 2.xx は動かないので注意。
GitLens - Git supercharged
CodeLens の Git 版。
いつ変更されたか、とかを CodeLens 風に出してくれる。
便利機能を使う場合は有料。
Pretty TypeScript Errors
見づらい TypeScript の型エラーを見やすくしてくれる。
REST Client
VSCode に HTTP 喋らせる拡張機能。 たまにキャッシュが悪さすることがあるので注意。
TODO Highlight
// TODO // FIXME
みたいなコメントをいっぱい付ける人向けの拡張機能。
仕事のコードがこの手のコメントたぶん千個近くあって、撲滅運動しているので入れてる。
わたしは TODO コメントは治安が悪化するのであんまりしません。
vscode-icons
最強のアイコン。
つぶやき
VSCode の拡張機能も徐々に Node.js のパッケージみたく小さくなってきている気配を感じるので、まとめてほしさがある。