特定の行を追跡する IDE プラグインを作成しています。これは、IDE に組み込まれているブックマーク機能に似ていると考えてください。ユーザーがソース コードを編集すると、特定の行の位置が変更されます。たとえば、行 100 であったものが、その上のどこかで Enter キーを押すと、行 101 になります。ユーザーは、行を削除したり、一度に複数のチャンクを選択して削除したり、テキストの大きなチャンクを貼り付けたりすることもできます。これらはすべてコードをシフトします。
「100行目」が「101行目」、「102行目」などになることを知るために、行の挿入と削除を追跡したいと思います。これはどのように可能ですか?
これまでに見つけた最も近い解決策はINTAEditServicesNotifier.EditorViewModified
、変更が行われるたびにバッファ全体にアクセスできるようにすることです。次に、バッファー全体を前のバッファーの保存されたコピーと比較して、どのような変更があるかを確認し、追加または削除された改行の数と場所を確認できます。
これはエディターの変更ごとに膨大な量のオーバーヘッドであり、より良い方法があるはずです。