Zenn
🧙‍♂️

VSCodeのdiffエディタでカーソル位置を同期する拡張を作った話

2025/03/24に公開

VSCodeでコードの差分(diff)を確認しているときに、片方のペインでカーソルを動かすと、もう片方に切り替えた際に「さっきどこ見てたっけ…?」と迷子になること、がよくありました。

この問題を解決するために、VSCodeの拡張機能を作りました。


🧠 作った拡張機能:Cursorghost

🔗 Cursorghost - Visual Studio Marketplace

この拡張機能は、diffエディタで左右のペインを切り替えたときに、前回見ていたカーソル位置を自動で復元してくれるVSCode拡張です。


🔨 どうやって実装したか

Cursorghostは以下のような仕組みで動いています:

  • onDidChangeTextEditorSelection で、diffエディタ内で現在アクティブな行を記録
  • onDidChangeActiveTextEditor でdiffエディタ間の切り替えを検知
  • TabInputTextDiff を使って「diffビューであること」を判定
  • 切り替え先のペインに、自動的にカーソル位置を復元

差分エディタ専用の挙動なので、通常のファイル編集中には影響を与えません。

ソースコードはTypeScriptで書いており、GitHubでも公開しています👇

🔗 GitHub - kupuma-ru21/cursorghost


🚀 使い方

  1. VSCodeの拡張機能で Cursorghost を検索
  2. インストール
  3. diffエディタを開いて、カーソルを動かしてみてください!

左右のペインを切り替えるだけで、自動的に前のカーソル位置に戻ってくれるようになります。


🙏 最後に

もし便利だと感じたら、ぜひ拡張機能に⭐️やZennのいいねをしていただけると励みになります!

GitHubで編集を提案

Discussion

ログインするとコメントできます