;; Carsten Dominik <dominik@science.uva.nl>
;; Chris Chase <chase@att.com>
;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
-;; Version: 6.0_em22
+;; Version: 6.1_em22
;; Keywords: languages
;; This file is part of GNU Emacs.
"Character which is inserted as a last character on previous line by
\\[idlwave-split-line] to begin a continuation line. Normally $.")
-(defconst idlwave-mode-version "6.0_em22")
+(defconst idlwave-mode-version "6.1_em22")
(defmacro idlwave-keyword-abbrev (&rest args)
"Creates a function for abbrev hooks to call `idlwave-check-abbrev' with args."
(define-key idlwave-mode-map "\C-c\C-t" 'idlwave-find-module-this-file)
(define-key idlwave-mode-map "\C-c?" 'idlwave-routine-info)
(define-key idlwave-mode-map "\M-?" 'idlwave-context-help)
-(define-key idlwave-mode-map [(control meta ?\?)] 'idlwave-online-help)
+(define-key idlwave-mode-map [(control meta ?\?)]
+ 'idlwave-help-assistant-help-with-topic)
;; Pickup both forms of Esc/Meta binding
(define-key idlwave-mode-map [(meta tab)] 'idlwave-complete)
(define-key idlwave-mode-map [?\e?\t] 'idlwave-complete)
;;;###autoload
(defun idlwave-mode ()
- "Major mode for editing IDL source files (version 6.0_em22).
+ "Major mode for editing IDL source files (version 6.1_em22).
The main features of this mode are
(set (make-local-variable 'paragraph-ignore-fill-prefix) nil)
(set (make-local-variable 'parse-sexp-ignore-comments) t)
+ ;; ChangeLog
+ (set (make-local-variable 'add-log-current-defun-function)
+ 'idlwave-current-routine-fullname)
+
;; Set tag table list to use IDLTAGS as file name.
(if (boundp 'tag-table-alist)
(add-to-list 'tag-table-alist '("\\.pro$" . "IDLTAGS")))
- ;; Font-lock additions - originally Phil Williams, then Ulrik Dickow
+ ;; Font-lock additions
;; Following line is for Emacs - XEmacs uses the corresponding property
;; on the `idlwave-mode' symbol.
(set (make-local-variable 'font-lock-defaults) idlwave-font-lock-defaults)
";"
'idlwave-forward-block nil))
-
;; Make a local post-command-hook and add our hook to it
;; NB: `make-local-hook' needed for older/alternative Emacs compatibility
;; (make-local-hook 'post-command-hook)
;; (make-local-hook 'kill-buffer-hook)
(add-hook 'kill-buffer-hook 'idlwave-kill-buffer-update nil 'local)
;; (make-local-hook 'after-save-hook)
- ;; (add-hook 'after-save-hook 'idlwave-save-buffer-update nil 'local)
+ (add-hook 'after-save-hook 'idlwave-save-buffer-update nil 'local)
(add-hook 'after-save-hook 'idlwave-revoke-license-to-kill nil 'local)
;; Setup directories and file, if necessary
(message "Could not find doc library header start.")
(goto-char here)))))
+(defun idlwave-current-routine-fullname ()
+ (let ((name (idlwave-current-routine)))
+ (idlwave-make-full-name (nth 2 name) (car name))))
+
(defun idlwave-current-routine ()
"Return (NAME TYPE CLASS) of current routine."
(idlwave-routines)
(run-hooks 'idlwave-timestamp-hook))
(error "No valid DOCLIB header"))))
+
;;; CJC 3/16/93
;;; Interface to expand-region-abbrevs which did not work when the
;;; abbrev hook associated with an abbrev moves point backwards
(elem-cnt 0)
props rinfo msg-cnt elem type nelem class-result alias
routines routine-aliases statement-aliases sysvar-aliases
- buf version-string)
+ version-string)
(if (not (file-exists-p catalog-file))
(error "No such XML routine info file: %s" catalog-file)
(if (not (file-readable-p catalog-file))
(error "Cannot read XML routine info file: %s" catalog-file)))
(require 'xml)
(message "Reading XML routine info...")
- (unwind-protect
- (progn
- ;; avoid warnings about read-only files
- (setq buf (find-file-noselect catalog-file 'nowarn))
- (setq rinfo (xml-parse-file catalog-file)))
- (if (bufferp buf) (kill-buffer buf)))
+ (setq rinfo (xml-parse-file catalog-file))
(message "Reading XML routine info...done")
(setq rinfo (assq 'CATALOG rinfo))
(unless rinfo (error "Failed to parse XML routine info"))
((eq mode 'set)
(if entry
(setq link
- (if (setq target (cdr (assoc word tags)))
+ (if (setq target (cdr (assoc-string word tags t)))
(idlwave-substitute-link-target main target)
main)))) ;; setting dynamic!!!
(t (error "This should not happen")))))
(defun idlwave-class-or-superclass-with-tag (class tag)
"Find and return the CLASS or one of its superclass with the
associated TAG, if any."
- (let ((sclasses (cons class (cdr (assq 'all-inherits
- (idlwave-class-info class)))))
+ (let ((sclasses (cons class (idlwave-all-class-inherits class)))
cl)
(catch 'exit
(while sclasses
"--"
["Info" idlwave-info t]
"--"
+ ["Help with Topic" idlwave-help-assistant-help-with-topic
+ idlwave-help-use-assistant]
["Launch IDL Help" idlwave-launch-idlhelp t])))
(defvar idlwave-mode-debug-menu-def