0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(コーディング)習慣をリマインドしてくれるVSCode拡張を作った

Posted at

はじめに

コーディング中,意識したいことを忘れていませんか?

「ETC?(変更しやすいか?)」「DRY原則は守れてる?」といったプログラミング原則.頭では分かっているつもりでも,実際のコーディング中にはつい忘れてしまう…そんな経験はないでしょうか.

私もその一人でした.「あ,ここDRY原則守れてなかった」と後から気づくことがよくありました.

そんな時,たまたま読んでいた「達人プログラマー」で,面白い提案を見つけました:

ファイルを保存するたびに「ETC?」というメッセージを表示するようにし、今入力したコードが変更しやすいものになっているかを考えられるようにしてください。

ほな作るか…でも,保存時だけじゃなくてもっと色々なタイミングでリマインドしてくれたら便利なのでは?

そう考えて,トリガーベースで通知してくれる拡張機能を作りました.

作ったもの

Code Mantra

というVSCode拡張機能です.

image.png

「Mantra(マントラ)」は,繰り返し唱える言葉や真言を意味します.習慣化したいことを繰り返しリマインドすることで,思考習慣として定着させたいという想いを込めました.

ファイル保存時やコード編集時,一定時間経過時など,様々なタイミングで習慣化したいことをリマインドしてくれます.

何ができるの?

基本的な使い方

  1. Marketplaceからインストール

  2. デフォルトで保存時に通知が出る(ETC?)

  3. TreeViewから自由にトリガーを追加・編集

    image.png

トリガーの種類

Code Mantraは,11種類のトリガーを用意しています.メッセージや条件(行数・時間など)は自由に設定できます.

以下はその一部を抜粋:

トリガー ユースケース例
onSave (ファイル保存時) 保存時に「ETC? (Easier To Change?)」とリマインド
onWorkspaceOpen (VSCode起動時) 起動時に「今日の目標は?」
onCreate (ファイル作成時) 作成時に「ファイル名は明確で説明的ですか?」
onFileSizeExceeded (指定行数超過時) 300行を超えた時に「ファイルが大きすぎる.分割を検討しては?」
onIdle (一定時間非アクティブ時) 15分間操作なしの時に「行き詰まった?休憩しませんか?」
onTimer (定期的に) 60分ごとに「そろそろ休憩しませんか?」

他にも複数のトリガーがあります.

TreeViewでの管理

全てのトリガーは,専用のTreeViewから視覚的に管理できます.

image.png

  • 追加➕: トリガーを追加
  • 編集✏️: 編集
  • 削除🚫: 削除
  • 有効✅/無効❌: 切り替え

技術的な話(軽く)

使用技術

  • TypeScript
  • VSCode Extension API
  • TreeView / QuickPick / InputBox でUI構成

基本的にはシナリオを考えたらVSCode標準のAPIを組み合わせてトリガー条件を表現する方法を考えていくという感じで作っていきました.

WebViewで独自UIを作るのではなく,VSCodeネイティブのコンポーネントを使う方針にしました.

おわりに

Jules Extensionに続いて,2つ目のVSCode拡張機能を公開できました.

まだまだ改善の余地はたくさんありますし,至らない点もあると思います(拡張機能にもこの記事にも).

もし気に入っていただけたら,GitHubにスターをつけてもらえると嬉しいです⭐

フィードバックやIssue,PR,Marketplaceからの評価なども大歓迎です!

リンク


注意: この記事は2025年10月31日時点の情報に基づいています.Code Mantraは継続的に開発中のため,機能や仕様が変更される可能性があります.最新情報はGitHubやMarketplaceをご確認ください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?