%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/progmodes/ |
Current File : //usr/local/share/emacs/27.2/lisp/progmodes/idlw-shell.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\207" [require comint idlwave] 2) (defvar idlwave-shell-have-new-custom nil) (byte-code "\301\302\303\304\305\306\307\310&\210\311\312\313\314\315DD\316\307\302\317\320&\210\311\321\313\314\322DD\323\307\302\317\324&\210\311\325\313\314\326DD\327\307\302\317\330&\210\311\331\313\314\332DD\333\307\302\317\330&\210\311\334\313\314\335DD\336\307\302\317\337&\210\311\340\313\314\341DD\342\307\302\317\330&\210\311\343\313\314\344DD\345\307\302\317\346&\210\311\347\313\314\350DD\351\307\302\317\330&\210\311\352\313\314\353DD\354\307\302\317\324&\210\311\355\313\314\356DD\357\307\302\317\324&\210\311\360\313\314\361DD\362\307\302\317\330&\210\311\363\313\314\364DD\365\307\302\317\366&\210\311\367\313\314\370DD\371\307\302\317\330&\210\311\372\313\314\373DD\374\307\302\317\330&\210\311\375\313\314\376DD\377\307\302\317\324&\210\311\201@ \313\314\201A DD\201B \307\302\317\201C &\210\311\201D \313\314\201E DD\201F \307\302\317\201G &\210\301\201H \303\201I \305\306\307\310&\210\311\201J \313\314\201K DD\201L \307\201H \317\324&\210\311\201M \313\314\201N DD\201O \307\201H \317\330&\210\311\201P \313\314\201Q DD\201R \307\201H \317\201S &\210\311\201T \313\314\201U DD\201V \307\201H \317\201W &\210\311\201X \313\314\201Y DD\201Z \307\201H \317\201[ &\210\311\201\\ \313\314\201] DD\201^ \307\201H \317\201_ &\210\311\201` \313\314\201a DD\201b \307\201H \317\330&\210\311\201c \313\314\201d DD\201e \307\201H \317\201f &\210\311\201g \313\314\201h DD\201i \307\201H \317\330&\210\311\201j \313\314\201k DD\201l \307\201H \317\330&\210\311\201m \313\314\201n DD\201o \307\201H \317\201p &\210\311\201q \313\314\201r DD\201s \307\201H \317\330&\210\311\201t \313\314\201u DD\201v \307\201H \317\330&\210\301\201w \303\201x \305\306\307\310&\210\311\201y \313\314\201z DD\201{ \307\201w \317\201| &\210\311\201} \313\314\201~ DD\201 \307\201w \317\324&\210\311\201\200 \313\314\201\201 DD\201\202 \307\201w \317\201\203 &\210\311\201\204 \313\314\201\205 DD\201\206 \307\201w \317\324&\210\311\201\207 \313\314\201\210 DD\201\211 \307\201w \317\201\203 &\210\311\201\212 \313\314\201\213 DD\201\214 \307\201w \317\201\215 &\210\311\201\216 \313\314\201\217 DD\201\220 \307\201w \317\201\203 &\210\204,\201\221 \201\222 \201\223 \"\210\202>\201\224 \201\223 \201\225 \201\226 \307\201w %\210\311\201\227 \313\314\201\230 DD\201\231 \307\201w \317\201\203 &\210\204i\201\221 \201\222 \201\232 \"\210\202{\201\224 \201\232 \201\233 \201\226 \307\201w %\210\311\201\234 \313\314\201\235 DD\201\236 \307\201w \317\201\203 &\210\311\201\237 \313\314\201\240 DD\201\241 \307\201w \317\201\203 &\207" [idlwave-shell-have-new-custom custom-declare-group idlwave-shell-general-setup nil "General setup of the Shell interaction for IDLWAVE/Shell." :prefix "idlwave-shell" :group idlwave custom-declare-variable idlwave-shell-prompt-pattern funcall function #[0 "\300\207" [#1="^ ? ?IDL> "] 1 #1#] "Regexp to match IDL prompt at beginning of a line.\nFor example, \"^ ?IDL> \" or \"^ ?WAVE> \".\nThe \"^ ?\" is needed, to indicate the beginning of the line, with\noptional return character (which IDL seems to output randomly).\nThis variable is used to initialize `comint-prompt-regexp' in the\nprocess buffer." :type regexp idlwave-shell-process-name #[0 "\300\207" [#2="idl"] 1 #2#] "Name to be associated with the IDL process. The buffer for the\nprocess output is made by surrounding this name with `*'s." string idlwave-shell-use-dedicated-window #[0 "\300\207" [nil] 1] "Non-nil means, never replace the shell frame with another buffer." boolean idlwave-shell-use-dedicated-frame #[0 "\300\207" [nil] 1] "Non-nil means, IDLWAVE should use a special frame to display shell buffer." idlwave-shell-frame-parameters #[0 "\300\207" [((height . 30) (unsplittable))] 1] "The frame parameters for a dedicated idlwave-shell frame.\nSee also `idlwave-shell-use-dedicated-frame'.\nThe default makes the frame splittable, so that completion works correctly." (repeat (cons symbol sexp)) idlwave-shell-raise-frame #[0 "\300\207" [t] 1] "Non-nil means, `idlwave-shell' raises the frame showing the shell window." idlwave-shell-arrows-do-history #[0 "\300\207" [t] 1] "Non-nil means UP and DOWN arrows move through command history.\nThis variable can have 3 values:\nnil Arrows just move the cursor\nt Arrows force the cursor back to the current command line and\n walk the history\n`cmdline' When the cursor is in the current command line, arrows walk the\n history. Everywhere else in the buffer, arrows move the cursor." (choice (const :tag "never" nil) (const :tag "everywhere" t) (const :tag "in command line only" cmdline)) idlwave-shell-use-toolbar #[0 "\300\207" [t] 1] "Non-nil means, use the debugging toolbar in all IDL related buffers.\nStarting the shell will then add the toolbar to all idlwave-mode buffers.\nExiting the shell will removed everywhere.\nAvailable on XEmacs and on Emacs 21.x or later.\nAt any time you can toggle the display of the toolbar with\n`C-c C-d C-t' (`idlwave-shell-toggle-toolbar')." idlwave-shell-temp-pro-prefix #[0 "\300\207" [#3="/tmp/idltemp"] 1 #3#] "The prefix for temporary IDL files used when compiling regions.\nIt should be an absolute pathname.\nThe full temporary file name is obtained by using `make-temp-file'\nso that the name will be unique among multiple Emacs processes." idlwave-shell-prefix-key #[0 "\300\207" [#4=""] 1 #4#] "The prefix key for the debugging map `idlwave-shell-mode-prefix-map'.\nThis variable must already be set when idlwave-shell.el is loaded.\nSetting it in the mode-hook is too late." idlwave-shell-activate-prefix-keybindings #[0 "\300\207" [t] 1] "Non-nil means, the debug commands will be bound to the prefix key.\nThe prefix key itself is given in the option `idlwave-shell-prefix-key'.\nSo by default setting a breakpoint will be on C-c C-d C-b." idlwave-shell-automatic-electric-debug #[0 "\300\207" [breakpoint] 1] "Enter the electric-debug minor mode automatically.\nThis occurs at a breakpoint or any other halt. The mode is exited\nupon return to the main level. Can be set to `breakpoint' to enter\nelectric debug mode only when breakpoints are tripped." (choice (const :tag "never" nil) (const :tag "always" t) (const :tag "for breakpoints only" breakpoint)) idlwave-shell-electric-zap-to-file #[0 "\300\207" [t] 1] "When entering electric debug mode, select the window displaying the\nfile at which point is stopped. This takes point away from the shell\nwindow, but is useful for stepping, etc." idlwave-shell-use-truename #[0 "\300\207" [nil] 1] "Non-nil means, use `file-truename' when looking for buffers.\nIf this variable is non-nil, Emacs will use the function `file-truename' to\nresolve symbolic links in the file paths printed by e.g., STOP commands.\nThis means, unvisited files will be loaded under their truename.\nHowever, when a file is already visited under a different name, IDLWAVE will\nreuse that buffer.\nThis option was once introduced in order to avoid multiple buffers visiting\nthe same file. However, IDLWAVE no longer makes this mistake, so it is safe\nto set this option to nil." idlwave-shell-file-name-chars #[0 "\300\207" [#5="~/A-Za-z0-9+:_.$#%={}\\- "] 1 #5#] "The characters allowed in file names, as a string.\nUsed for file name completion. Must not contain `\\='', `,' and `\"'\nbecause these are used as separators by IDL." idlwave-shell-mode-hook #[0 "\300\207" [nil] 1] "Hook for customizing `idlwave-shell-mode'." hook idlwave-shell-graphics-window-size #[0 "\300\207" [(500 400)] 1] "Size of IDL graphics windows popped up by special IDLWAVE command.\nThe command is `C-c C-d C-f' and accepts as a prefix the window nr.\nA command like `WINDOW,N,xsize=XX,ysize=YY' is sent to IDL." (list (integer :tag "x size") (integer :tag "y size")) idlwave-shell-command-setup "Setup for command parameters of the Shell interaction for IDLWAVE." idlwave-shell-initial-commands #[0 "\300\207" [#6="!more=0 & defsysv,'!ERROR_STATE',EXISTS=__e & if __e then begin & !ERROR_STATE.MSG_PREFIX=\"% \" & delvar,__e & endif"] 1 #6#] "Initial commands, separated by newlines, to send to IDL.\nThis string is sent to the IDL process by `idlwave-shell-mode' which is\ninvoked by `idlwave-shell'." idlwave-shell-save-command-history #[0 "\300\207" [t] 1] "Non-nil means preserve command history between sessions.\nThe file `idlwave-shell-command-history-file' is used to save and restore\nthe history." idlwave-shell-command-history-file #[0 "\300\207" [#7="idlwhist"] 1 #7#] "The file in which the command history of the idlwave shell is saved.\nIn order to change the size of the history, see the variable\n`comint-input-ring-size'.\nThe history is only saved if the variable `idlwave-shell-save-command-history'\nis non-nil." file idlwave-shell-show-commands #[0 "\300\207" [(run misc breakpoint)] 1] "A list of command types to show output from in the shell.\nPossibilities are `run', `debug', `breakpoint', and `misc'. Unselected\ntypes are not displayed in the shell. The type `everything' causes all\nthe copious shell traffic to be displayed." (choice (const everything) (set :tag "Checklist" :greedy t (const :tag "All .run and .compile commands" run) (const :tag "All breakpoint commands" breakpoint) (const :tag "All debug and stepping commands" debug) (const :tag "Close, window, retall, etc. commands" misc))) idlwave-shell-max-print-length #[0 "\300\207" [200] 1] "Maximum number of array elements to print when examining." integer idlwave-shell-examine-alist #[0 "\301\302\303!PB\304B\207" [idlwave-shell-max-print-length "Print" "idlwave_print_safe,___," number-to-string (("Help" . "help,___") ("Structure Help" . "help,___,/STRUCTURE") ("Dimensions" . "print,size(___,/DIMENSIONS)") ("Type" . "print,size(___,/TNAME)") ("N_Elements" . "print,n_elements(___)") ("All Size Info" . "help,(__IWsz__=size(___,/STRUCTURE)),/STRUCTURE & print,__IWsz__.DIMENSIONS") ("Ptr Valid" . "print,ptr_valid(___)") ("Arg Present" . "print,arg_present(___)") ("Widget Valid" . "print,widget_info(___,/VALID)") ("Widget Geometry" . "help,widget_info(___,/GEOMETRY)"))] 4] "Alist of special examine commands for popup selection.\nThe keys are used in the selection popup created by\n`idlwave-shell-examine-select', and the corresponding value is sent as\na command to the shell, with special sequence `___' replaced by the\nexpression being examined." (repeat (cons (string :tag "Label ") (string :tag "Command"))) idlwave-shell-separate-examine-output #[0 "\300\207" [t] 1] "Non-nil means, put output of examine commands in their own buffer." idlwave-shell-comint-settings #[0 "\300\207" [((comint-scroll-to-bottom-on-input . t) (comint-scroll-to-bottom-on-output . t) (comint-scroll-show-maximum-output) (comint-prompt-read-only . t))] 1] "Alist of special settings for the comint variables in the IDLWAVE Shell.\nEach entry is a cons cell with the name of a variable and a value.\nThe function `idlwave-shell-mode' will make local variables out of each entry.\nChanges to this variable will only be active when the shell buffer is\nnewly created." (repeat (cons variable sexp)) idlwave-shell-query-for-class #[0 "\300\207" [t] 1] "Non-nil means query the shell for object class on object completions." idlwave-shell-use-input-mode-magic #[0 "\300\207" [nil] 1] "Non-nil means, IDLWAVE should check for input mode spells in output.\nThe spells are strings printed by your IDL program and matched\nby the regular expressions in `idlwave-shell-input-mode-spells'.\nWhen these expressions match, IDLWAVE switches to character input mode and\nback, respectively. See `idlwave-shell-input-mode-spells' for details." idlwave-shell-input-mode-spells #[0 "\300\207" [("^<onechar>$" "^<chars>$" "^</chars>$")] 1] "The three regular expressions which match the magic spells for input modes.\n\nWhen the first regexp matches in the output stream of IDL, IDLWAVE\nprompts for a single character and sends it immediately to IDL, similar\nto the command \\[idlwave-shell-send-char].\n\nWhen the second regexp matches, IDLWAVE switches to a blocking\nsingle-character input mode. This is the same mode which can be entered\nmanually with \\[idlwave-shell-char-mode-loop].\nThis input mode exits when the third regexp matches in the output,\nor when the IDL prompt is encountered.\n\nThe variable `idlwave-shell-use-input-mode-magic' must be non-nil to enable\nscanning for these expressions. If the IDL program produces lots of\noutput, shell operation may be slowed down.\n\nThis mechanism is useful for correct interaction with the IDL function\nGET_KBRD, because in normal operation IDLWAVE only sends \\n terminated\nstrings. Here is some example code which makes use of the default spells.\n\n print,\\='<chars>\\=' ; Make IDLWAVE switch to character mode\n REPEAT BEGIN\n A = GET_KBRD(1)\n PRINT, BYTE(A)\n ENDREP UNTIL A EQ \\='q\\='\n print,\\='</chars>\\=' ; Make IDLWAVE switch back to line mode\n\n print,\\='Quit the program, y or n?\\='\n print,\\='<onechar>\\=' ; Ask IDLWAVE to send one character\n answer = GET_KBRD(1)\n\nSince the IDLWAVE shell defines the system variable `!IDLWAVE_VERSION',\nyou could actually check if you are running under Emacs before printing\nthe magic strings. Here is a procedure which uses this.\n\nUsage:\n======\nidlwave_char_input ; Make IDLWAVE send one character\nidlwave_char_input,/on ; Start the loop to send characters\nidlwave_char_input,/off ; End the loop to send characters\n\n\npro idlwave_char_input,on=on,off=off\n ;; Test if we are running under Emacs\n defsysv,\\='!idlwave_version\\=',exists=running_emacs\n if running_emacs then begin\n if keyword_set(on) then print,\\='<chars>\\=' $\n else if keyword_set(off) then print,\\='</chars>\\=' $\n else print,\\='<onechar>\\='\n endif\nend" (list (regexp :tag "One-char regexp") (regexp :tag "Char-mode regexp") (regexp :tag "Line-mode regexp")) idlwave-shell-breakpoint-popup-menu #[0 "\300\207" [t] 1] "If non-nil, provide a menu on mouse-3 on breakpoint lines, and\npopup help text on the line." idlwave-shell-reset-no-prompt #[0 "\300\207" [nil] 1] "If non-nil, skip the yes/no prompt when resetting the IDL session." idlwave-shell-highlighting-and-faces "Highlighting and faces used by the IDLWAVE Shell mode." idlwave-shell-mark-stop-line #[0 "\300\207" [t] 1] "Non-nil means, mark the source code line where IDL is currently stopped.\nValue decides about the method which is used to mark the line. Valid values\nare:\n\nnil Do not mark the line\n`arrow' Use the overlay arrow\n`face' Use `idlwave-shell-stop-line-face' to highlight the line.\nt Use what IDLWAVE thinks is best. Will be a face where possible,\n otherwise the overlay arrow.\nThe overlay-arrow has the disadvantage to hide the first chars of a line.\nSince many people do not have the main block of IDL programs indented,\na face highlighting may be better." (choice (const :tag "No marking" nil) (const :tag "Use overlay arrow" arrow) (const :tag "Highlight with face" face) (const :tag "Face or arrow." t)) idlwave-shell-overlay-arrow #[0 "\300\207" [#8=">"] 1 #8#] "The overlay arrow to display at source lines where execution halts.\nWe use a single character by default, since the main block of IDL procedures\noften has no indentation. Where possible, IDLWAVE will use overlays to\ndisplay the stop-lines. The arrow is only used on character-based terminals.\nSee also `idlwave-shell-use-overlay-arrow'." idlwave-shell-stop-line-face #[0 "\300\207" [highlight] 1] "The face for `idlwave-shell-stop-line-overlay'.\nAllows you to choose the font, color and other properties for\nline where IDL is stopped. See also `idlwave-shell-mark-stop-line'." symbol idlwave-shell-electric-stop-color #[0 "\300\207" [#9="Violet"] 1 #9#] "The color for the default face or overlay arrow when stopped." idlwave-shell-electric-stop-line-face #[0 "\301\302\303\"\304\303\"\210\3051 \306\303\307\"0\202 \210\207\210\207" [idlwave-shell-electric-stop-color copy-face mode-line idlwave-shell-electric-stop-line set-face-background (error) set-face-foreground nil] 4] "The face for `idlwave-shell-stop-line-overlay' when in electric debug mode.\nAllows you to choose the font, color and other properties for the line\nwhere IDL is stopped, when in Electric Debug Mode." idlwave-shell-mark-breakpoints #[0 "\300\207" [t] 1] "Non-nil means, mark breakpoints in the source files.\nValid values are:\nnil Do not mark breakpoints.\n`face' Highlight line with `idlwave-shell-breakpoint-face'.\n`glyph' Red dot at the beginning of line. If the display does not\n support glyphs, will use `face' instead.\nt Glyph when possible, otherwise face (same effect as `glyph')." (choice (const :tag "No marking" nil) (const :tag "Highlight with face" face) (const :tag "Display glyph (red dot)" glyph) (const :tag "Glyph or face." t)) idlwave-shell-breakpoint-face #[0 "\300\207" [idlwave-shell-bp] 1] "The face for breakpoint lines in the source code.\nAllows you to choose the font, color and other properties for\nlines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'." copy-face underline idlwave-shell-bp custom-declare-face ((((class color)) (:foreground "Black" :background "Pink")) (t (:underline t))) "Face for highlighting lines with breakpoints." idlwave-shell-disabled-breakpoint-face #[0 "\300\207" [idlwave-shell-disabled-bp] 1] "The face for disabled breakpoint lines in the source code.\nAllows you to choose the font, color and other properties for\nlines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'." idlwave-shell-disabled-bp ((((class color)) (:foreground "Black" :background "gray")) (t (:underline t))) idlwave-shell-expression-face #[0 "\300\207" [secondary-selection] 1] "The face for `idlwave-shell-expression-overlay'.\nAllows you to choose the font, color and other properties for\nthe expression printed by IDL." idlwave-shell-output-face #[0 "\300\207" [secondary-selection] 1] "The face for `idlwave-shell-output-overlay'.\nAllows you to choose the font, color and other properties for\nthe expression output by IDL."] 8) #@64 Absolute pathname for temporary IDL file for compiling regions (defvar idlwave-shell-temp-pro-file nil (#$ . 18794)) #@164 Absolute pathname for temporary IDL file save file for routine_info. This is used to speed up the reloading of the routine info procedure before use by the shell. (defvar idlwave-shell-temp-rinfo-save-file nil (#$ . 18918)) #@189 Return a temp file, creating it if necessary. TYPE is either `pro' or `rinfo', and `idlwave-shell-temp-pro-file' or `idlwave-shell-temp-rinfo-save-file' is set (respectively). (fn TYPE) (defalias 'idlwave-shell-temp-file #[257 "\211\303\267\202 \206 \304 !\211\207\n\206 \304 !\211\207\305\306\307!\"\207" [idlwave-shell-temp-rinfo-save-file idlwave-shell-temp-pro-prefix idlwave-shell-temp-pro-file #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (rinfo 6 pro 16)) make-temp-file error "Wrong argument (idlwave-shell-temp-file): %s" symbol-name] 5 (#$ . 19149)]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias idlwave-shell-make-temp-file make-temp-file nil make-obsolete "27.1"] 4) #@83 Command used by `idlwave-shell-resync-dirs' to query IDL for the directory stack. (defvar idlwave-shell-dirstack-query "cd,current=___cur & print,___cur" (#$ . 19904)) #@60 The command which gets !PATH and !DIR info from the shell. (defvar idlwave-shell-path-query "print,'PATH:<'+transpose(expand_path(!PATH,/ARRAY))+'>' & print,'SYSDIR:<'+!dir+'>'" (#$ . 20078)) #@45 Additional info displayed in the mode line. (defvar idlwave-shell-mode-line-info nil (#$ . 20276)) #@68 The default directory in the idlwave-shell buffer, of outside use. (defvar idlwave-shell-default-directory nil (#$ . 20381)) #@69 The last file which was compiled with `idlwave-shell-save-and-...'. (defvar idlwave-shell-last-save-and-action-file nil (#$ . 20512)) (byte-code "\300\301!\204 \3021 \303\304!0\202 \210\202 \210\305\207" [fboundp make-overlay (error) require overlay nil] 2) #@49 The overlay for where IDL is currently stopped. (defvar idlwave-shell-stop-line-overlay nil (#$ . 20780)) (defvar idlwave-shell-is-stopped nil) #@42 The overlay for the examined expression. (defvar idlwave-shell-expression-overlay nil (#$ . 20930)) #@38 The overlay for the last IDL output. (defvar idlwave-shell-output-overlay nil (#$ . 21036)) (byte-code "\306!\203\n \307!\210\306 !\203 \307 !\210\306\n!\203 \307\n!\210\310\211\310\203U \311=\204U \312=\203F \f\203U \313\314\211\"\315\312 #\210\202U \f\203U \313\314\211\"\315\312 #\210\313\314\211\"\315 \312#\210\315 \316\314#\210\313\314\211\"\315\n\312#\210\317 \320\"\210\317\321\"\210\322\320\323\"\210\322\321\323\"\207" [idlwave-shell-stop-line-overlay idlwave-shell-expression-overlay idlwave-shell-output-overlay idlwave-shell-mark-stop-line window-system idlwave-shell-stop-line-face overlayp delete-overlay nil arrow face make-overlay 1 overlay-put priority copy-face idlwave-shell-pending-stop idlwave-shell-pending-electric-stop set-face-background "gray70" idlwave-shell-expression-face idlwave-shell-output-face idlwave-shell-electric-stop-line-face] 5) #@40 Command to obtain list of breakpoints. (defvar idlwave-shell-bp-query "help,/breakpoints" (#$ . 21935)) #@49 String for accumulating current command output. (defvar idlwave-shell-command-output nil (#$ . 22045)) #@198 Lisp list expression or function to run when an IDL command is finished. The current command is finished when the IDL prompt is displayed. This is evaluated if it is a list or called with funcall. (defvar idlwave-shell-post-command-hook nil (#$ . 22155)) #@38 Hook run when the IDL process exits. (defvar idlwave-shell-sentinel-hook nil (#$ . 22416)) #@71 If non-nil the process output is not inserted into the output buffer. (defvar idlwave-shell-hide-output nil (#$ . 22513)) #@131 If non-nil the process output is inserted into the output buffer if it contains an error message, even if hide-output is non-nil. (defvar idlwave-shell-show-if-error nil (#$ . 22642)) #@33 Accumulate last line of output. (defvar idlwave-shell-accumulation nil (#$ . 22832)) (defvar idlwave-shell-command-line-to-execute nil) #@55 List of functions to do cleanup when the shell exits. (defvar idlwave-shell-cleanup-hook nil (#$ . 22974)) #@292 List of commands to be sent to IDL. Each element of the list is list of (CMD PCMD HIDE), where CMD is a string to be sent to IDL and PCMD is a post-command to be placed on `idlwave-shell-post-command-hook'. If HIDE is non-nil, hide the output from command CMD. PCMD and HIDE are optional. (defvar idlwave-shell-pending-commands nil (#$ . 23088)) #@131 Name of buffer associated with IDL process. The name of the buffer is made by surrounding `idlwave-shell-process-name' with `*'s. (defalias 'idlwave-shell-buffer #[0 "\301\301Q\207" [idlwave-shell-process-name "*"] 3 (#$ . 23443)]) #@50 If non-nil can send next command to IDL process. (defvar idlwave-shell-ready nil (#$ . 23682)) #@53 The frame associated with halt/breakpoint messages. (defvar idlwave-shell-halt-frame nil (#$ . 23783)) #@42 The frame associated with step messages. (defvar idlwave-shell-step-frame nil (#$ . 23892)) #@43 The frame associated with trace messages. (defvar idlwave-shell-trace-frame nil (#$ . 23990)) #@146 A list of regular expressions matching IDL messages. These are the messages containing file and line information where IDL is currently stopped. (defconst idlwave-shell-halt-messages '("^% Interrupted at:" "^% Stepped to:" "^% Skipped to:" "^% Stop encountered:") (#$ . 24091)) #@69 The regular expression computed from `idlwave-shell-halt-messages'. (defconst idlwave-shell-halt-messages-re (mapconcat 'identity idlwave-shell-halt-messages "\\|") (#$ . 24375)) #@136 A regular expression matching IDL trace messages. These are the messages containing file and line information of a current traceback. (defconst idlwave-shell-trace-message-re "^% At " (#$ . 24561)) #@161 A list of regular expressions matching stepped execution messages. These are IDL messages containing file and line information where IDL has currently stepped. (defconst idlwave-shell-step-messages '("^% Stepped to:") (#$ . 24767)) #@61 Regular expression matching an IDL breakpoint message line. (defvar idlwave-shell-break-message "^% Breakpoint at:" (#$ . 25005)) (defconst idlwave-shell-electric-debug-help " ==> IDLWAVE Electric Debug Mode Help <==\n\n Break Point Setting and Clearing:\n b Set breakpoint ([C-u b] for conditional, [C-n b] nth hit, etc.).\n d Clear nearby breakpoint.\n a Clear all breakpoints.\n i Set breakpoint in routine named here.\n j Set breakpoint at beginning of containing routine.\n \\ Toggle breakpoint disable\n ] Go to next breakpoint in file.\n [ Go to previous breakpoint in file.\n\n Stepping, Continuing, and the Stack:\n s or SPACE Step, into function calls.\n n Step, over function calls.\n k Skip one statement.\n m Continue to end of function.\n o Continue past end of function.\n u Continue to end of block.\n h Continue to line at cursor position.\n r Continue execution to next breakpoint, if any.\n + or = Show higher level in calling stack.\n - or _ Show lower level in calling stack.\n\n Examining Expressions (with prefix for examining the region):\n p Print expression near point or in region ([C-u p]).\n ? Help on expression near point or in region ([C-u ?]).\n x Examine expression near point or in region ([C-u x]) with\n letter completion of the examine type.\n e Prompt for an expression to print.\n\n Miscellaneous:\n q Quit - end debugging session and return to the Shell's main level.\n v Turn Electric Debugging Mode off (C-c C-d C-v to return).\n t Print a calling-level traceback in the shell.\n z Reset IDL.\n C-? Show this help menu.") (defvar idlwave-shell-only-prompt-pattern nil) (defvar idlwave-shell-mode-hook nil) (byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [idlwave-shell-mode-hook variable-documentation put "Hook run after entering IDL-Shell mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp idlwave-shell-mode-map definition-name idlwave-shell-mode] 4) (defvar idlwave-shell-mode-map (make-sparse-keymap)) (byte-code "\300\301N\204 \302\300\301\303\304!#\210\305\306!\204 \302\306\307\310#\210\311\312 !\210\306\301N\204- \302\306\301\303\313!#\210\302\310\314\315#\207" [idlwave-shell-mode-map variable-documentation put purecopy "Keymap for `idlwave-shell-mode'." boundp idlwave-shell-mode-syntax-table definition-name idlwave-shell-mode (lambda (#1=#:def-tmp-var) (defvar idlwave-shell-mode-syntax-table #1#)) make-syntax-table "Syntax table for `idlwave-shell-mode'." derived-mode-parent comint-mode] 5) #@3233 Major mode for interacting with an inferior IDL process. 1. Shell Interaction ----------------- RET after the end of the process' output sends the text from the end of process to the end of the current line. RET before end of process output copies the current line (except for the prompt) to the end of the buffer. Command history, searching of previous commands, command line editing are available via the comint-mode key bindings, by default mostly on the key `C-c'. Command history is also available with the arrow keys UP and DOWN. 2. Completion ---------- TAB and M-TAB do completion of IDL routines, classes and keywords - similar to M-TAB in `idlwave-mode'. In executive commands and strings, it completes file names. Abbreviations are also expanded like in `idlwave-mode'. 3. Routine Info ------------ `\[idlwave-routine-info]' displays information about an IDL routine near point, just like in `idlwave-mode'. The module used is the one at point or the one whose argument list is being edited. To update IDLWAVE's knowledge about compiled or edited modules, use \[idlwave-update-routine-info]. \[idlwave-find-module] find the source of a module. \[idlwave-resolve] tells IDL to compile an unresolved module. \[idlwave-context-help] shows the online help on the item at point, if online help has been installed. 4. Debugging --------- A complete set of commands for compiling and debugging IDL programs is available from the menu. Also keybindings starting with a `C-c C-d' prefix are available for most commands in the *idl* buffer and also in source buffers. The best place to learn about the keybindings is again the menu. On Emacs versions where this is possible, a debugging toolbar is installed. When IDL is halted in the middle of a procedure, the corresponding line of that procedure file is displayed with an overlay in another window. Breakpoints are also highlighted in the source. \[idlwave-shell-resync-dirs] queries IDL in order to change Emacs current directory to correspond to the IDL process current directory. 5. Expression Examination ---------------------- Expressions near point can be examined with print, \[idlwave-shell-print] or \[idlwave-shell-mouse-print] with the mouse, help, \[idlwave-shell-help-expression] or \[idlwave-shell-mouse-help] with the mouse, or with a configurable set of custom examine commands using \[idlwave-shell-examine-select]. The mouse examine commands can also work by click and drag, to select an expression for examination. 6. Hooks ----- Turning on `idlwave-shell-mode' runs `comint-mode-hook' and `idlwave-shell-mode-hook' (in that order). 7. Documentation and Customization ------------------------------- Info documentation for this package is available. Use \[idlwave-info] to display (complain to your sysadmin if that does not work). For PostScript and HTML versions of the documentation, check IDLWAVE's homepage at URL `http://github.com/jdtsmith/idlwave'. IDLWAVE has customize support - see the group `idlwave'. 8. Keybindings ----------- \{idlwave-shell-mode-map} (defalias 'idlwave-shell-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f!\211\2035 \211\321 =\203; \322\f\323 \"\210\210\324!\210\325\f!\210 @\326 \210\327A!\204Y \330AB\"ACD\307E\331F\306\332!\210\307\306\333!\210\334\307G\331H\335I\331\211JK\331\211LM\336\331!\210\337N\340\341C\342\"\343QOP\203\246 \344\306\345!\346\"\210\307QR`\331\223\210\331\211ST\331U\347 \210\331\211VWXY\331Z\350\351\352\331\353$\210\350\351\354\331\353$\210\350\355\354\"\210\356[\"\210\\\203\377 \\\331\211A\262\242\211\262\203\375 \306@!AL\210\202\346 \266\357\360\361!>\204\350\361\362\363\353$\210\350\361\364\331\353$\210\365\361\366\"\210\306\367!\210\3707\307]\350\371\372\331\307$\210^\203HA;\203H\306\373!\210A;\374A!\203H\375 \210\306\376!\210\331>\377_\331\201b #\210\377\201c \201d `\"\331\201b #\210\377a\201e \201b #\210)\201f \201g !\207" [delay-mode-hooks major-mode mode-name idlwave-shell-mode-map idlwave-shell-mode-syntax-table idlwave-mode-abbrev-table make-local-variable t comint-mode idlwave-shell-mode "IDL-Shell" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table use-local-map set-syntax-table idlwave-setup file-name-absolute-p expand-file-name nil completion-ignore-case comint-completion-addsuffix ("/" . #1="") (#1# mode-line-modified mode-line-buffer-identification " " global-mode-string " %[(" mode-name mode-line-process minor-mode-alist "%n" ")%]-" idlwave-shell-mode-line-info "---" (line-number-mode "L%l--") (column-number-mode "C%c--") (-3 . "%p") "-%-") idlwave-shell-display-line 0 "\\`[ \n]*" substring 1 "[ \n]*\\'" add-to-list idlwave-determine-class-special idlwave-shell-get-object-class idlwave-shell-update-bp-overlays add-hook kill-buffer-hook idlwave-shell-kill-shell-buffer-confirm local idlwave-shell-delete-temp-files kill-emacs-hook easy-menu-add comint-carriage-motion default-value comint-output-filter-functions #[257 "\301\302\"\205# \303\304p!!\212b\210\305\302\306#\205 `\307 |\210\202 )\262\207" [comint-last-output-start string-match " " process-mark get-buffer-process search-forward t line-beginning-position] 6 "\n\n(fn STRING)"] append comint-strip-ctrl-m remove-hook py-pdbtrack-track-stack-file comment-start ";" post-command-hook idlwave-command-hook comint-input-ring-file-name file-regular-p comint-read-input-ring tool-bar-map idlwave-shell-send-command local-abbrev-table idlwave-shell-command-history-file idlwave-config-directory idlwave-shell-prompt-pattern comint-prompt-regexp comint-process-echoes comint-input-autoexpand comint-input-ignoredups idlwave-shell-mode-line-info mode-line-format idlwave-shell-halt-frame idlwave-shell-trace-frame idlwave-shell-command-output idlwave-shell-step-frame idlwave-shell-calling-stack-index idlwave-shell-only-prompt-pattern idlwave-shell-query-for-class idlwave-store-inquired-class comint-last-input-end idlwave-idlwave_routine_info-compiled idlwave-shell-ready idlwave-shell-bp-alist idlwave-shell-post-command-hook idlwave-shell-sources-alist default-directory idlwave-shell-default-directory idlwave-shell-hide-output idlwave-shell-mode-menu idlwave-shell-comint-settings abbrev-mode idlwave-shell-save-command-history idlwave-shell-initial-commands idlwave-mode-version idlwave-shell-path-query hide format "defsysv,'!idlwave_version','%s',1" idlwave-shell-get-path-info run-mode-hooks idlwave-shell-mode-hook] 6 (#$ . 27852) nil]) #@86 Get the path lists, writing to file unless NO-WRITE is set. (fn &optional NO-WRITE) (defalias 'idlwave-shell-get-path-info #[256 "\304 \211@A \305\211\203 \211\230?\211\262\203 \306\301\307\310#\210\311\312\313\314\315\316 !\317\"\320\321%\"\211\232?\211\262\203B \306\300\307\310#\210\203b ?\205e \n\205e \211\204X \205e ?\205e \322 \202e \211\207" [idlwave-path-alist idlwave-system-directory idlwave-auto-write-paths idlwave-library-path idlwave-shell-path-filter nil put from-shell t mapcar make-byte-code 257 "\301\300\"\211\203 AB\202 C\207" vconcat vector [assoc] 4 "\n\n(fn X)" idlwave-write-paths] 16 (#$ . 34663)]) (byte-code "\300\301!\204\n \301\302M\210\300\207" [fboundp idl-shell idlwave-shell] 2) #@44 Frame for displaying the IDL shell window. (defvar idlwave-shell-idl-wframe nil (#$ . 35411)) #@44 Frame for displaying the IDL source files. (defvar idlwave-shell-display-wframe nil (#$ . 35511)) (defvar idlwave-shell-calling-stack-index 0) (defvar idlwave-shell-calling-stack-routine nil) #@49 Return the frame to be used for source display. (defalias 'idlwave-shell-source-frame #[0 "\205C \303 !\203\f \207\304 \n=\203? \305 \30625 \211\2054 \211@\n=\204- \307\306@\"\210\202 \211A\262\202 0\262\206A \310 \202A \304 \211\207" [idlwave-shell-use-dedicated-frame idlwave-shell-display-wframe idlwave-shell-idl-wframe frame-live-p selected-frame visible-frame-list exit throw make-frame] 4 (#$ . 35709)]) #@51 Return the frame to be used for the shell buffer. (defalias 'idlwave-shell-shell-frame #[0 "\205 \304 !\203\f \207\304\n!\204 \305 \306!\211\207" [idlwave-shell-use-dedicated-frame idlwave-shell-idl-wframe idlwave-shell-display-wframe idlwave-shell-frame-parameters frame-live-p selected-frame make-frame] 2 (#$ . 36134)]) #@794 Run an inferior IDL, with I/O through buffer `(idlwave-shell-buffer)'. If buffer exists but shell process is not running, start new IDL. If buffer exists and shell process is running, just switch to the buffer. When called with a prefix ARG, or when `idlwave-shell-use-dedicated-frame' is non-nil, the shell buffer and the source buffers will be in separate frames. The command to run comes from variable `idlwave-shell-explicit-file-name', with options taken from `idlwave-shell-command-line-options'. The buffer is put in `idlwave-shell-mode', providing commands for sending input and controlling the IDL job. See help on `idlwave-shell-mode'. See also the variable `idlwave-shell-prompt-pattern'. (Type \[describe-mode] in the shell buffer for a list of commands.) (fn &optional ARG) (defalias 'idlwave-shell #[256 "\211\306=\203 \307\310\307!\210\311 \210)\203 \312 \313\314\315\316#\210\202\232 \211\203&