Я пишу текстовый редактор со Scintilla (на самом деле ScintillaNET, но информация о ванильном Scintilla также может быть полезна). В этом редакторе мы хотим отображать информацию об изменениях с полями (например, если я изменю строку текста, эта строка будет отображать мое имя на полях). Мне удалось изменить маржу при изменении строки, но я не могу найти хороший способ отменить изменение маржи, если кто-то отменит их изменение.
Я пытался вызвать BeginUndoAction в событии BeforeTextInsert и EndUndoAction в конце события TextInserted, но это, похоже, не рассматривает изменения полей как отменяемые. Есть ли достойный способ отменить изменения маржи? Я думаю, что мне может понадобиться реализовать мой собственный небольшой стек отмены полей (или изменить стек отмены Scintilla) и просто обработать его таким образом, но если что-то встроено, я бы предпочел пойти с этим.