Subject: bug#22560: forward-word etc should be interactive-only

From: Drew Adams <[email-masked]>
Date: Thu, 4 Feb 2016 13:15:17 -0800 (PST)

> The new implementation of subword-mode means that forward-word etc need
> to be marked as interactive-only, all existing uses of such functions
> need to be reviewed, and the issue needs to be mentioned in NEWS.
> 
> See bug#17558, where this was all pointed out.

Commands such as `forward-word' are explicitly counted on by
thingatpt.el and 3rd-party libraries to be used non-interactively.
The thingatpt code moves forward and backward over things using
`forward-*' and `backward-*' commands noninteractively.

Why would/should/must we consider such a command to be
"interactive-only"?

I see this in Emacs 25 NEWS:

** New properties that can be specified with `declare':
*** (interactive-only INSTEAD), says to use INSTEAD for non-interactive use.

Presumably this means that if you declare `forward-word' as
`interactive-only' then you will at the same time provide an
alternative that replaces it for noninteractive use.

If you do that, you will break 3rd-party code (I assume that you
will update the thingatpt.el code to use the new replacement).

Why not instead create a new _command_ to replace the _interactive_
use?  That likely breaks no code, except for key bindings, which
are quickly discovered by users and updated.

Why would limiting function `forward-ANYTHING' to interactive
use be TRT?