Linux ns8.secondary29.go.th 2.6.32-754.28.1.el6.x86_64 #1 SMP Wed Mar 11 18:38:45 UTC 2020 x86_64
Apache/2.2.15 (CentOS)
: 122.154.134.11 | : 122.154.134.9
Cant Read [ /etc/named.conf ]
5.6.40
apache
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
share /
emacs /
23.1 /
lisp /
progmodes /
[ HOME SHELL ]
Name
Size
Permission
Action
ada-mode.elc
107.46
KB
-rw-r--r--
ada-prj.elc
17.96
KB
-rw-r--r--
ada-stmt.elc
36.03
KB
-rw-r--r--
ada-xref.elc
54.99
KB
-rw-r--r--
antlr-mode.elc
77.63
KB
-rw-r--r--
asm-mode.elc
6.08
KB
-rw-r--r--
autoconf.elc
3.37
KB
-rw-r--r--
bug-reference.elc
5.83
KB
-rw-r--r--
cap-words.elc
3.54
KB
-rw-r--r--
cc-align.elc
35.43
KB
-rw-r--r--
cc-awk.elc
20.23
KB
-rw-r--r--
cc-bytecomp.elc
10.45
KB
-rw-r--r--
cc-cmds.elc
92.26
KB
-rw-r--r--
cc-compat.elc
2.97
KB
-rw-r--r--
cc-defs.elc
46.7
KB
-rw-r--r--
cc-engine.elc
143.05
KB
-rw-r--r--
cc-fonts.elc
140.72
KB
-rw-r--r--
cc-langs.elc
70.29
KB
-rw-r--r--
cc-menus.elc
7.32
KB
-rw-r--r--
cc-mode.elc
144.75
KB
-rw-r--r--
cc-styles.elc
16.11
KB
-rw-r--r--
cc-subword.elc
6.99
KB
-rw-r--r--
cc-vars.elc
71.07
KB
-rw-r--r--
cfengine.elc
8.09
KB
-rw-r--r--
cmacexp.elc
6.58
KB
-rw-r--r--
compile.elc
69.45
KB
-rw-r--r--
cperl-mode.elc
215.39
KB
-rw-r--r--
cpp.elc
21.52
KB
-rw-r--r--
cwarn.elc
12.8
KB
-rw-r--r--
dcl-mode.elc
49.31
KB
-rw-r--r--
delphi.elc
50.03
KB
-rw-r--r--
ebnf-abn.elc
7.39
KB
-rw-r--r--
ebnf-bnf.elc
7.99
KB
-rw-r--r--
ebnf-dtd.elc
13.82
KB
-rw-r--r--
ebnf-ebx.elc
8.77
KB
-rw-r--r--
ebnf-iso.elc
8.14
KB
-rw-r--r--
ebnf-otz.elc
8.51
KB
-rw-r--r--
ebnf-yac.elc
7.53
KB
-rw-r--r--
ebnf2ps.elc
121.25
KB
-rw-r--r--
ebrowse.elc
202.93
KB
-rw-r--r--
etags.elc
54.14
KB
-rw-r--r--
executable.elc
7.6
KB
-rw-r--r--
f90.elc
82.59
KB
-rw-r--r--
flymake.elc
61.25
KB
-rw-r--r--
fortran.elc
60.13
KB
-rw-r--r--
gdb-ui.elc
138.61
KB
-rw-r--r--
glasses.elc
10.15
KB
-rw-r--r--
grep.elc
27.75
KB
-rw-r--r--
gud.elc
93.94
KB
-rw-r--r--
hideif.elc
26.67
KB
-rw-r--r--
hideshow.elc
24.54
KB
-rw-r--r--
icon.elc
16.23
KB
-rw-r--r--
idlw-complete-structtag.elc
4.75
KB
-rw-r--r--
idlw-help.elc
35.31
KB
-rw-r--r--
idlw-shell.elc
134.39
KB
-rw-r--r--
idlw-toolbar.elc
28.34
KB
-rw-r--r--
idlwave.elc
254.7
KB
-rw-r--r--
inf-lisp.elc
18.43
KB
-rw-r--r--
ld-script.elc
4.91
KB
-rw-r--r--
m4-mode.elc
4.91
KB
-rw-r--r--
make-mode.elc
58.79
KB
-rw-r--r--
mantemp.elc
3.77
KB
-rw-r--r--
meta-mode.elc
27.42
KB
-rw-r--r--
mixal-mode.elc
35.32
KB
-rw-r--r--
modula2.elc
14.23
KB
-rw-r--r--
octave-inf.elc
11.87
KB
-rw-r--r--
octave-mod.elc
44.6
KB
-rw-r--r--
pascal.elc
40.31
KB
-rw-r--r--
perl-mode.elc
22.42
KB
-rw-r--r--
prolog.elc
12.7
KB
-rw-r--r--
ps-mode.elc
33.38
KB
-rw-r--r--
python.elc
86.23
KB
-rw-r--r--
ruby-mode.elc
34.59
KB
-rw-r--r--
scheme.elc
15.94
KB
-rw-r--r--
sh-script.elc
94.73
KB
-rw-r--r--
simula.elc
44.81
KB
-rw-r--r--
sql.elc
101.34
KB
-rw-r--r--
sym-comp.elc
7.15
KB
-rw-r--r--
tcl.elc
38.58
KB
-rw-r--r--
vera-mode.elc
44.5
KB
-rw-r--r--
verilog-mode.elc
331.76
KB
-rw-r--r--
vhdl-mode.elc
510.47
KB
-rw-r--r--
which-func.elc
9.72
KB
-rw-r--r--
xscheme.elc
37.76
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : idlwave.elc
;ELC ;;; Compiled by mockbuild@c6b8.bsys.dev.centos.org on Thu Feb 19 13:05:09 2015 ;;; from file /builddir/build/BUILD/emacs-23.1/lisp/progmodes/idlwave.el ;;; in Emacs version 23.1.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`idlwave.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303!\204 \304\303\305\"\210\302\306!\204 \304\306\307\"\210\302\310!\204% \304\310\311\"\210\302\312!\2040 \304\312\313\"\210\302\314!\204; \315\316\317\217\210\320\321\315\322\323\324\325\326\325\327\325\330\325\331\332\333\334\335&\210\320\336\315\337\334\321%\207" [require idlw-help fboundp line-beginning-position defalias point-at-bol line-end-position point-at-eol char-valid-p characterp match-string-no-properties match-string cancel-timer nil (byte-code "\300\301!\207" [require timer] 2) ((error)) custom-declare-group idlwave "Major mode for editing IDL .pro files." :tag "IDLWAVE" :link (url-link :tag "Home Page" "http://idlwave.org") (emacs-commentary-link :tag "Commentary in idlw-shell.el" "idlw-shell.el") (emacs-commentary-link :tag "Commentary in idlwave.el" "idlwave.el") (custom-manual "(idlwave)Top") :prefix "idlwave" :group languages idlwave-code-formatting "Indentation and formatting options for IDLWAVE mode."] 18) #@146 *Extra indentation for the main block of code. That is the block between the FUNCTION/PRO statement and the END statement for that program unit. (custom-declare-variable 'idlwave-main-block-indent '2 '(#$ . -1592) :group 'idlwave-code-formatting :type 'integer) #@119 *Extra indentation applied to block lines. If you change this, you probably also want to change `idlwave-end-offset'. (custom-declare-variable 'idlwave-block-indent '3 '(#$ . -1861) :group 'idlwave-code-formatting :type 'integer) #@153 *Extra indentation applied to block END lines. A value equal to negative `idlwave-block-indent' will make END lines line up with the block BEGIN lines. (custom-declare-variable 'idlwave-end-offset '-3 '(#$ . -2098) :group 'idlwave-code-formatting :type 'integer) #@185 *Extra indentation applied to continuation lines. This extra offset applies to the first of a set of continuation lines. The following lines receive the same indentation as the first. (custom-declare-variable 'idlwave-continuation-indent '3 '(#$ . -2368) :group 'idlwave-code-formatting :type 'integer) #@606 *Maximum additional indentation for special continuation indent. Several special indentations are tried to help line up continuation lines in routine calls or definitions, other statements with parentheses, or assignment statements. This variable specifies a maximum amount by which this special indentation can exceed the standard continuation indentation, otherwise defaulting to a fixed offset. Set to 0 to effectively disable all special continuation indentation, or to a large number (like 100) to enable it in all cases. See also `idlwave-indent-to-open-paren', which can override this variable. (custom-declare-variable 'idlwave-max-extra-continuation-indent '40 '(#$ . -2678) :group 'idlwave-code-formatting :type 'integer) #@737 *Non-nil means, indent continuation lines to innermost open parenthesis. This indentation occurs even if otherwise disallowed by `idlwave-max-extra-continuation-indent'. Matching parens and the interleaving args are lined up. Example: x = function_a(function_b(function_c( a, b, [1,2,3, $ 4,5,6 $ ], $ c, d $ ))) When this variable is nil, paren alignment may still occur, based on the value of `max-extra-continuation-indent', which, if zero, would yield: x = function_a(function_b(function_c( a, b, [1,2,3, $ 4,5,6 $ ], $ c, d $ ))) (custom-declare-variable 'idlwave-indent-to-open-paren 't '(#$ . -3420) :group 'idlwave-code-formatting :type 'boolean) #@104 *Non-nil means, indent continuation lines with parens by nesting lines at consecutively deeper levels. (custom-declare-variable 'idlwave-indent-parens-nested 'nil '(#$ . -4283) :group 'idlwave-code-formatting :type 'boolean) #@159 *If set non-nil then comment paragraphs are indented under the hanging indent given by `idlwave-hang-indent-regexp' match in the first line of the paragraph. (custom-declare-variable 'idlwave-hanging-indent 't '(#$ . -4515) :group 'idlwave-code-formatting :type 'boolean) #@190 *Regular expression matching the position of the hanging indent in the first line of a comment paragraph. The size of the indent extends to the end of the match for the regular expression. (custom-declare-variable 'idlwave-hang-indent-regexp '"- " '(#$ . -4794) :group 'idlwave-code-formatting :type 'regexp) #@70 *If non-nil then use last match on line for `idlwave-indent-regexp'. (custom-declare-variable 'idlwave-use-last-hang-indent 'nil '(#$ . -5109) :group 'idlwave-code-formatting :type 'boolean) #@64 *If non-nil then auto fill will only operate on comment lines. (custom-declare-variable 'idlwave-fill-comment-line-only 't '(#$ . -5306) :group 'idlwave-code-formatting :type 'boolean) #@405 *If non-nil then auto fill will split strings with the IDL `+' operator. When the line end falls within a string, string concatenation with the '+' operator will be used to distribute a long string over lines. If nil and a string is split then a terminal beep and warning are issued. This variable is ignored when `idlwave-fill-comment-line-only' is non-nil, since in this case code is not auto-filled. (custom-declare-variable 'idlwave-auto-fill-split-string 't '(#$ . -5498) :group 'idlwave-code-formatting :type 'boolean) #@263 *If non-nil then `idlwave-split-line' will split strings with `+'. When the splitting point of a line falls inside a string, split the string using the `+' string concatenation operator. If nil and a string is split then a terminal beep and warning are issued. (custom-declare-variable 'idlwave-split-line-string 't '(#$ . -6031) :group 'idlwave-code-formatting :type 'boolean) #@177 *The indentation of a comment that starts with this regular expression will not be changed. Note that the indentation of a comment at the beginning of a line is never changed. (custom-declare-variable 'idlwave-no-change-comment '";;;" '(#$ . -6417) :group 'idlwave-code-formatting :type 'string) #@273 *A comment anchored at the beginning of line. A comment matching this regular expression will not have its indentation changed. If nil the default is "^;", i.e., any line beginning with a ";". Expressions for comments at the beginning of the line should begin with "^". (custom-declare-variable 'idlwave-begin-line-comment 'nil '(#$ . -6720) :group 'idlwave-code-formatting :type '(choice (const :tag "Any line beginning with `;'" nil) 'regexp)) #@192 *A comment that starts with this regular expression on a line by itself is indented as if it is a part of IDL code. As a result if the comment is not preceded by whitespace it is unchanged. (custom-declare-variable 'idlwave-code-comment '";;[^;]" '(#$ . -7175) :group 'idlwave-code-formatting :type 'regexp) (custom-declare-group 'idlwave-routine-info nil "Routine Info options for IDLWAVE mode." :group 'idlwave) #@296 *Non-nil means search the IDL path for library catalog files. These files, named .idlwave_catalog, document routine information for individual directories and libraries of IDL .pro files. Many popular libraries come with catalog files by default, so leaving this on is a usually a good idea.. (custom-declare-variable 'idlwave-use-library-catalogs 't '(#$ . -7597) :group 'idlwave-routine-info :type 'boolean) #@874 *Seconds of idle time before routine info is automatically initialized. Initializing the routine info can take a long time, in particular if a large number of library catalogs are involved. When Emacs is idle for more than the number of seconds specified by this variable, it starts the initialization. The process is split into five steps, in order to keep work interruption as short as possible. If one of the steps finishes, and no user input has arrived in the mean time, initialization proceeds immediately to the next step. A good value for this variable is about 1/3 of the time initialization take in your setup. So if you have a fast machine and no problems with a slow network connection, don't hesitate to set this to 2 seconds. A Value of 0 means, don't initialize automatically, but instead wait until routine information is needed, and initialize then. (custom-declare-variable 'idlwave-init-rinfo-when-idle-after '10 '(#$ . -8016) :group 'idlwave-routine-info :type 'number) #@337 *Non-nil means, scan buffers for IDL programs when updating info. The scanning is done by the command `idlwave-update-routine-info'. The following values are allowed: nil Don't scan any buffers. t Scan all idlwave-mode buffers in the current editing session. current Scan only the current buffer, but no other buffers. (custom-declare-variable 'idlwave-scan-all-buffers-for-routine-info 't '(#$ . -9019) :group 'idlwave-routine-info :type '(choice (const :tag "No buffer" nil) (const :tag "All buffers" t) (const :tag "Current buffer only" 'current))) #@242 *Non-nil means query the shell for info about compiled routines. Querying the shell is useful to get information about compiled modules, and it is turned on by default. However, when you have a complete library scan, this is not necessary. (custom-declare-variable 'idlwave-query-shell-for-routine-info 't '(#$ . -9595) :group 'idlwave-routine-info :type 'boolean) #@465 *Controls under what circumstances routine info is updated automatically. Possible values: nil Never t All available (...) A list of circumstances. Allowed members are: find-file Add info for new IDLWAVE buffers. save-buffer Update buffer info when buffer is saved kill-buffer Remove buffer info when buffer gets killed compile-buffer Update shell info after `idlwave-shell-save-and...' (custom-declare-variable 'idlwave-auto-routine-info-updates ''(find-file save-buffer kill-buffer compile-buffer) '(#$ . -9968) :group 'idlwave-routine-info :type '(choice (const :tag "Never" nil) (const :tag "As often as possible" t) (set :tag "Checklist" :greedy t (const :tag "When visiting a file" find-file) (const :tag "When saving a buffer" save-buffer) (const :tag "After a buffer was killed" kill-buffer) (const :tag "After a buffer was compiled successfully, update shell info" compile-buffer)))) #@174 *Maximum number of source files displayed in the Routine Info window. When an integer, it is the maximum number of source files displayed. t means to show all source files. (custom-declare-variable 'idlwave-rinfo-max-source-lines '5 '(#$ . -10945) :group 'idlwave-routine-info :type 'integer) #@692 Library path for Windows and MacOS (OS9). Not needed under UNIX. When selecting the directories to scan for IDL user catalog routine info, IDLWAVE can, under UNIX, query the shell for the exact search path (the value of !PATH). However, under Windows and MacOS (pre-OSX), the IDLWAVE shell does not work. In this case, this variable can be set to specify the paths where IDLWAVE can find PRO files. The shell will only be asked for a list of paths when this variable is nil. The value is a list of directories. A directory preceeded by a `+' will be searched recursively. If you set this variable on a UNIX system, the shell will not be queried. See also `idlwave-system-directory'. (custom-declare-variable 'idlwave-library-path 'nil '(#$ . 11245) :group 'idlwave-routine-info :type '(repeat (directory))) #@465 The IDL system directory for Windows and MacOS. Not needed under UNIX. Set this to the value of the `!DIR' system variable in IDL. IDLWAVE uses this to find out which of the library routines belong to the official system library. All files inside the `lib' subdirectory are considered system library files - so don't install private stuff in this directory. On UNIX systems, IDLWAVE queries the shell for the value of `!DIR'. See also `idlwave-library-path'. (custom-declare-variable 'idlwave-system-directory '"" '(#$ . 12067) :group 'idlwave-routine-info :type 'directory) #@62 *Directory for configuration files and user-library catalog. (custom-declare-variable 'idlwave-config-directory '(convert-standard-filename "~/.idlwave") '(#$ . -12653) :group 'idlwave-routine-info :type 'file) (byte-code "\301B\302\301!\204 \303\301\304\"\210\305B\302\305!\204 \303\305\306\"\210\307B\302\307!\204- \303\307\310\"\210\301\207" [current-load-list idlwave-user-catalog-file default-boundp set-default "idlusercat.el" idlwave-xml-system-rinfo-converted-file "idl_xml_rinfo.el" idlwave-path-file "idlpath.el"] 3) #@37 *Obsolete variable, no longer used. (defvar idlwave-libinfo-file nil (#$ . -13194)) #@524 Alist of regular expressions matching special library directories. When listing routine source locations, IDLWAVE gives a short hint where the file defining the routine is located. By default it lists `SystemLib' for routines in the system library `!DIR/lib' and `Library' for anything else. This variable can define additional types. The car of each entry is a regular expression matching the file name (they normally will match on the path). The cdr is the string to be used as identifier. Max 10 chars are allowed. (custom-declare-variable 'idlwave-special-lib-alist 'nil '(#$ . 13285) :group 'idlwave-routine-info :type '(repeat (cons regexp string))) #@298 Write out path (!PATH) and system directory (!DIR) info automatically. Path info is needed to locate library catalog files. If non-nil, whenever the path-list changes as a result of shell-query, etc., it is written to file. Otherwise, the menu option "Write Paths" can be used to force a write. (custom-declare-variable 'idlwave-auto-write-paths 't '(#$ . 13953) :group 'idlwave-routine-info :type 'boolean) (byte-code "\301\302\303\304\305\306\307\310&\210\311B\312\313!\207" [current-load-list custom-declare-group idlwave-completion nil "Completion options for IDLWAVE mode." :prefix "idlwave" :group idlwave idlwave-tmp (lambda (#1=#:defconst-tmp-var) (defconst idlwave-tmp #1#)) (choice :tag "by applying the function" (const upcase) (const downcase) (const capitalize) (const preserve) (symbol :tag "Other"))] 8) #@1571 Association list setting the case of completed words. This variable determines the case (UPPER/lower/Capitalized...) of words inserted into the buffer by completion. The preferred case can be specified separately for routine names, keywords, classes and methods. This alist should therefore have entries for `routine' (normal functions and procedures, i.e. non-methods), `keyword', `class', and `method'. Plausible values are upcase upcase whole word, like `BOX_CURSOR' downcase downcase whole word, like `read_ppm' capitalize capitalize each part, like `Widget_Control' preserve preserve case as is, like `IDLgrView' The value can also be any Emacs Lisp function which transforms the case of characters in a string. A value of `preserve' means that the case of the completed word is identical to the way it was written in the definition statement of the routine. This was implemented to allow for mixed-case completion, in particular of object classes and methods. If a completable word is defined in multiple locations, the meaning of `preserve' is not unique since the different definitions might be cased differently. Therefore IDLWAVE always takes the case of the *first* definition it encounters during routine info collection and uses the case derived from it consistently. Note that a lowercase-only string in the buffer will always be completed in lower case (but see the variable `idlwave-completion-force-default-case'). After changing this variable, you need to either restart Emacs or press `C-u C-c C-i' to update the internal lists. (custom-declare-variable 'idlwave-completion-case ''((routine . upcase) (keyword . upcase) (class . preserve) (method . preserve)) '(#$ . 14785) :group 'idlwave-completion :type (byte-code "\301\302\303ED\207" [idlwave-tmp repeat cons (symbol :tag "Derive completion case for")] 4)) #@287 *Non-nil means, completion will always honor `idlwave-completion-case'. When nil, only the completion of a mixed case or upper case string will honor the default settings in `idlwave-completion-case', while the completion of lower case strings will be completed entirely in lower case. (custom-declare-variable 'idlwave-completion-force-default-case 'nil '(#$ . -16646) :group 'idlwave-completion :type 'boolean) #@319 *Non-nil means, the empty string is considered downcase for completion. The case of what is already in the buffer determines the case of completions. When this variable is non-nil, the empty string is considered to be downcase. Completing on the empty string then offers downcase versions of the possible completions. (custom-declare-variable 'idlwave-complete-empty-string-as-lower-case 'nil '(#$ . -17066) :group 'idlwave-completion :type 'boolean) #@102 Obsolete variable. See `idlwave-complete-empty-string-as-lower-case' and `idlwave-completion-case'. (defvar idlwave-default-completion-case-is-down nil (#$ . 17524)) #@313 *Non-nil means, the case of tokens in buffers dominates over system stuff. To make this possible, we need to re-case everything each time we update the routine info from the buffers. This is slow. The default is to consider the case given in the system and library files first which makes updating much faster. (custom-declare-variable 'idlwave-buffer-case-takes-precedence 'nil '(#$ . -17698) :group 'idlwave-completion :type 'boolean) #@187 *Non-nil means, highlight completions for which system help is available. Help can then be accessed with mouse-3. This option is only effective when the online help system is installed. (custom-declare-variable 'idlwave-highlight-help-links-in-completion 't '(#$ . -18143) :group 'idlwave-completion :type 'boolean) #@169 Non-nil means, treat inheritance with completion, online help etc. When nil, IDLWAVE only knows about the native methods and tags of a class, not about inherited ones. (custom-declare-variable 'idlwave-support-inheritance 't '(#$ . 18466) :group 'idlwave-routine-info :type 'boolean) #@386 List of regular expressions for class-driven keyword inheritance. Keyword inheritance is often tied to class inheritance by "chaining" up the class tree. While it cannot be assumed that the presence of an _EXTRA or _REF_EXTRA symbol guarantees such chaining will occur, for certain methods this assumption is almost always true. The methods for which to assume this can be set here. (custom-declare-variable 'idlwave-keyword-class-inheritance ''("^[gs]etproperty$" "^init$") '(#$ . 18757) :group 'idlwave-routine-info :type '(repeat (regexp :tag "Match method:"))) #@673 *Number of classes to show when completing object methods and keywords. When completing methods or keywords for an object with unknown class, the *Completions* buffer will show the valid classes for each completion like this: MyMethod <Class1,Class2,Class3> The value of this variable may be nil to inhibit display, or an integer to indicate the maximum number of classes to display. On XEmacs, a full list of classes will also be placed into a `help-echo' property on the competion items, so that the list of classes for the current item is displayed in the echo area. If the value of this variable is a negative integer, the `help-echo' property will be suppressed. (custom-declare-variable 'idlwave-completion-show-classes '1 '(#$ . -19331) :group 'idlwave-completion :type '(choice (const :tag "Don't show" nil) (integer :tag "Number of classes shown" 1))) #@191 *Non-nil means, fontify the classes in completions buffer. This makes it easier to distinguish the completion items from the extra class info listed. See `idlwave-completion-show-classes'. (custom-declare-variable 'idlwave-completion-fontify-classes 't '(#$ . -20203) :group 'idlwave-completion :type 'boolean) #@2145 Association list governing specification of object classes for completion. When IDLWAVE tries to complete object-oriented methods, it usually cannot determine the class of a given object from context. In order to provide the user with a correct list of methods or keywords, it needs to determine the appropriate class. IDLWAVE has two ways of doing this (well, three ways if you count the shell... see `idlwave-shell-query-for-class'): 1. Combine the items of all available classes which contain this method for the purpose of completion. So when completing a method, all methods of all known classes are available, and when completing a keyword, all keywords allowed for this method in any class are shown. This behavior is very much like normal completion and is therefore the default. It works much better than one might think - only for the INIT, GETPROPERTY and SETPROPERTY the keyword lists become uncomfortably long. See also `idlwave-completion-show-classes'. 2. The second possibility is to ask the user on each occasion. To make this less interruptive, IDLWAVE can store the class as a text property on the object operator `->'. For a given object in the source code, class selection will then be needed only once - for example to complete the method. Keywords to the method can then be completed directly, because the class is already known. You will have to turn on the storage of the selected class explicitly with the variable `idlwave-store-inquired-class'. This variable allows you to configure IDLWAVE's method and method-keyword completion behavior. Its value is an alist, which should contain at least two elements: (method-default . VALUE) and (keyword-default . VALUE), where VALUE is either t or nil. These specify if the class should be found during method and keyword completion, respectively. The alist may have additional entries specifying exceptions from the keyword completion rule for specific methods, like INIT or GETPROPERTY. In order to turn on class specification for the INIT method, add an entry ("INIT" . t). The method name must be ALL-CAPS. (custom-declare-variable 'idlwave-query-class ''((method-default) (keyword-default)) '(#$ . 20523) :group 'idlwave-completion :type '(list (cons (const method-default) (boolean :tag "Determine class when completing METHODS ")) (cons (const keyword-default) (boolean :tag "Determine class when completing KEYWORDS ")) (repeat :tag "Exceptions to defaults" :inline t (cons (string :tag "MODULE" :value "") (boolean :tag "Determine class for this method"))))) #@1048 *Non-nil means, store class of a method call as text property on `->'. IDLWAVE sometimes has to ask the user for the class associated with a particular object method call. This happens during the commands `idlwave-routine-info' and `idlwave-complete', depending upon the value of the variable `idlwave-query-class'. When you specify a class, this information can be stored as a text property on the `->' arrow in the source code, so that during the same editing session, IDLWAVE will not have to ask again. When this variable is non-nil, IDLWAVE will store and reuse the class information. The class stored can be checked and removed with `\[idlwave-routine-info]' on the arrow. The default of this variable is nil, since the result of commands then is more predictable. However, if you know what you are doing, it can be nice to turn this on. An arrow which knows the class will be highlighted with `idlwave-class-arrow-face'. The command \[idlwave-routine-info] displays (with prefix arg: deletes) the class stored on the arrow at point. (custom-declare-variable 'idlwave-store-inquired-class 't '(#$ . -23137) :group 'idlwave-completion :type 'boolean) #@288 *Face to highlight object operator arrows `->' which carry a class property. When IDLWAVE stores a class name as text property on an object arrow (see variable `idlwave-store-inquired-class', it highlights the arrow with this font in order to remind the user that this arrow is special. (custom-declare-variable 'idlwave-class-arrow-face ''bold '(#$ . -24307) :group 'idlwave-completion :type 'symbol) #@75 *Non-nil means, resize the Routine-info *Help* window to fit the content. (custom-declare-variable 'idlwave-resize-routine-help-window 't '(#$ . -24715) :group 'idlwave-completion :type 'boolean) #@77 *Non-nil means, completion automatically adds `=' after completed keywords. (custom-declare-variable 'idlwave-keyword-completion-adds-equal 't '(#$ . -24917) :group 'idlwave-completion :type 'boolean) #@200 *Non-nil means, completion automatically adds `(' after completed function. nil means, don't add anything. A value of `2' means, also add the closing parenthesis and position cursor between the two. (custom-declare-variable 'idlwave-function-completion-adds-paren 't '(#$ . -25125) :group 'idlwave-completion :type '(choice (const :tag "Nothing" nil) (const :tag "(" t) (const :tag "()" 2))) #@279 *Non-nil means, try to restore the window configuration after completion. When completion is not unique, Emacs displays a list of completions. This messes up your window configuration. With this variable set, IDLWAVE restores the old configuration after successful completion. (custom-declare-variable 'idlwave-completion-restore-window-configuration 't '(#$ . -25524) :group 'idlwave-completion :type 'boolean) (custom-declare-group 'idlwave-abbrev-and-indent-action nil "IDLWAVE performs actions when expanding abbreviations or indenting lines.\nThe variables in this group govern this." :group 'idlwave) #@128 *Non-nil means performs actions when indenting. The actions that can be performed are listed in `idlwave-indent-action-table'. (custom-declare-variable 'idlwave-do-actions 'nil '(#$ . -26139) :group 'idlwave-abbrev-and-indent-action :type 'boolean) #@394 *A single character string used to start abbreviations in abbrev mode. Possible characters to chose from: ~`% or even '?'. '.' is not a good choice because it can make structure field names act like abbrevs in certain circumstances. Changes to this in `idlwave-mode-hook' will have no effect. Instead a user must set it directly using `setq' in the .emacs file before idlwave.el is loaded. (custom-declare-variable 'idlwave-abbrev-start-char '"\\" '(#$ . -26395) :group 'idlwave-abbrev-and-indent-action :type 'string) #@477 *Non-nil means, enable `idlwave-surround'. If non-nil, `=',`<',`>',`&',`,', `->' are surrounded with spaces by `idlwave-surround'. See help for `idlwave-indent-action-table' for symbols using `idlwave-surround'. Also see the default key bindings for keys using `idlwave-surround'. Keys are bound and made into actions calling `idlwave-surround' with `idlwave-action-and-binding'. See help for `idlwave-action-and-binding' for examples. Also see help for `idlwave-surround'. (custom-declare-variable 'idlwave-surround-by-blank 'nil '(#$ . -26924) :group 'idlwave-abbrev-and-indent-action :type 'boolean) #@307 *Non-nil means pad '=' in keywords (routine calls or defs) like assignment. Whenever `idlwave-surround' is non-nil then this affects how '=' is padded for keywords and for variables. If t, pad the same as for assignments. If nil then spaces are removed. With any other value, spaces are left unchanged. (custom-declare-variable 'idlwave-pad-keyword 't '(#$ . -27536) :group 'idlwave-abbrev-and-indent-action :type '(choice (const :tag "Pad like assignments" t) (const :tag "Remove space near `='" nil) (const :tag "Keep space near `='" 'keep))) #@74 *Non-nil means point blinks to block beginning for `idlwave-show-begin'. (custom-declare-variable 'idlwave-show-block 't '(#$ . -28090) :group 'idlwave-abbrev-and-indent-action :type 'boolean) #@66 *Non-nil means expand generic END to ENDIF/ENDELSE/ENDWHILE etc. (custom-declare-variable 'idlwave-expand-generic-end 'nil '(#$ . -28289) :group 'idlwave-abbrev-and-indent-action :type 'boolean) #@52 *Non-nil means re-indent line after END was typed. (custom-declare-variable 'idlwave-reindent-end 't '(#$ . -28490) :group 'idlwave-abbrev-and-indent-action :type 'boolean) #@311 *Non-nil means the abbrev hook can move point. Set to nil by `idlwave-expand-region-abbrevs'. To see the abbrev definitions, use the command `list-abbrevs', for abbrevs that move point. Moving point is useful, for example, to place point between parentheses of expanded functions. See `idlwave-check-abbrev'. (custom-declare-variable 'idlwave-abbrev-move 't '(#$ . -28670) :group 'idlwave-abbrev-and-indent-action :type 'boolean) #@347 *Non-nil means all abbrevs will be forced to either upper or lower case. If the value t, all expanded abbrevs will be upper case. If the value is 'down then abbrevs will be forced to lower case. If nil, the case will not change. If `idlwave-reserved-word-upcase' is non-nil, reserved words will always be upper case, regardless of this variable. (custom-declare-variable 'idlwave-abbrev-change-case 'nil '(#$ . -29108) :group 'idlwave-abbrev-and-indent-action :type 'boolean) #@190 *Non-nil means, reserved words will be made upper case via abbrev expansion. If nil case of reserved words is controlled by `idlwave-abbrev-change-case'. Has effect only if in abbrev-mode. (custom-declare-variable 'idlwave-reserved-word-upcase 'nil '(#$ . -29591) :group 'idlwave-abbrev-and-indent-action :type 'boolean) #@380 *Associated array containing action lists of search string (car), and function as a cdr. This table is used by `idlwave-indent-line'. See documentation for `idlwave-do-action' for a complete description of the action lists. Additions to the table are made with `idlwave-action-and-binding' when a binding is not requested. See help on `idlwave-action-and-binding' for examples. (defvar idlwave-indent-action-table nil (#$ . -29919)) #@394 *Associated array containing action lists of search string (car), and function as a cdr. The table is used by the `idlwave-indent-and-action' function. See documentation for `idlwave-do-action' for a complete description of the action lists. Additions to the table are made with `idlwave-action-and-binding' when a binding is requested. See help on `idlwave-action-and-binding' for examples. (defvar idlwave-indent-expand-table nil (#$ . -30360)) (custom-declare-group 'idlwave-documentation nil "Options for documenting IDLWAVE files." :group 'idlwave) #@328 *A list (PATHNAME STRING) specifying the doc-header template to use for summarizing a file. If PATHNAME is non-nil then this file will be included. Otherwise STRING is used. If nil, the file summary will be omitted. For example you might set PATHNAME to the path for the lib_template.pro file included in the IDL distribution. (defvar idlwave-file-header (list nil ";+\n; NAME:\n;\n;\n;\n; PURPOSE:\n;\n;\n;\n; CATEGORY:\n;\n;\n;\n; CALLING SEQUENCE:\n;\n;\n;\n; INPUTS:\n;\n;\n;\n; OPTIONAL INPUTS:\n;\n;\n;\n; KEYWORD PARAMETERS:\n;\n;\n;\n; OUTPUTS:\n;\n;\n;\n; OPTIONAL OUTPUTS:\n;\n;\n;\n; COMMON BLOCKS:\n;\n;\n;\n; SIDE EFFECTS:\n;\n;\n;\n; RESTRICTIONS:\n;\n;\n;\n; PROCEDURE:\n;\n;\n;\n; EXAMPLE:\n;\n;\n;\n; MODIFICATION HISTORY:\n;\n;-\n") (#$ . -30922)) #@221 *Non-nil means, the documentation header will always be at start of file. When nil, the header is positioned between the PRO/FUNCTION line of the current routine and the code, allowing several routine headers in a file. (custom-declare-variable 'idlwave-header-to-beginning-of-file 't '(#$ . -31695) :group 'idlwave-documentation :type 'boolean) #@64 *The hook function used to update the timestamp of a function. (custom-declare-variable 'idlwave-timestamp-hook ''idlwave-default-insert-timestamp '(#$ . -32047) :group 'idlwave-documentation :type 'function) #@209 *The modifications keyword to use with the log documentation commands. A ':' is added to the keyword end. Inserted by doc-header and used to position logs by doc-modification. If nil it will not be inserted. (custom-declare-variable 'idlwave-doc-modifications-keyword '"HISTORY" '(#$ . -32263) :group 'idlwave-documentation :type 'string) #@58 *Regexp matching the start of a document library header. (custom-declare-variable 'idlwave-doclib-start '"^;+\\+" '(#$ . -32608) :group 'idlwave-documentation :type 'regexp) #@56 *Regexp matching the end of a document library header. (custom-declare-variable 'idlwave-doclib-end '"^;+-" '(#$ . -32788) :group 'idlwave-documentation :type 'regexp) (custom-declare-group 'idlwave-external-programs nil "Path locations of external commands used by IDLWAVE." :group 'idlwave) #@374 *If non-nil, this is the command to run IDL. Should be an absolute file path or path relative to the current environment execution search path. If you want to specify command line switches for the idl program, use `idlwave-shell-command-line-options'. I know the name of this variable is badly chosen, but I cannot change it without compromizing backwards-compatibility. (custom-declare-variable 'idlwave-shell-explicit-file-name '"idl" '(#$ . -33088) :group 'idlwave-external-programs :type 'string) #@373 *A list of command line options for calling the IDL program. Since IDL is executed directly without going through a shell like /bin/sh, this should be a list of strings like '("-rt=file" "-nw") with a separate string for each argument. But you may also give a single string which contains the options whitespace-separated. Emacs will be kind enough to split it for you. (custom-declare-variable 'idlwave-shell-command-line-options 'nil '(#$ . -33598) :type '(choice string (repeat (string :value ""))) :group 'idlwave-external-programs) #@124 *The external application providing reference help for programming. Obsolete, if the IDL Assistant is being used for help. (custom-declare-variable 'idlwave-help-application '"idlhelp" '(#$ . -34144) :group 'idlwave-external-programs :type 'string) #@470 List of modifiers to be used for the debugging commands. Will be used to bind debugging commands in the shell buffer and in all source buffers. These are additional convenience bindings, the debugging commands are always available with the `C-c C-d' prefix. If you set this to '(control shift), this means setting a breakpoint will be on `C-S-b', compiling a source file on `C-S-c' etc. Possible modifiers are `control', `meta', `super', `hyper', `alt', and `shift'. (custom-declare-variable 'idlwave-shell-debug-modifiers ''nil '(#$ . 34400) :group 'idlwave-shell-general-setup :type '(set :tag "Specify modifiers" (const control) (const meta) (const super) (const hyper) (const alt) (const shift))) #@143 *If non-nil attempt invoke idlwave-shell if not already running. This is checked when an attempt to send a command to an IDL process is made. (custom-declare-variable 'idlwave-shell-automatic-start 'nil '(#$ . -35110) :group 'idlwave-shell-general-setup :type 'boolean) (custom-declare-group 'idlwave-misc nil "Miscellaneous options for IDLWAVE mode." :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces) :group 'idlwave) #@74 *Non-nil displays a startup message when `idlwave-mode' is first called. (custom-declare-variable 'idlwave-startup-message 't '(#$ . -35557) :group 'idlwave-misc :type 'boolean) #@795 Items which should be fontified on the default fontification level 2. IDLWAVE defines 3 levels of fontification. Level 1 is very little, level 3 is everything and level 2 is specified by this list. This variable must be set before IDLWAVE gets loaded. It is a list of symbols, the following symbols are allowed. pros-and-functions Procedure and Function definitions batch-files Batch Files idlwave-idl-keywords IDL Keywords label Statement Labels goto Goto Statements common-blocks Common Blocks keyword-parameters Keyword Parameters in routine definitions and calls system-variables System Variables fixme FIXME: Warning in comments (on XEmacs only v. 21.0 and up) class-arrows Object Arrows with class property (custom-declare-variable 'idlwave-default-font-lock-items ''(pros-and-functions batch-files idlwave-idl-keywords label goto common-blocks class-arrows) '(#$ . 35742) :group 'idlwave-misc :type '(set :inline t :greedy t (const :tag "Procedure and Function definitions" pros-and-functions) (const :tag "Batch Files" batch-files) (const :tag "IDL Keywords (reserved words)" idlwave-idl-keywords) (const :tag "Statement Labels" label) (const :tag "Goto Statements" goto) (const :tag "Tags in Structure Definition" structtag) (const :tag "Structure Name" structname) (const :tag "Common Blocks" common-blocks) (const :tag "Keyword Parameters" keyword-parameters) (const :tag "System Variables" system-variables) (const :tag "FIXME: Warning" fixme) (const :tag "Object Arrows with class property " class-arrows))) #@66 Normal hook. Executed when a buffer is put into `idlwave-mode'. (custom-declare-variable 'idlwave-mode-hook 'nil '(#$ . 37350) :group 'idlwave-misc :type 'hook) #@51 Normal hook. Executed when idlwave.el is loaded. (custom-declare-variable 'idlwave-load-hook 'nil '(#$ . 37518) :group 'idlwave-misc :type 'hook) #@202 Non-nil means turn on a few experimental features. This variable is only for the maintainer, to test difficult stuff, while still distributing stable releases. As a user, you should not set this to t. (defvar idlwave-experimental nil (#$ . 37672)) (byte-code "\306B\307\306!\204 \310\306\311\"\210\312\313\314\315\316\317$\320%\321&\322'\323(\324)\325*\326+\327B\330\327\331\332#\210\333 D!\210\334B\330\334\331\335#\210\336\337\340,\"!\210\341B\330\341\331\342#\210\343 $%&\n'(+\257!\210. \306\207" [current-load-list pros-and-functions common-blocks batch-files fixme label idlwave-idl-keywords default-boundp set-default "\\<\\(&&\\|and\\|b\\(egin\\|reak\\)\\|c\\(ase\\|o\\(mpile_opt\\|ntinue\\)\\)\\|do\\|e\\(lse\\|nd\\(case\\|else\\|for\\|if\\|rep\\|switch\\|while\\)?\\|q\\)\\|for\\(ward_function\\)?\\|g\\(oto\\|[et]\\)\\|i\\(f\\|nherits\\)\\|l[et]\\|mod\\|n\\(e\\|ot\\)\\|o\\(n_\\(error\\|ioerror\\)\\|[fr]\\)\\|re\\(peat\\|turn\\)\\|switch\\|then\\|until\\|while\\|xor\\|||\\)\\>" ("\\<\\(function\\|pro\\)\\>[ ]+\\(\\sw+\\(::\\sw+\\)?\\)" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) ("\\<\\(common\\)\\>[ ]*\\(\\sw+\\)?[ ]*,?" (1 font-lock-keyword-face) (2 font-lock-reference-face nil t) ("[ ]*\\(\\sw+\\)[ ,]*" (goto-char (match-end 0)) nil (1 font-lock-variable-name-face))) ("^[ ]*\\(@[^ \n]+\\)" (1 font-lock-string-face)) ("\\<FIXME:" (0 font-lock-warning-face t)) ("^[ ]*\\([a-zA-Z]\\sw*:\\)" (1 font-lock-reference-face)) ("\\(goto\\)[ ]*,[ ]*\\([a-zA-Z]\\sw*\\)" (1 font-lock-keyword-face) (2 font-lock-reference-face)) ("\\<\\([a-zA-Z][a-zA-Z0-9_]*:\\)[^:]" (1 font-lock-reference-face)) ("\\({\\|\\<inherits\\s-\\)\\s-*\\([a-zA-Z][a-zA-Z0-9_]*\\)[}, \n]" (2 font-lock-function-name-face)) ("\\(,\\|[a-zA-Z0-9_](\\)[ ]*\\(\\$[ ]*\\(;.*\\)?\n\\([ ]*\\(;.*\\)?\n\\)*[ ]*\\)?\\(/[a-zA-Z_]\\sw*\\|[a-zA-Z_]\\sw*[ ]*=\\)" (6 font-lock-reference-face)) ("\\(![a-zA-Z_0-9]+\\(\\.\\sw+\\)?\\)" (1 font-lock-variable-name-face)) ("[<>#]" (0 font-lock-keyword-face)) ("[-*^#+<>/]" (0 font-lock-keyword-face)) (idlwave-match-class-arrows (0 idlwave-class-arrow-face)) idlwave-font-lock-keywords-1 put variable-documentation "Subdued level highlighting for IDLWAVE mode." (lambda (#1=#:defconst-tmp-var) (defconst idlwave-font-lock-keywords-1 #1#)) idlwave-font-lock-keywords-2 "Medium level highlighting for IDLWAVE mode." (lambda (#2=#:defconst-tmp-var) (defconst idlwave-font-lock-keywords-2 #2#)) mapcar symbol-value idlwave-font-lock-keywords-3 "Gaudy level highlighting for IDLWAVE mode." (lambda (#3=#:defconst-tmp-var) (defconst idlwave-font-lock-keywords-3 #3#)) goto structtag structname keyword-parameters system-variables special-operators all-operators class-arrows idlwave-default-font-lock-items] 12) (defalias 'idlwave-match-class-arrows #[(limit) "\205 \302\303 \301#\205 \304\305\224\306\"\207" [idlwave-store-inquired-class limit re-search-forward "->" get-text-property 0 idlwave-class] 4]) #@51 Default expressions to highlight in IDLWAVE mode. (defvar idlwave-font-lock-keywords idlwave-font-lock-keywords-2 (#$ . 40673)) (byte-code "\301B\302\301!\204 \303\301\304\"\210\305\306\307 #\207" [current-load-list idlwave-font-lock-defaults default-boundp set-default ((idlwave-font-lock-keywords idlwave-font-lock-keywords-1 idlwave-font-lock-keywords-2 idlwave-font-lock-keywords-3) nil t ((36 . "w") (95 . "w") (46 . "w") (124 . "w") (38 . "w")) beginning-of-line) put idlwave-mode font-lock-defaults] 4) #@149 Regexp to match the start of a full-line comment. That is the _beginning_ of a line containing a comment delimiter `;' preceded only by whitespace. (defconst idlwave-comment-line-start-skip "^[ ]*;" (#$ . 41193)) #@118 Regular expression to find the beginning of a block. The case does not matter. The search skips matches in comments. (defconst idlwave-begin-block-reg "\\<\\(pro\\|function\\|begin\\|case\\|switch\\)\\>" (#$ . 41414)) #@79 Regular expression to find the beginning of a unit. The case does not matter. (defconst idlwave-begin-unit-reg "^\\s-*\\(pro\\|function\\)\\>\\|\\`" (#$ . 41638)) #@194 Regular expression to find the line that indicates the end of unit. This line is the end of buffer or the start of another unit. The case does not matter. The search skips matches in comments. (defconst idlwave-end-unit-reg "^\\s-*\\(pro\\|function\\)\\>\\|\\'" (#$ . 41808)) #@47 Regular expression to match a continued line. (defconst idlwave-continue-line-reg "\\<\\$" (#$ . 42090)) #@118 Regular expression to find the end of a block. The case does not matter. The search skips matches found in comments. (defconst idlwave-end-block-reg "\\<end\\(\\|case\\|switch\\|else\\|for\\|if\\|rep\\|while\\)\\>" (#$ . 42202)) #@373 Matches between statements and the corresponding END variant. The cars are the reserved words starting a block. If the block really begins with BEGIN, the cars are the reserved words before the begin which can be used to identify the block type. This is used to check for the correct END type, to close blocks and to expand generic end statements to their detailed form. (defconst idlwave-block-matches '(("pro" . "end") ("function" . "end") ("case" . "endcase") ("else" . "endelse") ("for" . "endfor") ("then" . "endif") ("repeat" . "endrep") ("switch" . "endswitch") ("while" . "endwhile")) (#$ . 42438)) #@167 Regular expression matching reserved words which can stand before blocks starting with a BEGIN statement. The matches must have associations `idlwave-block-matches' (defconst idlwave-block-match-regexp "\\<\\(else\\|for\\|then\\|repeat\\|while\\)\\>" (#$ . 43053)) #@48 Regular expression matching an IDL identifier. (defconst idlwave-identifier "[a-zA-Z_][a-zA-Z0-9$_]*" (#$ . 43325)) #@51 Regular expression matching IDL system variables. (defconst idlwave-sysvar (concat "!" idlwave-identifier) (#$ . 43447)) #@49 Regular expression matching IDL variable names. (defconst idlwave-variable (concat idlwave-identifier "\\|" idlwave-sysvar) (#$ . 43574)) #@41 Regular expression matching IDL labels. (defconst idlwave-label (concat idlwave-identifier ":") (#$ . 43718)) (byte-code "\302B\303 \304\305 \306\260!\207" [current-load-list idlwave-identifier idlwave-method-call (lambda (#1=#:defconst-tmp-var) (defconst idlwave-method-call #1#)) "\\s *->" "\\(\\s *" "::\\)?"] 6) #@800 Associated list of statement matching regular expressions. Each regular expression matches the start of an IDL statement. The first element of each association is a symbol giving the statement type. The associated value is a list. The first element of this list is a regular expression matching the start of an IDL statement for identifying the statement type. The second element of this list is a regular expression for finding a substatement for the type. The substatement starts after the end of the found match modulo whitespace. If it is nil then the statement has no substatement. The list order matters since matching an assignment statement exactly is not possible without parsing. Thus assignment statement become just the leftover unidentified statements containing an equal sign. (defconst idlwave-statement-match (byte-code "\304\305\306DB\307\310\311\312\313\314\315\316\317\320\321 \322\321\n\323\324\260\306DB\320\321\n\323\325\260\306DB\326\321 \327Q\306DB\257\207" [idlwave-end-block-reg idlwave-variable idlwave-method-call idlwave-identifier (endelse "end\\(\\|if\\)\\s +else" "end\\(\\|if\\)\\s +else") end nil (if "if\\>" "then") (for "for\\>" "do") (begin "begin\\>" nil) (pdef "pro\\>\\|function\\>" nil) (while "while\\>" "do") (repeat "repeat\\>" "repeat") (goto "goto\\>" nil) (case "case\\>" nil) (switch "switch\\>" nil) call "\\(" "\\) *= *" "\\s *\\)?" "\\s *(" "\\( *\\($\\|\\$\\)\\|\\s *,\\)" assign "\\) *="] 20) (#$ . 44044)) #@30 IDL mode auto fill function. (defvar idlwave-fill-function 'auto-fill-function (#$ . 45524)) #@35 IDL mode comment indent function. (defvar idlwave-comment-indent-function 'comment-indent-function (#$ . 45623)) #@73 Character to be inserted for IDL comment indentation. Normally a space. (defvar idlwave-comment-indent-char -1 (#$ . 45742)) #@137 Character which is inserted as a last character on previous line by \[idlwave-split-line] to begin a continuation line. Normally $. (defconst idlwave-continuation-char 36 (#$ . 45874)) (byte-code "\301B\302\303!\207" [current-load-list idlwave-mode-version (lambda (#1=#:defconst-tmp-var) (defconst idlwave-mode-version #1#)) "6.1_em22"] 2) #@79 Creates a function for abbrev hooks to call `idlwave-check-abbrev' with args. (defalias 'idlwave-keyword-abbrev '(macro . #[(&rest args) "\301\302\303\304\305\"ED\207" [args quote lambda nil append (idlwave-check-abbrev)] 6 (#$ . 46227)])) #@193 Creates a function for abbrev hooks that ensures abbrevs are not quoted. Specifically, if the abbrev is in a comment or string it is unexpanded. Otherwise ARGS forms a list that is evaluated. (defalias 'idlwave-code-abbrev '(macro . #[(&rest args) "\301\302\303\304!\305\306\307\310!FFD\207" [args quote lambda nil prin1-to-string if (idlwave-quoted) (progn (unexpand-abbrev) nil) append] 9 (#$ . 46475)])) #@26 Keymap used in IDL mode. (defvar idlwave-mode-map (make-sparse-keymap) (#$ . 46890)) #@48 Syntax table in use in `idlwave-mode' buffers. (defvar idlwave-mode-syntax-table (make-syntax-table) (#$ . 46981)) (byte-code "\301\302\303#\210\301\304\303#\210\301\305\303#\210\301\306\303#\210\301\307\303#\210\301\310\303#\210\301\311\303#\210\301\312\303#\210\301\313\303#\210\301\314\303#\210\301\315\316#\210\301\317\316#\210\301\320\303#\210\301\321\322#\210\301\323\324#\210\301\325\326#\210\301\327\322#\210\301\330\303#\210\301\331\332#\210\301\333\334#\210\301\335\334#\207" [idlwave-mode-syntax-table modify-syntax-entry 43 "." 45 42 47 94 35 61 37 60 62 39 "\"" 34 92 95 "_" 123 "(}" 125 "){" 36 46 59 "<" 10 ">" 12] 4) #@64 Syntax table that treats symbol characters as word characters. (defvar idlwave-find-symbol-syntax-table (copy-syntax-table idlwave-mode-syntax-table) (#$ . 47641)) (byte-code "\301\302\303#\210\301\304\303#\210\301\305\303#\210\301\306\303#\207" [idlwave-find-symbol-syntax-table modify-syntax-entry 36 "w" 95 33 46] 4) #@45 Execute BODY with a different syntax table. (defalias 'idlwave-with-special-syntax '(macro . #[(&rest body) "\301\302\303\304\305BB\306BBE\207" [body let ((saved-syntax (syntax-table))) unwind-protect progn (set-syntax-table idlwave-find-symbol-syntax-table) ((set-syntax-table saved-syntax))] 6 (#$ . 47971)])) #@1291 KEY and CMD are made into a key binding and an indent action. KEY is a string - same as for the `define-key' function. CMD is a function of no arguments or a list to be evaluated. CMD is bound to KEY in `idlwave-mode-map' by defining an anonymous function calling `self-insert-command' followed by CMD. If KEY contains more than one character a binding will only be set if SELECT is 'both. (KEY . CMD) is also placed in the `idlwave-indent-expand-table', replacing any previous value for KEY. If a binding is not set then it will instead be placed in `idlwave-indent-action-table'. If the optional argument SELECT is nil then an action and binding are created. If SELECT is 'noaction, then a binding is always set and no action is created. If SELECT is 'both then an action and binding will both be created even if KEY contains more than one character. Otherwise, if SELECT is non-nil then only an action is created. Some examples: No spaces before and 1 after a comma (idlwave-action-and-binding "," '(idlwave-surround 0 1)) A minimum of 1 space before and after `=' (see `idlwave-expand-equal'). (idlwave-action-and-binding "=" '(idlwave-expand-equal -1 -1)) Capitalize system variables - action only (idlwave-action-and-binding idlwave-sysvar '(capitalize-word 1) t) (defalias 'idlwave-action-and-binding #[(key cmd &optional select) "\306\232\2043 \203 \307\202 \310\311\n!\312\313 !\"\211\203&