Since Mathematica 9, a number of issues concerning the ::usage
and templates were raised.
In 9.0, there was a bug first reported here and better diagnosed here, where error messages were generated by simply moving the insertion point somewhere in the argument of a function for which a ::usage
was defined. This was fixed in 9.0.1
Starting in version 9.0 and observed through 10.4.1, it was reported here that functions with formatted ::usage
needed ?Function
to be called twice in order for messages to be rendered properly. A bandaid solution was given here.
Certain inflexibility about the text in the templates was raised here and again here, and inconsistencies reported here (also see here).
The consensus I gather from the discussion in the comments above is that ::usage
and templates are implemented in Mathematica in a very kludgy way. This can be a source of major frustration for package developers.
So the question I raise is which of the issues have been addressed in v10 and v11? Are there plans for a major overhaul of the ::usage
system?
::usage
problem seems to be fixed, or at least I could not reproduce it. The completion template problems appear to remain. $\endgroup$