Next: Standard Drei Variants, Previous: Drei Concepts, Up: Drei
Class precedence list:
drei, standard-object, slot-object, tSlots:
%view— initargs::viewThe CLIM view that will be used whenever this Drei is being displayed. During redisplay, the
stream-default-viewof the output stream will be temporarily bound to this value.%kill-ring— initargs::kill-ringThe kill ring object associated with the Drei instance.
%previous-commandThe previous CLIM command executed by this Drei instance. May be NIL if no command has been executed.
%point-cursor— initargs::point-cursorThe cursor object associated with point. This is guaranteed to be displayed on top of all other cursors.
%cursorsA list of which cursors are associated with the Drei instance. During redisplay,
display-drei-cursoris called on each element of this list.%editor-pane— initargs::editor-paneThe stream or pane that the Drei instance will perform output to.
%active— initargs::activeWhether or not the Drei instance is "active". The precise definition of what this means depends on the concrete Drei implementation.
%minibuffer— initargs::minibufferThe minibuffer pane (or null) associated with the Drei instance. This may be NIL.
%command-table— initargs::command-tableThe command table used for looking up commands for the Drei instance. Has a sensible default, don't override it unless you know what you are doing.
The abstract Drei class that maintains standard Drei editor state. It should not be directly instantiated, a subclass implementing specific behavior (a Drei variant) should be used instead.
drei Initarg: :editable-pWhether or not the Drei instance will be editable. If
NIL, the buffer will be set to read-only (this also affects programmatic access). The default isT.
drei Initarg: :single-lineIf
T, the buffer created for the Drei instance will be single line, and a condition of typebuffer-single-linewill be signalled if an attempt is made to insert a newline character.
Evaluate
bodywhile handling Drei user notification signals. The handling consists of displaying their meaning to the user in the minibuffer. This is the macro that ensures conditions such as motion-before-end does not land the user in the debugger.
Evaluate
bodywith a set of Drei special variables (*current-buffer*,*current-window*,*current-mark*,*current-point*,*current-syntax*,*kill-ring*,*minibuffer*,*command-parser*,*partial-command-parser*,*previous-command*,*extended-command-prompt*) bound to their proper values, taken fromdrei-instance. The keyword arguments can be used to provide forms that will be used to obtain values for the respective special variables, instead of finding their value indrei-instance. This macro binds all of the usual Drei special variables, but also some CLIM special variables needed for ESA-style command parsing.
Provide various Drei maintenance services around the evaluation of
body. This macro provides a convenient way to perform some operations on a Drei, and make sure that they are properly reflected in the undo tree, that the Drei is redisplayed, the syntax updated, etc. Exactly what is done can be controlled via the keyword arguments. Note that ifwith-undois false, the *entire* undo history will be cleared afterbodyhas been evaluated. This macro expands into a call toinvoke-performing-drei-operations.
Invoke
continuation, setting up and performing the operations specified by the keyword arguments for the given Drei instance.
Modidfy
dreiand the environment so that calls toacceptcan be done to arbitrary streams from withinbody. Or, at least, make sure the Drei instance will not be a problem. When Drei calls a command, it will be wrapped in this macro, so it should be safe to useacceptwithin Drei commands. This macro expands into a call toinvoke-accepting-from-user.
Set up
dreiand the environment so that calls toacceptwill behave properly. Then callcontinuation.
Execute
commandfordrei. This is the standard function for executing Drei commands-it will take care of reporting to the user if a condition is signalled, updating the syntax, setting theprevious-commandofdreiand recording the operations performed bycommandfor undo.