Currently, most actions in N++ are recorded by Scintilla in macros, to the effect that whatever the commands do tht Scintilla does not see isn't performed at all on playback. This is at best inconvenient and can cause unstabilities in the worst cases.
This patch handles macro recording and playback of: user commands, document switches, macro replays, language changes, plugin commands.
Plugins that allocate IDs dynamically may need to listen to:
* the NPPM_SERIALISEID message, issued when a macro is recording and a dynamic ID command is interepted. Plugin may provide a persistent token for storing in macro.
* the NPPN_EXECPERSISTEDID, that instructs the plugin to act upon the token it generated.
Initial patch against rev 723