Lines Matching +refs:idlwave +refs:complete +refs:class +refs:structure +refs:tag

3 @setfilename ../../info/idlwave.info
43 * IDLWAVE: (idlwave). Major mode and shell for IDL files.
104 * Motion Commands:: Moving through the structure of a program
109 * Code Indentation:: Reflecting the logical structure
189 source files (@code{idlwave-mode}) and a mode for running the IDL
190 program as an inferior shell (@code{idlwave-shell-mode}). Although
192 form a complete development environment. Here is a brief summary of
209 variables, class names and much more.
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
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}
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
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)))
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}
748 * Motion Commands:: Moving through the structure of a program
758 * Code Indentation:: Reflecting the logical structure
774 challenging at best. Luckily, IDLWAVE understands the structure of
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
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
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
1283 Shell), press @kbd{M-?} (@code{idlwave-context-help}), or click with
1302 @tab A class name in an @code{OBJ_NEW} call.
1304 @tab Beyond the class name in an @code{OBJ_NEW} call.
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
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.
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}).
1537 complete based on the location of the point. Here are example lines and
1538 what @kbd{M-@key{TAB}} would try to complete when the cursor is on the
1550 x = obj_new('MyCl',a_ @r{Keyword to @code{Init} method in class @code{MyCl}}
1554 !version.t_ @r{Structure tag of system variable}
1555 self.g_ @r{Class structure tag in methods}
1556 state.w_ @r{Structure tag, if tag completion enabled}
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})
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
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
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
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
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
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.
1785 @cindex Completion, structure tag
1786 @cindex Structure tag completion
1789 (e.g., the @samp{state} structure) are used to communicate among
1790 routines. It is very convenient to be able to complete structure tags,
1793 code for structure tag completion is available in the form of a loadable
1794 completion module: @file{idlw-complete-structtag.el}. Tag completion in
1796 completion), so @code{idlw-complete-structtag} makes an unusual and very
1798 the structure in all parts of the program. This is entirely unenforced
1800 refer to the same structure with the same variable name
1801 (e.g., @samp{state}), structure tags which are read from its definition
1804 Structure tag completion is not enabled by default. To enable it,
1808 (with-eval-after-load 'idlwave
1809 (require 'idlw-complete-structtag))
1812 Once enabled, you'll also be able to access online help on the structure
1814 structure variables in the shell will be queried for tag names, similar
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
1836 contents. In the minibuffer, specify a complete routine name (including
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
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})
2086 automatically while you write code in order to check the structure of
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})
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
2299 @cindex Program structure, moving through
2300 @cindex Code structure, moving through
2321 Several commands allow you to move quickly through the structure of an
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,
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
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)})
2690 @kbd{C-c C-d C-t} (@code{idlwave-shell-toggle-toolbar}).
2693 @defopt idlwave-shell-use-toolbar (@code{t})
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
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}).
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}).
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})
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})
3110 type/size/structure/value/etc.@: of variables and expressions in your code
3127 If the variable @code{idlwave-shell-separate-examine-output} is
3146 @code{idlwave-shell-max-print-length}.
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)
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}.
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
3265 and @key{f11} will show the contents of a nearby structure. As you can
3268 @defopt idlwave-shell-examine-alist
3435 command @kbd{C-c C-i} (@code{idlwave-update-routine-info}) can be used
3445 (@code{idlwave-update-routine-info}) can be used to explicitly update
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})
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})
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
3644 the user must actively complete a scan. In addition, this type of
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
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}
3722 @item @kbd{M-x idlwave-list-shell-load-path-shadows}.
3724 very useful when you have written a complete application. Just compile
3728 @item @kbd{M-x idlwave-list-all-load-path-shadows}
3744 @code{idlwave-system-directory} to the value of the @code{!DIR} 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)))
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
4049 (setq idlwave-library-path
4053 (setq idlwave-system-directory "c:/RSI/IDL63/")
4062 file under the names @file{idlwave.tar.gz}.
4093 customize the variable @code{idlwave-shell-automatic-electric-debug}
4107 @code{idlwave-shell-explicit-file-name}. Note that you may need to
4138 @item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches
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}}.
4180 @file{idlw-complete-structtag}, I get errors like @samp{Cannot open
4209 (setcdr (rassoc 'idl-mode auto-mode-alist) 'idlwave-mode)