Visual Studio CodeでToDoコメントを一覧で表示する拡張機能「Todo Tree」

コーディング時に、あとで行うタスクやリファクタリングしたい箇所には「TODO」などを付けてコメントを入れておくと、あとから見たときに把握しやすくなります。
今回はそんなタスク用のコメントを一覧表示できる「Todo Tree」についてまとめておきます。
Todo Tree
Todo Treeはコメントの始めに「TODO」などのタグを付けておくと、一覧で表示して、クリックすると該当箇所まで移動できるVisual Studio Codeの拡張機能です。
「あとでやろう」と思ったことをコメントとして残していけば、あとで一覧から探し出せますし、残りのタスク数も確認できます。
単純に「TODO」で文字列検索してもいいのですが、「TODO」以外のすべてのタグを一気に把握できたり、見やすくなります。
Better Commentsとの併用
コメント関連の似た拡張機能に「Better Comments」があります。
これは特定の文字列からはじまるコメントを装飾して見やすくしてくれます。
「TODO」などはBetter Commentsと被っていますし、一覧表示はTodo Treeを使って、装飾はBetter Commentsで管理するとコメントがかなり見やすくなります。
サイドバーのアイコンを増やしたくない場合は「Todo Highlight」
似たような機能の拡張機能に「Todo Highlight」があります。
こちらも「TODO」などのコメントにハイライトが付きますが、コメント全体ではなく「TODO」部分のみがハイライトされます。
また、Todo Treeはサイドバーに一覧表示のアイコンが追加されてしまいますが、こちらはサイドバーには追加されません。
代わりに、コマンドパレットで「List highlighted annotations」を実行すると画面下に一覧が表示されます。
サイドバーにいっぱいアイコンが追加されて並んでいくのがイヤな人は、Todo Highlightの方が合っているかもしれません。
基本的な使い方
コメントの最初に下記のようなテキストを入力すると、ハイライトされます。
- BUG
- TODO
- FIXME
- HACK

これだけだとかなり味気ないので、先ほども紹介した「Better Comments」を使うと下記のように色も付いてかなり見やすくなります。

一覧の表示
Todo Treeをインストールすると、Visual Studio Codeの左サイドバーにアイコンが追加されます。
ここでプロジェクト内にあるタスクが一覧で表示されます。

上のリストアイコンをクリックすれば表示を変えられて、表示方法は全部で3種類あります。

詳細な設定
タグの追加
「”todo-tree.general.tags”」でタスクとして認識されるタグを追加できます。
配列にして、認識されるテキストを追加していくだけです。
"todo-tree.general.tags": [
"BUG",
"bug",
"BUGS",
"bugs",
"TODO",
"ToDo",
"todo",
"TODOS",
"ToDos",
"todos",
"FIXME",
"fixme",
"FIX",
"fix",
"NOTE",
"note"
],タグのグループ化(表記揺れ対策)
「”todo-tree.general.tagGroups”」で、それぞれのタグをグループ化できます。
ファイル検索だと単数形か複数形かを合わせておかないと、検索に引っかからなくて見落とす可能性がありますが、あらかじめ使いそうな表記を書いておくことで、Todo Treeの一覧にすべて表示させられます。
"todo-tree.general.tagGroups": {
"BUG":["bug", "BUGS", "bugs"],
"TODO":["ToDo", "todo", "TODOS", "ToDos", "todos"],
"FIXME": ["fixme","FIX", "fix"],
"NOTE":["note"]
}上記のように設定すると、「bug」や「BUGS」コメントも「BUG」と同じ扱いにしてくれます。
細かい表記を気にしなくてもよくなるので便利ですが、とは言っても表記は揃えておくに超したことはないので、最初に決めてちゃんと統一するようにしておいた方が安全です。
デフォルトの装飾を変更
「”todo-tree.highlights.defaultHighlight”」でデフォルトの装飾を変えられます。
ただ、できることに限りもあるので基本的にはアイコンを設定するくらいにして、細かい装飾は「Better Comments」に任せた方が管理もしやすく、使い分けとして良いのではないかと思います。
"todo-tree.highlights.defaultHighlight": {
"foreground": "white",
"background": "red",
"icon": "check",
"type": "text"
}各タグ個別の装飾を変更
「”todo-tree.highlights.customHighlight”」で各タグの装飾を変更できます。
できることは「”todo-tree.highlights.defaultHighlight”」と同じです。
"todo-tree.highlights.customHighlight": {
"TODO": {
"foreground": "white",
"type": "text"
}
}



CSSのカスタムプロパティ(変数機能)の使い方
Nuxt.jsでaxios-moduleを使ってAPIからデータを取得・表示する|Nuxt.jsの基本
Visual Studio Codeの「Debugger for Chrome」でJavaScriptのデバッグを行う
Visual Studio Codeで簡易的なローカルサーバーを起動して、コード保存時に自動でブラウザをリロードする拡張機能「Live Server」
Visual Studio Codeのエクスプローラー上でファイル・フォルダの複製ができるようになる拡張機能「Duplicate action」
Facebookでシェアした記事の画像反映ができていない時の修正方法
Nuxt.jsの「layouts」を使用してレイアウトの共通化を行う方法|Nuxt.jsの基本
横幅が広がったときの挙動が変わる!CSS Gridの「auto-fill」と「auto-fit」の違い
CSS疑似要素の「:empty」でタグの中身が空のときのスタイルを設定する
Vue.jsで値段を表示するときに3桁ごとにカンマを入れる方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)