Some optimizations implemented for decorators. When a call is made to change a range to a value it already has then no modifications are made, the display is not repainted and the container does not receive a notification. When the range is already partly in the value then the start and end parts of the range that already have this value are trimmed off for updates.
A new modification flag SC_MOD_CHANGEINDICATOR is used when an indicator is changed instead of SC_MOD_CHANGESTYLE. This allows containers to ignore these by changing the event mask. Since adding and removing indicators does not affect text layout, these are faster. No lexers use the new indicator code yet but I have been experimenting with the Python lexer. It currently resets the whole range being lexed and then fills in the bad indentation ranges. This is not optimal as there will often be no need to change the bad indentation indicators so this will probably change to keeping a current state flag while lexing and filling whenever the state changes. This is still not as efficient as the current code which buffers up indicator changes with style changes but will probably be OK. Committed to CVS. Neil _______________________________________________ Scintilla-interest mailing list [email protected] http://mailman.lyra.org/mailman/listinfo/scintilla-interest
