Nathan Jeffords - 2008-07-11

Currently when a plugin makes changes only the final edit/navigation operations are recorded. This causes features that change the cursor position based of the current position to fail since NotePad++ only records the position the cursor went to. So when playing back the macro, the plugins logic is not executed, it just jumps to the cursor position that was record into the macro.

I have posted a patch that allows plugins to block the recording of edit/navigation operations while the plugin command is executing, then add a "pluging macro operation" to the recorded macro that will call back into the plugin with arbitraty data to allow the plugin to "do the right thing".

The problem is part of the "plugin macro operation" is a pointer to a function to call with the operation data. While this works, these pointers cannot be reliabaly saved and thus would break the persistant macro feature. I would like feedback on the best way to get the macro operation data back to the plugin so that it may replay its part of the macro.

Patch #2016341, contains current changes.