The variety of possible variable and expression examination commands is
endless (just look, for instance, at the keyword list to
widget_info()
). Rather than attempt to include them all, IDLWAVE
provides two easy methods to customize your own commands, with a special
mouse examine command, and two macros for generating your own examine
key and mouse bindings.
The most powerful and flexible mouse examine command of all is
available on C-S-mouse-2. Just as for all the other mouse
examine commands, it permits click or drag expression selection, but
instead of sending hard-coded commands to the shell, it pops-up a
customizable selection list of examine functions to choose among,
configured with the idlwave-shell-examine-alist
variable6. This variable is a list of key-value pairs (an
alist in Emacs parlance), where the key gives a name to be
shown for the examine command, and the value is the command strings
itself, in which the text ___
(three underscores) will be
replaced by the selected expression before being sent to the shell.
An example might be key Structure Help
with value
help,___,/STRUCTURE
. In that case, you’d be prompted with
Structure Help, which might send something like
help,var,/STRUCTURE
to the shell for output.
idlwave-shell-examine-alist
comes configured by default with a
large list of examine commands, but you can easily customize it to add
your own.
In addition to configuring the functions available to the pop-up mouse
command, you can easily create your own customized bindings to inspect
expressions using the two convenience macros
idlwave-shell-examine
and idlwave-shell-mouse-examine
.
These create keyboard or mouse-based custom inspections of variables,
sharing all the same properties of the built-in examine commands.
Both functions take a single string argument sharing the syntax of the
idlwave-shell-examine-alist
values, e.g.:
(add-hook 'idlwave-shell-mode-hook (lambda () (idlwave-shell-define-key-both [s-down-mouse-2] (idlwave-shell-mouse-examine "print, size(___,/DIMENSIONS)")) (idlwave-shell-define-key-both [f9] (idlwave-shell-examine "print, size(___,/DIMENSIONS)")) (idlwave-shell-define-key-both [f10] (idlwave-shell-examine "print,size(___,/TNAME)")) (idlwave-shell-define-key-both [f11] (idlwave-shell-examine "help,___,/STRUCTURE"))))
Now pressing f9, or middle-mouse dragging with the SUPER key depressed, will print the dimensions of the nearby or highlighted expression. Pressing f10 will give the type string, and f11 will show the contents of a nearby structure. As you can see, the possibilities are only marginally finite.
An alist of examine commands in which the keys name the command and
are displayed in the selection pop-up, and the values are custom IDL
examine command strings to send, after all instances of ___
(three underscores) are replaced by the indicated expression.
In Electric Debug Mode (see Electric Debug Mode), the key x provides a single-character shortcut interface to the same examine functions for the expression at point or marked by the region.