Lines Matching +refs:idlwave +refs:all +refs:class +refs:tags

3 @setfilename ../../info/idlwave.info
43 * IDLWAVE: (idlwave). Major mode and shell for IDL files.
189 source files (@code{idlwave-mode}) and a mode for running the IDL
190 program as an inferior shell (@code{idlwave-shell-mode}). Although
209 variables, class names and much more.
225 editing and all the completion and routine info capabilities present in
250 @uref{https://github.com/jdtsmith/idlwave/screenshots/emacs_21_nav.gif,An IDLWAVE buffer}
252 @uref{https://github.com/jdtsmith/idlwave/screenshots/emacs_21_keys.gif,A keyword being completed}
254 @uref{https://github.com/jdtsmith/idlwave/screenshots/emacs_21_help.gif,Online help text.}
256 @uref{https://github.com/jdtsmith/idlwave/screenshots/emacs_21_ri.gif,Routine information displayed}
258 @uref{https://github.com/jdtsmith/idlwave/screenshots/emacs_21_bp.gif,Debugging code
290 @tab Re-indent all lines in the current region.
292 @tab Re-indent all lines in the current routine.
294 @tab Re-indent all lines in the current statement.
356 (setq idlwave-init-rinfo-when-idle-after 2)
358 (setq idlwave-do-actions t
359 idlwave-surround-by-blank t)
361 (add-hook 'idlwave-mode-hook 'turn-on-font-lock)
363 (setq idlwave-shell-automatic-start t)
365 (setq idlwave-shell-debug-modifiers '(control shift))
454 automatically (as long as the variable @code{idlwave-expand-generic-end}
458 and indentation all taken care of. Use @kbd{C-/} to undo the last
487 if necessary), the window will split to show all procedures it knows
511 This time we get a plot, but it is pretty ugly: the points are all
553 Now remove all breakpoints: @kbd{C-c C-d C-a}. Recompile and rerun the
574 (setq idlwave-reserved-word-upcase t)
590 (setq idlwave-main-block-indent 1)
591 (setq idlwave-block-indent 3)
592 (setq idlwave-end-offset -3)
599 e.g., @kbd{C-h v idlwave-main-block-indent @key{RET}}. To find which
604 there is another, more user-friendly way to customize all the IDLWAVE
607 Group}. Here you'll be presented with all the various variables grouped
620 easily enable them. First, there is a way to assign all debugging
626 for compiling the current source file, @kbd{C-S-a} for deleting all
630 (setq idlwave-shell-debug-modifiers '(shift control))
637 (setq idlwave-shell-debug-modifiers '(super))
651 (add-hook 'idlwave-mode-hook
653 (local-set-key [f4] 'idlwave-shell-retall)
654 (local-set-key [f5] 'idlwave-shell-break-here)
655 (local-set-key [f6] 'idlwave-shell-clear-current-bp)
656 (local-set-key [f7] 'idlwave-shell-cont)
657 (local-set-key [f8] 'idlwave-shell-clear-all-bp)))
659 (add-hook 'idlwave-shell-mode-hook
661 (local-set-key [f4] 'idlwave-shell-retall)
662 (local-set-key [f5] 'idlwave-shell-break-here)
663 (local-set-key [f6] 'idlwave-shell-clear-current-bp)
664 (local-set-key [f7] 'idlwave-shell-cont)
665 (local-set-key [f8] 'idlwave-shell-clear-all-bp)))
690 list of directories on the path. Simply select them all (or whichever
695 written to the file @file{~/.emacs.d/idlwave/idlusercat.el}
725 (with @kbd{C-h v idlwave<-variable-name> @key{RET}}) and ask the
731 @cindex Major mode, @code{idlwave-mode}
775 IDL code very well, and takes care of almost all formatting issues for
785 Like all Emacs programming modes, IDLWAVE performs code indentation.
803 @defopt idlwave-main-block-indent (@code{2})
809 @defopt idlwave-block-indent (@code{3})
811 probably also want to change @code{idlwave-end-offset}.
814 @defopt idlwave-end-offset (@code{-3})
816 @code{idlwave-block-indent} will make END lines line up with the block
829 (like function calls, structure/class definitions, explicit structures
857 @code{idlwave-max-extra-continuation-indent}, which specifies the
861 @code{idlwave-continuation-indent}). As a special case, continuations
868 @code{idlwave-max-extra-continuation-indent} is small, the key
869 @kbd{C-u @key{TAB}} will re-indent all lines in the current statement.
870 Note that @code{idlwave-indent-to-open-paren}, if non-@code{nil},
871 overrides the @code{idlwave-max-extra-continuation-indent} limit, for
875 @defopt idlwave-continuation-indent (@code{2})
879 @defopt idlwave-max-extra-continuation-indent (@code{20})
888 @defopt idlwave-indent-to-open-paren (@code{t})
891 @code{idlwave-max-extra-continuation-indent} limit is satisfied.
917 @defopt idlwave-no-change-comment
922 @defopt idlwave-begin-line-comment
926 @defopt idlwave-code-comment
941 @kbd{M-@key{RET}}, which calls the command @code{idlwave-split-line}.
955 @code{idlwave-hang-indent-regexp} (a dash-space by default), subsequent
977 @defopt idlwave-fill-comment-line-only (@code{t})
981 @defopt idlwave-auto-fill-split-string (@code{t})
986 @defopt idlwave-split-line-string (@code{t})
987 Non-@code{nil} means @code{idlwave-split-line} will split strings with
991 @defopt idlwave-hanging-indent (@code{t})
993 indent given by @code{idlwave-hang-indent-regexp} match in the first
997 @defopt idlwave-hang-indent-regexp (@code{"- "})
1002 @defopt idlwave-use-last-hang-indent (@code{nil})
1004 @code{idlwave-indent-regexp}.
1018 @code{idlwave-mode} with the following line in your @file{.emacs}:
1021 (add-hook 'idlwave-mode-hook 'turn-on-font-lock)
1028 @code{idlwave-default-font-lock-items}.
1030 @defopt idlwave-default-font-lock-items
1082 list of all built-in routines, with calling sequences and
1091 (@code{idlwave-update-routine-info}).
1095 calls the command @code{idlwave-routine-info}. When the current cursor
1113 method exists in several classes, IDLWAVE queries for the class of the
1114 object, unless the class is already known through a text property on the
1176 variable @code{idlwave-special-lib-alist}.
1209 @code{idlwave-routine-info} was called. Holding down @key{SHIFT} while
1220 the current class inherits from other classes. You can click with the
1226 @defopt idlwave-resize-routine-help-window (@code{t})
1231 @defopt idlwave-special-lib-alist
1235 @defopt idlwave-rinfo-max-source-lines (@code{5})
1268 (@file{~/.emacs.d/idlwave/}, by default). It also re-scans the XML catalog if
1274 separately. This is no longer necessary: all help and routine
1283 Shell), press @kbd{M-?} (@code{idlwave-context-help}), or click with
1296 @tab System variables tags like @code{!D.X_SIZE}.
1302 @tab A class name in an @code{OBJ_NEW} call.
1304 @tab Beyond the class name in an @code{OBJ_NEW} call.
1308 @tab Structure tags like @code{state.xsize}
1310 @tab Class tags like @code{self.value}.
1318 @samp{OBJ_NEW}, this function is described. If it is on the class
1319 name inside the quotes, the documentation for the class is pulled up.
1320 If the cursor is @emph{after} the class name, anywhere in the argument
1361 displaying online help on all supported platforms. This browser
1364 @code{idlwave-help-use-assistant} controls whether this browser is
1371 @code{idlwave-help-browser-function} controls which browser help is sent
1372 to (as long as @code{idlwave-help-use-assistant} is not set). This
1384 the variable @code{idlwave-help-browser-is-local}.
1387 @code{idlwave-system-directory} is set (@pxref{Catalogs}). One easy way
1395 @defopt idlwave-html-system-help-location @file{help/online_help}
1397 considered with respect to @code{idlwave-system-directory}. Relevant
1401 @defopt idlwave-html-help-location @file{/usr/local/etc/}
1404 (@code{idlwave-html-system-help-location} is used instead).
1407 @defopt idlwave-help-use-assistant @code{t}
1410 @code{idlwave-help-browser-function}.
1413 @defopt idlwave-help-browser-function
1419 @defopt idlwave-help-browser-is-local
1420 Is the browser selected in @code{idlwave-help-browser-function} run in a
1425 @defopt idlwave-help-link-face
1442 support can be added by customizing the @code{idlwave-help-doclib-name}
1443 and @code{idlwave-help-doclib-keyword} variables.
1445 @cindex Structure tags, in online help
1446 @cindex Class tags, in online help
1447 Help is also available for class structure tags (@code{self.TAG}), and
1448 generic structure tags, if structure tag completion is enabled
1450 tag within the class or structure definition source itself. Help is not
1451 available on built-in system class tags.
1474 @tab Fontify the buffer like source code. See the variable @code{idlwave-help-fontify-source-code}.
1480 @defopt idlwave-help-use-dedicated-frame (@code{nil})
1484 @defopt idlwave-help-frame-parameters
1488 @defopt idlwave-max-popup-menu-items (@code{20})
1492 @defopt idlwave-extra-help-function
1496 @defopt idlwave-help-fontify-source-code (@code{nil})
1500 @defopt idlwave-help-source-try-header (@code{t})
1505 @defopt idlwave-help-doclib-name (@code{"name"})
1510 @defopt idlwave-help-doclib-keyword (@code{"KEYWORD"})
1528 IDLWAVE offers completion for class names, routine names, keywords,
1529 system variables, system variable tags, class structure tags, regular
1530 structure tags and file names. As in many programming modes, completion
1534 be updated with @kbd{C-c C-i} (@code{idlwave-update-routine-info}).
1550 x = obj_new('MyCl',a_ @r{Keyword to @code{Init} method in class @code{MyCl}}
1595 @defopt idlwave-keyword-completion-adds-equal (@code{t})
1600 @defopt idlwave-function-completion-adds-paren (@code{t})
1606 @defopt idlwave-completion-restore-window-configuration (@code{t})
1611 @defopt idlwave-highlight-help-links-in-completion (@code{t})
1632 completed is all lower case, the completion will be lower case as
1635 variable @code{idlwave-completion-case}. The default is to use upper
1637 class names and methods, similar to the conventions in the IDL
1642 @code{idlwave-completion-force-default-case} to non-@code{nil}.
1644 @defopt idlwave-completion-case
1649 @defopt idlwave-completion-force-default-case (@code{nil})
1651 @code{idlwave-completion-case}. When @code{nil} (the default), entirely lower
1653 settings in @code{idlwave-completion-case}.
1656 @defopt idlwave-complete-empty-string-as-lower-case (@code{nil})
1665 @cindex @code{self} object, default class
1666 An object method is not uniquely determined without the object's class.
1667 Since the class is almost always omitted in the calling source (as
1669 IDLWAVE considers all available methods in all classes as possible
1671 method in @emph{all} known classes which contain that method will be
1674 @code{idlwave-completion-show-classes}). As a special case, the class
1675 of an object called @samp{self} is always taken to be the class of the
1679 @cindex Forcing class query.
1681 You can also call @code{idlwave-complete} with a prefix arg: @kbd{C-u
1682 M-@key{TAB}}. IDLWAVE will then prompt you for the class in order to
1684 @code{idlwave-query-class} can be configured to make such prompting the
1685 default for all methods (not recommended), or selectively for very
1689 @cindex Saving object class on @code{->}
1691 After you have specified the class for a particular statement (e.g., when
1694 (e.g., keywords) can then reuse this class information. This works by
1697 default). The variable @code{idlwave-store-inquired-class} can be used
1700 @defopt idlwave-completion-show-classes (@code{1})
1706 @defopt idlwave-completion-fontify-classes (@code{t})
1710 @defopt idlwave-query-class (@code{nil})
1714 @defopt idlwave-store-inquired-class (@code{t})
1715 Non-@code{nil} means store class of a method call as text property on
1719 @defopt idlwave-class-arrow-face
1721 class text property.
1729 variables, and so their class can be determined (for instance, using the
1732 determine the class of the object. If this query is successful, the
1733 class found will be used to select appropriate completions, routine
1734 info, or help. If unsuccessful, information from all known classes will
1739 @cindex Inheritance, class
1744 a class which inherits methods from one or more superclasses can
1748 IDLWAVE examines class definitions during completion and routine
1749 information display, and records all inheritance information it finds.
1752 @code{idlwave-support-inheritance} is non-@code{nil}.
1754 In many class methods, @emph{keyword} inheritance (@code{_EXTRA} and
1755 @code{_REF_EXTRA}) is used hand-in-hand with class inheritance and
1758 entire class inheritance chain. This is often referred to as
1762 IDLWAVE can accommodate this special synergy between class and keyword
1764 method's keyword parameters, all keywords of superclass versions of
1768 variable @code{idlwave-keyword-class-inheritance} can be used to
1770 simple, class-driven way. By default, only @code{Init} and
1772 keywords based on their originating class.
1774 @defopt idlwave-support-inheritance (@code{t})
1778 @defopt idlwave-keyword-class-inheritance
1780 class-driven keyword inheritance will be used for Completion.
1790 routines. It is very convenient to be able to complete structure tags,
1791 in the same way as for instance variables (tags) of the @samp{self}
1798 the structure in all parts of the program. This is entirely unenforced
1801 (e.g., @samp{state}), structure tags which are read from its definition
1808 (with-eval-after-load 'idlwave
1813 tags, using the usual methods (@pxref{Online Help}). In addition,
1822 @noindent will complete with all structure fields of the structure
1833 routine. The command @kbd{C-c C-v} (@code{idlwave-find-module}) asks
1835 @code{idlwave-routine-info} would have used, taken from nearby buffer
1837 any class part). IDLWAVE will display the source file in another
1848 (@code{idlwave-kill-autoloaded-buffers}) can be used to easily remove
1857 The key sequence @kbd{C-c =} calls the command @code{idlwave-resolve}
1863 @code{idlwave-resolve} is one way to get a library module within reach
1901 used to insert code templates all start with a @samp{\} (the backslash),
1903 @code{idlwave-abbrev-start-char}. IDLWAVE ensures that abbreviations are
1910 idlwave-list-abbrevs}.
2048 convenience function @code{idlwave-define-abbrev}:
2051 (add-hook 'idlwave-mode-hook
2053 (idlwave-define-abbrev "wb" "widget_base()"
2054 (idlwave-keyword-abbrev 1))
2055 (idlwave-define-abbrev "ine" "IF N_Elements() EQ 0 THEN"
2056 (idlwave-keyword-abbrev 11))))
2061 @code{idlwave-keyword-abbrev} (here @emph{1}) specifies how far back to
2066 the variables @code{idlwave-abbrev-change-case} and, for reserved word
2067 templates, @code{idlwave-reserved-word-upcase} (@pxref{Case Changes}).
2069 @defopt idlwave-abbrev-start-char (@code{"\"})
2075 @defopt idlwave-abbrev-move (@code{t})
2104 entire line. To enable this, the variable @code{idlwave-do-actions}
2117 @defopt idlwave-do-actions (@code{nil})
2143 Set the variable @code{idlwave-expand-generic-end} in order to have all
2148 @defopt idlwave-show-block (@code{t})
2150 @code{idlwave-show-begin}.
2153 @defopt idlwave-expand-generic-end (@code{t})
2157 @defopt idlwave-reindent-end (@code{t})
2173 @code{idlwave-surround-by-blank} and @code{idlwave-do-actions} and turn
2175 using the function @code{idlwave-action-and-binding} in the mode hook.
2181 (add-hook 'idlwave-mode-hook
2183 (setq idlwave-surround-by-blank t) ; Turn this type of actions on
2184 (idlwave-action-and-binding "*" '(idlwave-surround 1 1))
2185 (idlwave-action-and-binding "+" '(idlwave-surround 1 1))))
2197 repad everything if @code{idlwave-do-actions} is on).
2199 @defopt idlwave-surround-by-blank (@code{nil})
2200 Non-@code{nil} means enable @code{idlwave-surround}. If non-@code{nil},
2203 surrounded with spaces by @code{idlwave-surround}.
2206 @defopt idlwave-pad-keyword (@code{t})
2218 @code{idlwave-abbrev-change-case} and
2219 @code{idlwave-reserved-word-upcase}. If you want to change the case of
2224 (add-hook 'idlwave-mode-hook
2227 (idlwave-action-and-binding idlwave-sysvar '(capitalize-word 1) t)
2229 (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<"
2232 (idlwave-action-and-binding "\\<common\\>[ \t]+\\<"
2237 @code{idlwave-action-and-binding}. For information on controlling the
2241 @defopt idlwave-abbrev-change-case (@code{nil})
2242 Non-@code{nil} means all abbrevs will be forced to either upper or lower
2246 @defopt idlwave-reserved-word-upcase (@code{nil})
2265 be specified with @code{idlwave-file-header}). One of the keywords is
2271 @defopt idlwave-file-header
2275 @defopt idlwave-header-to-beginning-of-file (@code{nil})
2280 @defopt idlwave-timestamp-hook
2284 @defopt idlwave-doc-modifications-keyword
2288 @defopt idlwave-doclib-start
2292 @defopt idlwave-doclib-end
2350 @defopt idlwave-help-application
2354 @defopt idlwave-startup-message (@code{t})
2355 Non-@code{nil} means display a startup message when @code{idlwave-mode}'
2359 @defopt idlwave-mode-hook
2360 Normal hook. Executed when a buffer is put into @code{idlwave-mode}.
2366 @cindex Major mode, @code{idlwave-shell-mode}
2402 idlwave-shell}. In @code{idlwave-mode} the function is bound to
2406 C-l} (@code{idlwave-shell-recenter-shell-window}) displays the shell
2410 @code{idlwave-shell-automatic-start} to @code{t}.
2413 @code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or
2416 @code{idlwave-shell-use-dedicated-frame}.
2423 emacs -geometry 80x32 -eval "(idlwave-shell 'quick)"
2434 @code{idlwave-shell-prompt-pattern}, which defaults to @samp{"^ ?IDL>
2439 @defopt idlwave-shell-explicit-file-name (@file{idl})
2443 @defopt idlwave-shell-command-line-options
2447 @defopt idlwave-shell-prompt-pattern
2451 @defopt idlwave-shell-process-name
2455 @defopt idlwave-shell-automatic-start (@code{nil})
2456 Non-@code{nil} means attempt to invoke idlwave-shell if not already
2460 @defopt idlwave-shell-initial-commands
2464 @defopt idlwave-shell-save-command-history (@code{t})
2468 @defopt idlwave-shell-command-history-file (@file{~/.emacs.d/idlwave/.idlwhist})
2469 The file in which the command history of the idlwave shell is saved.
2471 @code{idlwave-config-directory}.
2474 @defopt idlwave-shell-use-dedicated-frame (@code{nil})
2479 @defopt idlwave-shell-use-dedicated-window (@code{nil})
2484 @defopt idlwave-shell-frame-parameters
2485 The frame parameters for a dedicated idlwave-shell frame.
2488 @defopt idlwave-shell-raise-frame (@code{t})
2489 Non-@code{nil} means @code{idlwave-shell} raises the frame showing the shell
2493 @defopt idlwave-shell-temp-pro-prefix
2498 @defopt idlwave-shell-mode-hook
2499 Hook for customizing @code{idlwave-shell-mode}.
2513 @code{idlwave-shell-arrows-do-history}.}. The history is preserved
2549 @code{idlwave-shell-mode} provides many of the same commands which
2561 commands @samp{.run} and @samp{.compile}), routine names, class names,
2562 keywords, system variables, system variable tags etc.
2563 (@code{idlwave-shell-complete}).
2567 @tab Routine Info display (@code{idlwave-routine-info})
2569 @tab IDL online help on routine (@code{idlwave-routine-info-from-idlhelp})
2572 (@code{idlwave-update-routine-info})
2574 @tab Find the source file of a routine (@code{idlwave-find-module})
2577 (@code{idlwave-find-module-this-file}).
2579 @tab Compile a library routine (@code{idlwave-resolve})
2582 @defopt idlwave-shell-arrows-do-history (@code{t})
2587 @defopt idlwave-shell-comint-settings
2591 @defopt idlwave-shell-file-name-chars
2596 @defopt idlwave-shell-graphics-window-size
2606 all the power Emacs gives you to do this. When you press @key{RET}, the
2611 (@code{idlwave-shell-send-char}). When you press @kbd{C-c C-y}
2612 (@code{idlwave-shell-char-mode-loop}), IDLWAVE runs a blocking loop
2619 @defopt idlwave-shell-use-input-mode-magic (@code{nil})
2624 @defopt idlwave-shell-input-mode-spells
2650 @code{idlwave-abbrev-show-commands} allows you to configure which
2655 @defopt idlwave-shell-show-commands (@code{'(run misc breakpoint)})
2662 the single symbol @code{'everything}, all the copious shell input is
2686 in all IDL code buffers of the current Emacs session, so debug
2690 @kbd{C-c C-d C-t} (@code{idlwave-shell-toggle-toolbar}).
2693 @defopt idlwave-shell-use-toolbar (@code{t})
2694 Non-@code{nil} means use the debugging toolbar in all IDL related
2726 @code{idlwave-shell-automatic-electric-debug}.
2739 see @code{idlwave-shell-activate-prefix-keybindings}). For
2743 (setq idlwave-shell-debug-modifiers '(control shift))
2752 @code{idlwave-shell-debug-modifiers} variable (@pxref{Lesson
2757 @defopt idlwave-shell-prefix-key (@kbd{C-c C-d})
2759 @code{idlwave-shell-mode-prefix-map}.
2762 @defopt idlwave-shell-activate-prefix-keybindings (@code{t})
2767 @defopt idlwave-shell-debug-modifiers (@code{nil})
2784 with @kbd{C-c C-d C-b} (@code{idlwave-shell-break-here}). With a
2792 use @kbd{C-c C-d C-d} (@code{idlwave-clear-current-bp}). When
2794 stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d
2795 C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled
2797 (@code{idlwave-shell-toggle-enable-current-bp}).
2826 @tab Set breakpoint (@code{idlwave-shell-break-here})
2828 @tab Set breakpoint in module named here (@code{idlwave-shell-break-in})
2830 @tab Clear current breakpoint (@code{idlwave-shell-clear-current-bp})
2832 @tab Clear all breakpoints (@code{idlwave-shell-clear-all-bp})
2834 @tab Go to the previous breakpoint (@code{idlwave-shell-goto-previous-bp})
2836 @tab Go to the next breakpoint (@code{idlwave-shell-goto-next-bp})
2838 @tab Disable/Enable current breakpoint (@code{idlwave-shell-toggle-enable-current-bp})
2842 @tab Step, into function calls (@code{idlwave-shell-step})
2844 @tab Step, over function calls (@code{idlwave-shell-stepover})
2846 @tab Skip one statement (@code{idlwave-shell-skip})
2848 @tab Continue to end of block (@code{idlwave-shell-up})
2850 @tab Continue to end of function (@code{idlwave-shell-return})
2852 @tab Continue past end of function (@code{idlwave-shell-out})
2854 @tab Continue to line at cursor position (@code{idlwave-shell-to-here})
2856 @tab Continue execution to next breakpoint, if any (@code{idlwave-shell-cont})
2858 @tab Show higher level in calling stack (@code{idlwave-shell-stack-up})
2860 @tab Show lower level in calling stack (@code{idlwave-shell-stack-down})
2868 setting in @code{idlwave-shell-mark-stop-line}. If an overlay face is
2873 @defopt idlwave-shell-mark-breakpoints (@code{t})
2879 @defopt idlwave-shell-breakpoint-face
2881 @code{idlwave-shell-mark-breakpoints} has the value @code{face}.
2884 @defopt idlwave-shell-breakpoint-popup-menu (@code{t})
2889 @defopt idlwave-shell-mark-stop-line (@code{t})
2895 @defopt idlwave-shell-overlay-arrow (@code{">"})
2897 configured in @code{idlwave-shell-mark-stop-line}.
2900 @defopt idlwave-shell-stop-line-face
2902 configured in @code{idlwave-shell-mark-stop-line}.
2915 @kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the
2923 @kbd{C-c C-d C-y} (@code{idlwave-shell-execute-default-command-line}).
2925 closing all files and returning to the main interpreter level. Then a
2927 line, call @code{idlwave-shell-execute-default-command-line} with a
2935 level program @kbd{C-c C-d C-e} (@code{idlwave-shell-run-region}) is
2948 (@code{idlwave-shell-stack-up}) and @kbd{C-c C-d C-@key{DOWN}}
2949 (@code{idlwave-shell-stack-down}), or the corresponding toolbar buttons,
2982 @tab Clear all breakpoints (@code{idlwave-shell-clear-all-bp})
2984 @tab Set breakpoint, @kbd{C-u b} for a conditional break, @kbd{C-n b} for nth hit (@code{idlwave-sh…
2986 @tab Clear current breakpoint (@code{idlwave-shell-clear-current-bp})
2988 @tab Prompt for expression to print (@code{idlwave-shell-clear-current-bp}).
2990 @tab Continue to the line at cursor position (@code{idlwave-shell-to-here})
2992 @tab Set breakpoint in module named here (@code{idlwave-shell-break-in})
2994 @tab Go to the previous breakpoint in the file (@code{idlwave-shell-goto-previous-bp})
2997 (@code{idlwave-shell-goto-next-bp})
2999 @tab Disable/Enable current breakpoint (@code{idlwave-shell-toggle-enable-current-bp})
3001 @tab Set breakpoint at beginning of enclosing routine (@code{idlwave-shell-break-this-module})
3003 @tab Skip one statement (@code{idlwave-shell-skip})
3005 @tab Continue to end of function (@code{idlwave-shell-return})
3007 @tab Step, over function calls (@code{idlwave-shell-stepover})
3009 @tab Continue past end of function (@code{idlwave-shell-out})
3011 @tab Print expression near point or in region with @kbd{C-u p} (@code{idlwave-shell-print})
3014 (@code{idlwave-shell-retall})
3016 @tab Continue execution to next breakpoint, if any (@code{idlwave-shell-cont})
3018 @tab Step, into function calls (@code{idlwave-shell-step})
3022 @tab Continue to end of block (@code{idlwave-shell-up})
3025 (@code{idlwave-shell-electric-debug-mode})
3030 @tab Reset IDL (@code{idlwave-shell-reset})
3032 @tab Show higher level in calling stack (@code{idlwave-shell-stack-up})
3034 @tab Show lower level in calling stack (@code{idlwave-shell-stack-down})
3037 (@code{idlwave-shell-help-expression})
3059 the Shell's main level, use @kbd{q} (@code{idlwave-shell-retall}).
3060 This disables electric debug mode in all IDLWAVE buffers@footnote{Note
3062 @code{idlwave-shell-quit}, which quits your IDL session.}. Help is
3065 by setting the variable @code{idlwave-shell-automatic-electric-debug}
3070 @defopt idlwave-shell-automatic-electric-debug (@code{'breakpoint})
3072 or run-time error is encountered, and then disable it in all buffers
3080 @defopt idlwave-shell-electric-stop-color (Violet)
3084 @defopt idlwave-shell-electric-stop-line-face
3086 modeline, with color @code{idlwave-shell-electric-stop-color}.
3089 @defopt idlwave-shell-electric-zap-to-file (@code{t})
3127 If the variable @code{idlwave-shell-separate-examine-output} is
3128 non-@code{nil} (the default), all examine output will be sent to a
3146 @code{idlwave-shell-max-print-length}.
3165 calling routine, and so on, all the way up through the calling stack.
3168 through the calling stack). The following restrictions apply for all
3183 @defopt idlwave-shell-expression-face
3184 The face for @code{idlwave-shell-expression-overlay}.
3189 @defopt idlwave-shell-output-face
3190 The face for @code{idlwave-shell-output-overlay}.
3195 @defopt idlwave-shell-separate-examine-output (@code{t})
3200 @defopt idlwave-shell-max-print-length (200)
3212 @code{widget_info()}). Rather than attempt to include them all, IDLWAVE
3217 The most powerful and flexible mouse examine command of all is
3218 available on @kbd{C-S-mouse-2}. Just as for all the other mouse
3222 configured with the @code{idlwave-shell-examine-alist}
3235 @code{idlwave-shell-examine-alist} comes configured by default with a
3242 @code{idlwave-shell-examine} and @code{idlwave-shell-mouse-examine}.
3244 sharing all the same properties of the built-in examine commands.
3246 @code{idlwave-shell-examine-alist} values, e.g.:
3249 (add-hook 'idlwave-shell-mode-hook
3251 (idlwave-shell-define-key-both [s-down-mouse-2]
3252 (idlwave-shell-mouse-examine
3254 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
3256 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
3258 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
3268 @defopt idlwave-shell-examine-alist
3271 examine command strings to send, after all instances of @code{___}
3416 @noindent To maintain the most comprehensive information about all IDL
3431 IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session
3435 command @kbd{C-c C-i} (@code{idlwave-update-routine-info}) can be used
3436 at any time to rescan all buffers.
3445 (@code{idlwave-update-routine-info}) can be used to explicitly update
3462 Loading all the routine and catalog information can be a time consuming
3469 set the variable @code{idlwave-init-rinfo-when-idle-after} to 0 (zero).
3474 @defopt idlwave-init-rinfo-when-idle-after (@code{10})
3478 @defopt idlwave-scan-all-buffers-for-routine-info (@code{t})
3479 Non-@code{nil} means scan all buffers for IDL programs when updating
3483 @defopt idlwave-query-shell-for-routine-info (@code{t})
3487 @defopt idlwave-auto-routine-info-updates
3500 class and procedure vs. function type, etc. They represent a way of
3516 @code{idlwave-library-path} to allow library catalogs to be located, and
3520 to by @code{idlwave-path-file} (@file{~/.emacs.d/idlwave/idlpath.el}, by
3521 default). If @code{idlwave-auto-write-path} is enabled (which is the
3525 @defopt idlwave-auto-write-path (@code{t})
3531 @defopt idlwave-library-path
3536 @defopt idlwave-system-directory
3542 @defopt idlwave-config-directory (@file{~/.emacs.d/idlwave})
3578 scanned catalog). Since all catalogs are independent, they can be
3591 @noindent This will scan all directories recursively beneath the current and
3601 catalog all directories at or beneath this one.
3603 -d - Instead of scanning, delete all .idlwave_catalog files
3612 info update using a single prefix to @code{idlwave-update-routine-info}:
3615 @defopt idlwave-use-library-catalogs (@code{t})
3631 (@file{.emacs.d/idlwave/idlusercat.el} by default). Although library catalogs
3645 catalog is all or nothing: if a single routine changes, the entire
3651 the variable @code{idlwave-library-path}, and the location of the IDL
3653 @code{idlwave-system-directory}, like this@footnote{The initial @samp{+}
3657 (setq idlwave-library-path
3659 (setq idlwave-system-directory "c:/RSI/IDL56/")
3665 The command @kbd{M-x idlwave-create-user-catalog-file} (or the menu item
3668 select some or all directories on the search path. Directories which
3674 button in the widget to scan all files in the selected directories and
3677 @code{idlwave-update-routine-info} with a double prefix argument:
3688 @defopt idlwave-special-lib-alist
3718 @item @kbd{M-x idlwave-list-buffer-load-path-shadows}
3719 This command checks the names of all routines defined in the current
3722 @item @kbd{M-x idlwave-list-shell-load-path-shadows}.
3723 Checks all routines compiled under the shell for shadowing. This is
3728 @item @kbd{M-x idlwave-list-all-load-path-shadows}
3729 This command checks all routines accessible to IDLWAVE for conflicts.
3744 @code{idlwave-system-directory} to the value of the @code{!DIR} system
3746 variable and assumes that all files found on that path are system
3794 @code{idlwave-help-use-assistant}, enabled by default, controls
3800 @code{idlwave-help-browser-function} inherits the browser configured
3828 (setq idlwave-help-browser-function 'w3m-browse-url)
3845 (defadvice w3m-close-window (after idlwave-close activate)
3846 (if (boundp 'idlwave-help-frame)
3847 (idlwave-help-quit)))
3864 @b{Question:} You have all these complicated configuration options in
3879 will not work properly on all Emacs installations.
3893 (setq idlwave-shell-debug-modifiers '(control shift)
3894 idlwave-store-inquired-class t
3895 idlwave-shell-automatic-start t
3896 idlwave-main-block-indent 2
3897 idlwave-init-rinfo-when-idle-after 2
3898 idlwave-help-dir "~/lib/emacs/idlwave"
3899 idlwave-special-lib-alist '(("/idl-astro/" . "AstroLib")
3912 (setq idlwave-block-indent 3) ; Indentation settings
3913 (setq idlwave-main-block-indent 3)
3914 (setq idlwave-end-offset -3)
3915 (setq idlwave-continuation-indent 1)
3916 (setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;"
3918 (setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,>
3919 (setq idlwave-pad-keyword nil) ; Remove spaces for keyword '='
3920 (setq idlwave-expand-generic-end t) ; convert END to ENDIF etc...
3921 (setq idlwave-reserved-word-upcase t) ; Make reserved words upper case
3923 (setq idlwave-abbrev-change-case nil) ; Don't force case of expansions
3924 (setq idlwave-hang-indent-regexp ": ") ; Change from "- " for auto-fill
3925 (setq idlwave-show-block nil) ; Turn off blinking to begin
3926 (setq idlwave-abbrev-move t) ; Allow abbrevs to move point
3927 (setq idlwave-query-class '((method-default . nil) ; No query for method
3936 (setq idlwave-help-browser-function 'w3m-browse-url
3942 (defadvice w3m-close-window (after idlwave-close activate)
3943 (if (boundp 'idlwave-help-frame)
3944 (idlwave-help-quit)))
3947 (add-hook 'idlwave-mode-hook
3952 (idlwave-auto-fill-mode 0) ; Turn off auto filling
3953 (setq idlwave-help-browser-function 'browse-url-w3)
3958 (idlwave-action-and-binding "=" '(idlwave-expand-equal 1 1))
3959 (idlwave-action-and-binding "<" '(idlwave-surround 1 1))
3960 (idlwave-action-and-binding ">" '(idlwave-surround 1 1 '(?-)))
3961 (idlwave-action-and-binding "&" '(idlwave-surround 1 1))
3964 (idlwave-action-and-binding "," '(idlwave-surround nil 1))
3965 (idlwave-action-and-binding "&" '(idlwave-surround 1 1))
3968 (idlwave-action-and-binding "->" '(idlwave-surround 0 -1 nil 2))
3973 (local-set-key [f5] 'idlwave-shell-break-here)
3974 (local-set-key [f6] 'idlwave-shell-clear-current-bp)
3979 (local-set-key "\n" 'idlwave-newline)
3980 ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference.
3983 (define-abbrev idlwave-mode-abbrev-table
3984 (concat idlwave-abbrev-start-char "wb") "widget_base()"
3985 (idlwave-keyword-abbrev 1))
3986 (define-abbrev idlwave-mode-abbrev-table
3987 (concat idlwave-abbrev-start-char "on") "obj_new()"
3988 (idlwave-keyword-abbrev 1))
3993 (setq idlwave-shell-overlay-arrow "=>") ; default is ">"
3994 (setq idlwave-shell-use-dedicated-frame t) ; Make a dedicated frame
3995 (setq idlwave-shell-prompt-pattern "^WAVE> ") ; default is "^IDL> "
3996 (setq idlwave-shell-explicit-file-name "wave")
3997 (setq idlwave-shell-process-name "wave")
3998 (setq idlwave-shell-use-toolbar nil) ; No toolbar
4001 (add-hook 'idlwave-shell-mode-hook
4004 (idlwave-shell-define-key-both [s-down-mouse-2]
4005 (idlwave-shell-mouse-examine
4007 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
4009 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
4011 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
4031 with Emacs/IDLWAVE works with all bells and whistles, including
4049 (setq idlwave-library-path
4053 (setq idlwave-system-directory "c:/RSI/IDL63/")
4062 file under the names @file{idlwave.tar.gz}.
4090 @code{*Debugging*} in the mode-line. The buffer is read-only and all
4093 customize the variable @code{idlwave-shell-automatic-electric-debug}
4107 @code{idlwave-shell-explicit-file-name}. Note that you may need to
4160 @code{idlwave-shell-prompt-pattern} (@pxref{Starting the Shell}), e.g.,
4164 (setq idlwave-shell-prompt-pattern "^\r? ?\\(ENVI\\|IDL\\)> ")
4175 used with @kbd{C-h v idlwave-mode-version @key{RET}}.
4201 Actually, this isn't IDLWAVE at all, but @samp{idl-mode}, an unrelated
4209 (setcdr (rassoc 'idl-mode auto-mode-alist) 'idlwave-mode)
4229 rescan all @file{.pro} files at or below @file{/path/to/myidllib} every
4231 method, and the most recent information will be available to all users.
4275 is to install all the packages when you install XEmacs (the so-called