🧙♂️
VSCodeのdiffエディタでカーソル位置を同期する拡張を作った話
VSCodeでコードの差分(diff)を確認しているときに、片方のペインでカーソルを動かすと、もう片方に切り替えた際に「さっきどこ見てたっけ…?」と迷子になること、がよくありました。
この問題を解決するために、VSCodeの拡張機能を作りました。
🧠 作った拡張機能:Cursorghost
🔗 Cursorghost - Visual Studio Marketplace
この拡張機能は、diffエディタで左右のペインを切り替えたときに、前回見ていたカーソル位置を自動で復元してくれるVSCode拡張です。
🔨 どうやって実装したか
Cursorghostは以下のような仕組みで動いています:
-
onDidChangeTextEditorSelection
で、diffエディタ内で現在アクティブな行を記録 -
onDidChangeActiveTextEditor
でdiffエディタ間の切り替えを検知 -
TabInputTextDiff
を使って「diffビューであること」を判定 - 切り替え先のペインに、自動的にカーソル位置を復元
差分エディタ専用の挙動なので、通常のファイル編集中には影響を与えません。
ソースコードはTypeScriptで書いており、GitHubでも公開しています👇
🔗 GitHub - kupuma-ru21/cursorghost
🚀 使い方
- VSCodeの拡張機能で
Cursorghost
を検索 - インストール
- diffエディタを開いて、カーソルを動かしてみてください!
左右のペインを切り替えるだけで、自動的に前のカーソル位置に戻ってくれるようになります。
🙏 最後に
もし便利だと感じたら、ぜひ拡張機能に⭐️やZennのいいねをしていただけると励みになります!
Discussion