To clarify the situation: In Version 9 on Windows and OS X, there is a new Make Template system which supports multiple templates for built-in functions. As part of the new system, unfortunately a bug was introduced which makes it ignore the usage statement for user-defined functions. This bug has been confirmed and we hope to fix it in a future release, though I cannot make any prediction as to when. The Linux front-end does not yet feature this new make-template system due to certain technical obstacles, which means it also does not suffer from the new bug.
There also seems to be some confusion as to how to invoke make template in version 9. Here is how it works: the new code assist offers possible completions as you type instead of forcing you to hit Ctrl/Cmd-k. Now, if you select a completion from the code assist using Enter, Tab, or left click, you will notice that a small down arrow appears, like so: . This down arrow is the collapsed template list. And this point, you can activate Make Template either using Ctrl/Cmd-Shift-k, or by hitting DownEnter to expand the arrow. Alternatively, if you've typed in a complete symbol, then Ctrl/Cmd-Shift-k will activate make template even if you haven't selected something from the code assist. Unlike previous version, Make Template does not currently attempt to complete a symbol before opening the template menu.
test::usage
. Maybe you can poke around to see if there is something liketest::template
? That's only a wild guess - it's what might make sense if this is actually an enhancement and not a bug. $\endgroup$usage
messages, but maybe I am missing something. Let's see if someone else can find something $\endgroup$FileNameJoin[{$InstallationDirectory, "SystemFiles/Kernel/TextResources/English/FunctionInformation2.m"}]
. You will need toUncompress
the file after importing it asString
. The actual usage messages are also in that directory, stored inUsage.m
. If you look at most packages, the::usage
messages are plain text only, but when you load the package, and?
the symbol, you'll get a nicely formatted usage message with italicized arguments. This comes fromUsage.m
, not from the package file. $\endgroup$