EditorDoc Sections Nuprl Doc
IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html
Executing ML code with `(mouseleft)'. doc for ml execution cmds

`(mouseleft)' on DO <ml>
simply executes the ML expression, leaving the response on the stack.

`(mouseleft)' on FN<ml>
applies the ML expression as a funtion to the term at the point, whether in the same or a different window, and replaces the term by the term-valued answer. No-op if error. Also, the evaluation will be done in a context where the ML expression (current_object ()) evaluates to the name of the object containing the argument, not necessarily the same as the FN<ml> button.

There are several variants of FN<words go here>:

FNcover<ml> covers the argument with the value rather than replacing it.
 
FNpopup<ml> opens a scratch window and puts the answer there.
 
FNquiet<ml> puts the answer nowhere; the result can have any type, therefore.
 
DO <ml> simply executes the expression, leaving the answer on the stack. The object name at the point is available to it, however.
 
DOquit <ml> is like DO <words go here>, but safe-quits the object containing the button.

To simplify the repeated application of these buttons, the command `(m-n)(m-n)' will apply to the point the last function that was invoked by `(mouseleft)' on FN<ml> or its variants.

The variants of FN<ml> and DO <ml> can be cycled through by repeatedly using the `(backspace)' command, and FN<ml> itself is inserted by `mlbut'. To toggle between the FN<ml> family and the DO <ml> family, use `(c-a)(c-(backspace))'.

There is also an alternative display form for the FN<ml> family of buttons, in which the user simply specifies a string to be displayed instead. Many of the buttons provided in this editing package are of this kind.
To convert FNfu to display as FUBAR just use the command `(c-s)', which will change the form to [string for button], then fill in this text slot with the desired display string. (`(c-d)' will fill in the slot with the null string, which is the normal form for FN<ml>). To convert back to the normal form, just go down to the text with `(c-j)' and delete, say with `(c-a)(c-d)' `(c-d)'. IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html

EditorDoc Sections Nuprl Doc