The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.08 - 2012-06-09

  • Completely re-worked how the changes are managed in emacs, so that undos of multiple, overlapping changes work correctly:
  • Now overlays are used to indicate changed regions (because they support zero-width regions), and a buffer local data structure is used to save metadata for each change, including a list of shadowed changes with locations measured relative to the change, so that and "undo" command can properly re-set the extent of any affected overlays.
  • The perl side no longer tries to use the "revise_locations" code to fix-up the recorded locations: instead the change metadata is used on the emacs side in inverse order so that the original, unrevised numbering is always correct when a change is applied.
  • The metadata returned from the perl routine do_find_and_reps is restricted to just what's currently in use by rep.el: there's less redundancy, with the 'end' field elimated (since you can always get it by adding a string length to 'beg'). Similarly, the old context string features 'pre' and 'post' have been dropped.
  • The TAB and BACKTAB features now behave in a consistent way, skipping forward or back to the nearest *top level* change (meaning a whole change unshadowed by any later one). This implementation is completely different from the one mentioned above for version 0.05.

Documentation

perform a series of find and replaces

Modules

a find & replace engine for rep.pl and rep.el