Как отслеживать изменения редактора и положения строки в IDE?

Я пишу плагин IDE, который отслеживает определенные строки - считаю, что он похож на встроенную функциональность закладок IDE. Когда пользователь редактирует исходный код, позиция конкретной строки изменяется - то, что могло быть строкой 100, становится строкой 101, например, когда клавиша Enter где-то над ней нажата. Пользователи также могут удалять строки, выбирать и удалять несколько фрагментов одновременно, вставлять большие фрагменты текста и т. Д., Что приводит к смещению кода.

Я хотел бы отследить вставку и удаление строки, чтобы знать, что "строка 100" становится, скажем, "строкой 101", затем "строкой 102" и так далее. Как это возможно?


Самое близкое решение, которое я нашел, использует INTAEditServicesNotifier.EditorViewModified что дало бы доступ ко всему буферу каждый раз, когда была сделана модификация. Затем весь буфер можно было бы просмотреть с сохраненной копией предыдущего буфера, чтобы увидеть, какие есть изменения, а также узнать, сколько новых строк было добавлено или удалено и где.

Это огромные накладные расходы на модификацию редактора, и должен быть лучший способ.

0 ответов

Другие вопросы по тегам