> 2. This appears a bit un-modular, since an externally supplied major mode
> like SLIME has to worry about how CUA and delete-selection-mode are
> implemented. It appears to be the right way to distinguish commands that
> overwrite the selection (in these minor modes) from others. But shouldn't
> calling self-insert-command (as slime-space does) already take care of it?
> Wouldn't a `self-insert-command-hook' be better than counting on
> pre-command-hook, which doesn't get called e.g. if self-insert-command is
> not called interactively?
In theory, yes, in practice it's problematic because sefl-insert-command may
be called after having done some other work whose result may depend on
whether the region is deleted or not: so by the time you know to delete the
region, you've already run code which was affected by its presence.
Maybe delete-selection-mode could do what you propose: when
self-insert-command is called, it should kill the current command, delete
the region, and re-run the command that it just killed. It's also bound to
risk introducing bugs.
So the only safe solution that I can think of is the one currently used.
Maybe it could be improved by making self-insert-command output a warning if
the region is active and delete-selection-mode is activated as well.
Stefan
_______________________________________________
emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug