Lines Matching +refs:idlwave +refs:all +refs:method +refs:classes

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
225 editing and all the completion and routine info capabilities present in
250 @uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_nav.gif,An IDLWAVE buffer}
252 @uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_keys.gif,A keyword being completed}
254 @uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_help.gif,Online help text.}
256 @uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_ri.gif,Routine information displayed}
258 @uref{http://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)))
682 @file{.idlwave_catalog} files, or using the built-in method to create a
684 more information on choosing which method to use.
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
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
1112 When you ask for routine information about an object method, and the
1113 method exists in several classes, IDLWAVE queries for the class of 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
1222 method in other classes on the inheritance chain, if such a method
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
1290 @tab The name of a routine (function, procedure, method).
1321 list, the documentation for the corresponding @code{Init} method and
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.
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"})
1521 @cindex Object method completion
1534 be updated with @kbd{C-c C-i} (@code{idlwave-update-routine-info}).
1547 obj -> a_ @r{Object method (procedure)}
1548 a[2,3] = obj -> a_ @r{Object method (function)}
1550 x = obj_new('MyCl',a_ @r{Keyword to @code{Init} method in class @code{MyCl}}
1552 pro _ @r{Fill in @code{Class::} of first method in this file}
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
1639 in addition to classes and methods, you need an entry such as
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})
1666 An object method is not uniquely determined without the object's class.
1669 IDLWAVE considers all available methods in all classes as possible
1670 method name completions. The combined list of keywords of the current
1671 method in @emph{all} known classes which contain that method will be
1673 the matching classes will be shown next to each item (see option
1674 @code{idlwave-completion-show-classes}). As a special case, the class
1676 current routine, when in an IDLWAVE buffer. All inherits classes are
1681 You can also call @code{idlwave-complete} with a prefix arg: @kbd{C-u
1684 @code{idlwave-query-class} can be configured to make such prompting the
1685 default for all methods (not recommended), or selectively for very
1692 completing the method), IDLWAVE can remember it for the rest of the
1695 placing a text property on the method invocation operator @samp{->},
1697 default). The variable @code{idlwave-store-inquired-class} can be used
1700 @defopt idlwave-completion-show-classes (@code{1})
1701 Non-@code{nil} means show up to that many classes in
1706 @defopt idlwave-completion-fontify-classes (@code{t})
1707 Non-@code{nil} means fontify the classes in completions buffer.
1710 @defopt idlwave-query-class (@code{nil})
1711 Association list governing query for object classes during completion.
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
1731 routine info, or online help within a method routine, a query is sent to
1734 info, or help. If unsuccessful, information from all known classes will
1745 override that method by defining its own method of the same name, extend
1746 the method by calling the method(s) of its superclass(es) in its
1747 version, or inherit the method directly by making no modifications.
1749 information display, and records all inheritance information it finds.
1752 @code{idlwave-support-inheritance} is non-@code{nil}.
1756 method overriding. E.g., in a @code{SetProperty} method, this technique
1759 @emph{chaining}, and is characterized by chained method calls like
1764 method's keyword parameters, all keywords of superclass versions of
1765 the method being considered can be included in completion. There is
1768 variable @code{idlwave-keyword-class-inheritance} can be used to
1774 @defopt idlwave-support-inheritance (@code{t})
1778 @defopt idlwave-keyword-class-inheritance
1798 the structure in all parts of the program. This is entirely unenforced
1808 (add-hook 'idlwave-load-hook
1815 to the way object variables in the shell are queried for method names.
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
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
2238 case of routines, keywords, classes, and methods as they are completed, see
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}.
2363 @defopt idlwave-load-hook
2364 Normal hook. Executed when @file{idlwave.el} is loaded.
2370 @cindex Major mode, @code{idlwave-shell-mode}
2406 idlwave-shell}. In @code{idlwave-mode} the function is bound to
2410 C-l} (@code{idlwave-shell-recenter-shell-window}) displays the shell
2414 @code{idlwave-shell-automatic-start} to @code{t}.
2417 @code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or
2420 @code{idlwave-shell-use-dedicated-frame}.
2427 emacs -geometry 80x32 -eval "(idlwave-shell 'quick)"
2438 @code{idlwave-shell-prompt-pattern}, which defaults to @samp{"^ ?IDL>
2443 @defopt idlwave-shell-explicit-file-name (@file{idl})
2447 @defopt idlwave-shell-command-line-options
2451 @defopt idlwave-shell-prompt-pattern
2455 @defopt idlwave-shell-process-name
2459 @defopt idlwave-shell-automatic-start (@code{nil})
2460 Non-@code{nil} means attempt to invoke idlwave-shell if not already
2464 @defopt idlwave-shell-initial-commands
2468 @defopt idlwave-shell-save-command-history (@code{t})
2472 @defopt idlwave-shell-command-history-file (@file{~/.emacs.d/idlwave/.idlwhist})
2473 The file in which the command history of the idlwave shell is saved.
2475 @code{idlwave-config-directory}.
2478 @defopt idlwave-shell-use-dedicated-frame (@code{nil})
2483 @defopt idlwave-shell-use-dedicated-window (@code{nil})
2488 @defopt idlwave-shell-frame-parameters
2489 The frame parameters for a dedicated idlwave-shell frame.
2492 @defopt idlwave-shell-raise-frame (@code{t})
2493 Non-@code{nil} means @code{idlwave-shell} raises the frame showing the shell
2497 @defopt idlwave-shell-temp-pro-prefix
2502 @defopt idlwave-shell-mode-hook
2503 Hook for customizing @code{idlwave-shell-mode}.
2517 @code{idlwave-shell-arrows-do-history}.}. The history is preserved
2553 @code{idlwave-shell-mode} provides many of the same commands which
2567 (@code{idlwave-shell-complete}).
2571 @tab Routine Info display (@code{idlwave-routine-info})
2573 @tab IDL online help on routine (@code{idlwave-routine-info-from-idlhelp})
2576 (@code{idlwave-update-routine-info})
2578 @tab Find the source file of a routine (@code{idlwave-find-module})
2581 (@code{idlwave-find-module-this-file}).
2583 @tab Compile a library routine (@code{idlwave-resolve})
2586 @defopt idlwave-shell-arrows-do-history (@code{t})
2591 @defopt idlwave-shell-comint-settings
2595 @defopt idlwave-shell-file-name-chars
2600 @defopt idlwave-shell-graphics-window-size
2610 all the power Emacs gives you to do this. When you press @key{RET}, the
2615 (@code{idlwave-shell-send-char}). When you press @kbd{C-c C-y}
2616 (@code{idlwave-shell-char-mode-loop}), IDLWAVE runs a blocking loop
2623 @defopt idlwave-shell-use-input-mode-magic (@code{nil})
2628 @defopt idlwave-shell-input-mode-spells
2654 @code{idlwave-abbrev-show-commands} allows you to configure which
2659 @defopt idlwave-shell-show-commands (@code{'(run misc breakpoint)})
2666 the single symbol @code{'everything}, all the copious shell input is
2690 in all IDL code buffers of the current Emacs session, so debug
2694 @kbd{C-c C-d C-t} (@code{idlwave-shell-toggle-toolbar}).
2697 @defopt idlwave-shell-use-toolbar (@code{t})
2698 Non-@code{nil} means use the debugging toolbar in all IDL related
2730 @code{idlwave-shell-automatic-electric-debug}.
2743 see @code{idlwave-shell-activate-prefix-keybindings}). For
2747 (setq idlwave-shell-debug-modifiers '(control shift))
2756 @code{idlwave-shell-debug-modifiers} variable (@pxref{Lesson
2761 @defopt idlwave-shell-prefix-key (@kbd{C-c C-d})
2763 @code{idlwave-shell-mode-prefix-map}.
2766 @defopt idlwave-shell-activate-prefix-keybindings (@code{t})
2771 @defopt idlwave-shell-debug-modifiers (@code{nil})
2788 with @kbd{C-c C-d C-b} (@code{idlwave-shell-break-here}). With a
2796 use @kbd{C-c C-d C-d} (@code{idlwave-clear-current-bp}). When
2798 stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d
2799 C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled
2801 (@code{idlwave-shell-toggle-enable-current-bp}).
2830 @tab Set breakpoint (@code{idlwave-shell-break-here})
2832 @tab Set breakpoint in module named here (@code{idlwave-shell-break-in})
2834 @tab Clear current breakpoint (@code{idlwave-shell-clear-current-bp})
2836 @tab Clear all breakpoints (@code{idlwave-shell-clear-all-bp})
2838 @tab Go to the previous breakpoint (@code{idlwave-shell-goto-previous-bp})
2840 @tab Go to the next breakpoint (@code{idlwave-shell-goto-next-bp})
2842 @tab Disable/Enable current breakpoint (@code{idlwave-shell-toggle-enable-current-bp})
2846 @tab Step, into function calls (@code{idlwave-shell-step})
2848 @tab Step, over function calls (@code{idlwave-shell-stepover})
2850 @tab Skip one statement (@code{idlwave-shell-skip})
2852 @tab Continue to end of block (@code{idlwave-shell-up})
2854 @tab Continue to end of function (@code{idlwave-shell-return})
2856 @tab Continue past end of function (@code{idlwave-shell-out})
2858 @tab Continue to line at cursor position (@code{idlwave-shell-to-here})
2860 @tab Continue execution to next breakpoint, if any (@code{idlwave-shell-cont})
2862 @tab Show higher level in calling stack (@code{idlwave-shell-stack-up})
2864 @tab Show lower level in calling stack (@code{idlwave-shell-stack-down})
2872 setting in @code{idlwave-shell-mark-stop-line}. If an overlay face is
2877 @defopt idlwave-shell-mark-breakpoints (@code{t})
2879 value indicates the preferred method. Valid values are @code{nil},
2883 @defopt idlwave-shell-breakpoint-face
2885 @code{idlwave-shell-mark-breakpoints} has the value @code{face}.
2888 @defopt idlwave-shell-breakpoint-popup-menu (@code{t})
2893 @defopt idlwave-shell-mark-stop-line (@code{t})
2895 stopped. The value specifies the preferred method. Valid values are
2899 @defopt idlwave-shell-overlay-arrow (@code{">"})
2901 configured in @code{idlwave-shell-mark-stop-line}.
2904 @defopt idlwave-shell-stop-line-face
2906 configured in @code{idlwave-shell-mark-stop-line}.
2919 @kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the
2927 @kbd{C-c C-d C-y} (@code{idlwave-shell-execute-default-command-line}).
2929 closing all files and returning to the main interpreter level. Then a
2931 line, call @code{idlwave-shell-execute-default-command-line} with a
2939 level program @kbd{C-c C-d C-e} (@code{idlwave-shell-run-region}) is
2952 (@code{idlwave-shell-stack-up}) and @kbd{C-c C-d C-@key{DOWN}}
2953 (@code{idlwave-shell-stack-down}), or the corresponding toolbar buttons,
2986 @tab Clear all breakpoints (@code{idlwave-shell-clear-all-bp})
2988 @tab Set breakpoint, @kbd{C-u b} for a conditional break, @kbd{C-n b} for nth hit (@code{idlwave-sh…
2990 @tab Clear current breakpoint (@code{idlwave-shell-clear-current-bp})
2992 @tab Prompt for expression to print (@code{idlwave-shell-clear-current-bp}).
2994 @tab Continue to the line at cursor position (@code{idlwave-shell-to-here})
2996 @tab Set breakpoint in module named here (@code{idlwave-shell-break-in})
2998 @tab Go to the previous breakpoint in the file (@code{idlwave-shell-goto-previous-bp})
3001 (@code{idlwave-shell-goto-next-bp})
3003 @tab Disable/Enable current breakpoint (@code{idlwave-shell-toggle-enable-current-bp})
3005 @tab Set breakpoint at beginning of enclosing routine (@code{idlwave-shell-break-this-module})
3007 @tab Skip one statement (@code{idlwave-shell-skip})
3009 @tab Continue to end of function (@code{idlwave-shell-return})
3011 @tab Step, over function calls (@code{idlwave-shell-stepover})
3013 @tab Continue past end of function (@code{idlwave-shell-out})
3015 @tab Print expression near point or in region with @kbd{C-u p} (@code{idlwave-shell-print})
3018 (@code{idlwave-shell-retall})
3020 @tab Continue execution to next breakpoint, if any (@code{idlwave-shell-cont})
3022 @tab Step, into function calls (@code{idlwave-shell-step})
3026 @tab Continue to end of block (@code{idlwave-shell-up})
3029 (@code{idlwave-shell-electric-debug-mode})
3034 @tab Reset IDL (@code{idlwave-shell-reset})
3036 @tab Show higher level in calling stack (@code{idlwave-shell-stack-up})
3038 @tab Show lower level in calling stack (@code{idlwave-shell-stack-down})
3041 (@code{idlwave-shell-help-expression})
3063 the Shell's main level, use @kbd{q} (@code{idlwave-shell-retall}).
3064 This disables electric debug mode in all IDLWAVE buffers@footnote{Note
3066 @code{idlwave-shell-quit}, which quits your IDL session.}. Help is
3069 by setting the variable @code{idlwave-shell-automatic-electric-debug}
3074 @defopt idlwave-shell-automatic-electric-debug (@code{'breakpoint})
3076 or run-time error is encountered, and then disable it in all buffers
3084 @defopt idlwave-shell-electric-stop-color (Violet)
3088 @defopt idlwave-shell-electric-stop-line-face
3090 modeline, with color @code{idlwave-shell-electric-stop-color}.
3093 @defopt idlwave-shell-electric-zap-to-file (@code{t})
3131 If the variable @code{idlwave-shell-separate-examine-output} is
3132 non-@code{nil} (the default), all examine output will be sent to a
3150 @code{idlwave-shell-max-print-length}.
3169 calling routine, and so on, all the way up through the calling stack.
3172 through the calling stack). The following restrictions apply for all
3187 @defopt idlwave-shell-expression-face
3188 The face for @code{idlwave-shell-expression-overlay}.
3193 @defopt idlwave-shell-output-face
3194 The face for @code{idlwave-shell-output-overlay}.
3199 @defopt idlwave-shell-separate-examine-output (@code{t})
3204 @defopt idlwave-shell-max-print-length (200)
3216 @code{widget_info()}). Rather than attempt to include them all, IDLWAVE
3221 The most powerful and flexible mouse examine command of all is
3222 available on @kbd{C-S-mouse-2}. Just as for all the other mouse
3226 configured with the @code{idlwave-shell-examine-alist}
3239 @code{idlwave-shell-examine-alist} comes configured by default with a
3246 @code{idlwave-shell-examine} and @code{idlwave-shell-mouse-examine}.
3248 sharing all the same properties of the built-in examine commands.
3250 @code{idlwave-shell-examine-alist} values, e.g.:
3253 (add-hook 'idlwave-shell-mode-hook
3255 (idlwave-shell-define-key-both [s-down-mouse-2]
3256 (idlwave-shell-mouse-examine
3258 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
3260 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
3262 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
3272 @defopt idlwave-shell-examine-alist
3275 examine command strings to send, after all instances of @code{___}
3305 maintainer, as of version 4.10, helped shape object method completion
3420 @noindent To maintain the most comprehensive information about all IDL
3435 IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session
3439 command @kbd{C-c C-i} (@code{idlwave-update-routine-info}) can be used
3440 at any time to rescan all buffers.
3449 (@code{idlwave-update-routine-info}) can be used to explicitly update
3466 Loading all the routine and catalog information can be a time consuming
3473 set the variable @code{idlwave-init-rinfo-when-idle-after} to 0 (zero).
3478 @defopt idlwave-init-rinfo-when-idle-after (@code{10})
3482 @defopt idlwave-scan-all-buffers-for-routine-info (@code{t})
3483 Non-@code{nil} means scan all buffers for IDL programs when updating
3487 @defopt idlwave-query-shell-for-routine-info (@code{t})
3491 @defopt idlwave-auto-routine-info-updates
3520 @code{idlwave-library-path} to allow library catalogs to be located, and
3524 to by @code{idlwave-path-file} (@file{~/.emacs.d/idlwave/idlpath.el}, by
3525 default). If @code{idlwave-auto-write-path} is enabled (which is the
3529 @defopt idlwave-auto-write-path (@code{t})
3535 @defopt idlwave-library-path
3540 @defopt idlwave-system-directory
3546 @defopt idlwave-config-directory (@file{~/.emacs.d/idlwave})
3582 scanned catalog). Since all catalogs are independent, they can be
3584 Scanning is much faster than with the built-in user catalog method. One
3595 @noindent This will scan all directories recursively beneath the current and
3605 catalog all directories at or beneath this one.
3607 -d - Instead of scanning, delete all .idlwave_catalog files
3616 info update using a single prefix to @code{idlwave-update-routine-info}:
3619 @defopt idlwave-use-library-catalogs (@code{t})
3635 (@file{.emacs.d/idlwave/idlusercat.el} by default). Although library catalogs
3649 catalog is all or nothing: if a single routine changes, the entire
3655 the variable @code{idlwave-library-path}, and the location of the IDL
3657 @code{idlwave-system-directory}, like this@footnote{The initial @samp{+}
3661 (setq idlwave-library-path
3663 (setq idlwave-system-directory "c:/RSI/IDL56/")
3669 The command @kbd{M-x idlwave-create-user-catalog-file} (or the menu item
3672 select some or all directories on the search path. Directories which
3678 button in the widget to scan all files in the selected directories and
3681 @code{idlwave-update-routine-info} with a double prefix argument:
3692 @defopt idlwave-special-lib-alist
3722 @item @kbd{M-x idlwave-list-buffer-load-path-shadows}
3723 This command checks the names of all routines defined in the current
3726 @item @kbd{M-x idlwave-list-shell-load-path-shadows}.
3727 Checks all routines compiled under the shell for shadowing. This is
3732 @item @kbd{M-x idlwave-list-all-load-path-shadows}
3733 This command checks all routines accessible to IDLWAVE for conflicts.
3748 @code{idlwave-system-directory} to the value of the @code{!DIR} system
3750 variable and assumes that all files found on that path are system
3798 @code{idlwave-help-use-assistant}, enabled by default, controls
3804 @code{idlwave-help-browser-function} inherits the browser configured
3832 (setq idlwave-help-browser-function 'w3m-browse-url)
3849 (defadvice w3m-close-window (after idlwave-close activate)
3850 (if (boundp 'idlwave-help-frame)
3851 (idlwave-help-quit)))
3868 @b{Question:} You have all these complicated configuration options in
3883 will not work properly on all Emacs installations.
3897 (setq idlwave-shell-debug-modifiers '(control shift)
3898 idlwave-store-inquired-class t
3899 idlwave-shell-automatic-start t
3900 idlwave-main-block-indent 2
3901 idlwave-init-rinfo-when-idle-after 2
3902 idlwave-help-dir "~/lib/emacs/idlwave"
3903 idlwave-special-lib-alist '(("/idl-astro/" . "AstroLib")
3916 (setq idlwave-block-indent 3) ; Indentation settings
3917 (setq idlwave-main-block-indent 3)
3918 (setq idlwave-end-offset -3)
3919 (setq idlwave-continuation-indent 1)
3920 (setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;"
3922 (setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,>
3923 (setq idlwave-pad-keyword nil) ; Remove spaces for keyword '='
3924 (setq idlwave-expand-generic-end t) ; convert END to ENDIF etc...
3925 (setq idlwave-reserved-word-upcase t) ; Make reserved words upper case
3927 (setq idlwave-abbrev-change-case nil) ; Don't force case of expansions
3928 (setq idlwave-hang-indent-regexp ": ") ; Change from "- " for auto-fill
3929 (setq idlwave-show-block nil) ; Turn off blinking to begin
3930 (setq idlwave-abbrev-move t) ; Allow abbrevs to move point
3931 (setq idlwave-query-class '((method-default . nil) ; No query for method
3940 (setq idlwave-help-browser-function 'w3m-browse-url
3946 (defadvice w3m-close-window (after idlwave-close activate)
3947 (if (boundp 'idlwave-help-frame)
3948 (idlwave-help-quit)))
3951 (add-hook 'idlwave-mode-hook
3956 (idlwave-auto-fill-mode 0) ; Turn off auto filling
3957 (setq idlwave-help-browser-function 'browse-url-w3)
3962 (idlwave-action-and-binding "=" '(idlwave-expand-equal 1 1))
3963 (idlwave-action-and-binding "<" '(idlwave-surround 1 1))
3964 (idlwave-action-and-binding ">" '(idlwave-surround 1 1 '(?-)))
3965 (idlwave-action-and-binding "&" '(idlwave-surround 1 1))
3968 (idlwave-action-and-binding "," '(idlwave-surround nil 1))
3969 (idlwave-action-and-binding "&" '(idlwave-surround 1 1))
3972 (idlwave-action-and-binding "->" '(idlwave-surround 0 -1 nil 2))
3977 (local-set-key [f5] 'idlwave-shell-break-here)
3978 (local-set-key [f6] 'idlwave-shell-clear-current-bp)
3983 (local-set-key "\n" 'idlwave-newline)
3984 ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference.
3987 (define-abbrev idlwave-mode-abbrev-table
3988 (concat idlwave-abbrev-start-char "wb") "widget_base()"
3989 (idlwave-keyword-abbrev 1))
3990 (define-abbrev idlwave-mode-abbrev-table
3991 (concat idlwave-abbrev-start-char "on") "obj_new()"
3992 (idlwave-keyword-abbrev 1))
3997 (setq idlwave-shell-overlay-arrow "=>") ; default is ">"
3998 (setq idlwave-shell-use-dedicated-frame t) ; Make a dedicated frame
3999 (setq idlwave-shell-prompt-pattern "^WAVE> ") ; default is "^IDL> "
4000 (setq idlwave-shell-explicit-file-name "wave")
4001 (setq idlwave-shell-process-name "wave")
4002 (setq idlwave-shell-use-toolbar nil) ; No toolbar
4005 (add-hook 'idlwave-shell-mode-hook
4008 (idlwave-shell-define-key-both [s-down-mouse-2]
4009 (idlwave-shell-mouse-examine
4011 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
4013 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
4015 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
4035 with Emacs/IDLWAVE works with all bells and whistles, including
4053 (setq idlwave-library-path
4057 (setq idlwave-system-directory "c:/RSI/IDL63/")
4066 file under the names @file{idlwave.tar.gz}.
4094 @code{*Debugging*} in the mode-line. The buffer is read-only and all
4097 customize the variable @code{idlwave-shell-automatic-electric-debug}
4111 @code{idlwave-shell-explicit-file-name}. Note that you may need to
4164 @code{idlwave-shell-prompt-pattern} (@pxref{Starting the Shell}), e.g.,
4168 (setq idlwave-shell-prompt-pattern "^\r? ?\\(ENVI\\|IDL\\)> ")
4179 used with @kbd{C-h v idlwave-mode-version @key{RET}}.
4205 Actually, this isn't IDLWAVE at all, but @samp{idl-mode}, an unrelated
4213 (setcdr (rassoc 'idl-mode auto-mode-alist) 'idlwave-mode)
4233 rescan all @file{.pro} files at or below @file{/path/to/myidllib} every
4235 method, and the most recent information will be available to all users.
4243 permitted method for doing this in HTML@. There is a "workaround" for
4279 is to install all the packages when you install XEmacs (the so-called