Function: idlwave-create-user-catalog-file
idlwave-create-user-catalog-file is an interactive and byte-compiled
function defined in idlwave.el.gz.
Signature
(idlwave-create-user-catalog-file &optional ARG)
Documentation
Scan all files on selected dirs of IDL search path for routine information.
A widget checklist will allow you to choose the directories. Write
the result as a file idlwave-user-catalog-file. When this file
exists, it will be automatically loaded to give routine information
about library routines. With ARG, just rescan the same directories
as last time - so no widget will pop up.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/idlwave.el.gz
(defun idlwave-create-user-catalog-file (&optional arg)
"Scan all files on selected dirs of IDL search path for routine information.
A widget checklist will allow you to choose the directories. Write
the result as a file `idlwave-user-catalog-file'. When this file
exists, it will be automatically loaded to give routine information
about library routines. With ARG, just rescan the same directories
as last time - so no widget will pop up."
(interactive "P")
;; Make sure the file is loaded if it exists.
(if (and (stringp idlwave-user-catalog-file)
(file-regular-p idlwave-user-catalog-file))
(condition-case nil
(load-file idlwave-user-catalog-file)
(error nil)))
;; Make sure the file name makes sense
(unless (and (stringp idlwave-user-catalog-file)
(> (length idlwave-user-catalog-file) 0)
(file-accessible-directory-p
(file-name-directory idlwave-user-catalog-file))
(not (string= "" (file-name-nondirectory
idlwave-user-catalog-file))))
(error "`idlwave-user-catalog-file' does not point to a file in an accessible directory"))
(cond
;; Rescan the known directories
((and arg idlwave-path-alist
(consp (car idlwave-path-alist)))
(idlwave-scan-user-lib-files idlwave-path-alist))
;; Expand the directories from library-path and run the widget
(idlwave-library-path
(idlwave-display-user-catalog-widget
(if idlwave-true-path-alist
;; Propagate any flags on the existing path-alist
(mapcar (lambda (x)
(let ((path-entry (assoc (file-truename x)
idlwave-true-path-alist)))
(if path-entry
(cons x (cdr path-entry))
(list x))))
(idlwave-expand-path idlwave-library-path))
(mapcar #'list (idlwave-expand-path idlwave-library-path)))))
;; Ask the shell for the path and then run the widget
(t
(message "Asking the shell for IDL path...")
(require 'idlw-shell)
(idlwave-shell-send-command idlwave-shell-path-query
'(idlwave-user-catalog-command-hook nil)
'hide))))