140 |
(eval-when-compile (require 'cl)) |
(eval-when-compile (require 'cl)) |
141 |
|
|
142 |
(eval-and-compile |
(eval-and-compile |
143 |
;; Kludge to allow `defcustom' for Emacs 19. |
;; Kludge to allow `defcustom' for Emacs 19. |
144 |
(condition-case () (require 'custom) (error nil)) |
(condition-case () (require 'custom) (error nil)) |
145 |
(if (and (featurep 'custom) (fboundp 'custom-declare-variable)) |
(if (and (featurep 'custom) (fboundp 'custom-declare-variable)) |
146 |
nil ;; We've got what we needed |
nil ;; We've got what we needed |
147 |
;; We have the old or no custom-library, hack around it! |
;; We have the old or no custom-library, hack around it! |
148 |
(defmacro defgroup (&rest args) nil) |
(defmacro defgroup (&rest args) nil) |
149 |
(defmacro defcustom (var value doc &rest args) |
(defmacro defcustom (var value doc &rest args) |
150 |
(` (defvar (, var) (, value) (, doc)))))) |
`(defvar ,var ,value ,doc)))) |
151 |
|
|
152 |
(defgroup idlwave nil |
(defgroup idlwave nil |
153 |
"Major mode for editing IDL/WAVE CL .pro files" |
"Major mode for editing IDL/WAVE CL .pro files" |
1360 |
|
|
1361 |
(defmacro idlwave-keyword-abbrev (&rest args) |
(defmacro idlwave-keyword-abbrev (&rest args) |
1362 |
"Creates a function for abbrev hooks to call `idlwave-check-abbrev' with args." |
"Creates a function for abbrev hooks to call `idlwave-check-abbrev' with args." |
1363 |
(` (quote (lambda () |
`(quote (lambda () |
1364 |
(, (append '(idlwave-check-abbrev) args)))))) |
,(append '(idlwave-check-abbrev) args)))) |
1365 |
|
|
1366 |
;; If I take the time I can replace idlwave-keyword-abbrev with |
;; If I take the time I can replace idlwave-keyword-abbrev with |
1367 |
;; idlwave-code-abbrev and remove the quoted abbrev check from |
;; idlwave-code-abbrev and remove the quoted abbrev check from |
1373 |
"Creates a function for abbrev hooks that ensures abbrevs are not quoted. |
"Creates a function for abbrev hooks that ensures abbrevs are not quoted. |
1374 |
Specifically, if the abbrev is in a comment or string it is unexpanded. |
Specifically, if the abbrev is in a comment or string it is unexpanded. |
1375 |
Otherwise ARGS forms a list that is evaluated." |
Otherwise ARGS forms a list that is evaluated." |
1376 |
(` (quote (lambda () |
`(quote (lambda () |
1377 |
(, (prin1-to-string args)) ;; Puts the code in the doc string |
,(prin1-to-string args) ;; Puts the code in the doc string |
1378 |
(if (idlwave-quoted) |
(if (idlwave-quoted) |
1379 |
(progn (unexpand-abbrev) nil) |
(progn (unexpand-abbrev) nil) |
1380 |
(, (append args))))))) |
,(append args))))) |
1381 |
|
|
1382 |
(defvar idlwave-mode-map (make-sparse-keymap) |
(defvar idlwave-mode-map (make-sparse-keymap) |
1383 |
"Keymap used in IDL mode.") |
"Keymap used in IDL mode.") |