• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/emacs-92/emacs/lisp/progmodes/

Lines Matching +defs:file +defs:type

13 ;; This file is part of GNU Emacs.
26 ;; along with GNU Emacs; see the file COPYING. If not, write to the
55 ;; Follow the instructions in the INSTALL file of the distribution.
56 ;; In short, put this file on your load path and add the following
57 ;; lines to your .emacs file:
67 ;; The newest version of this file is available from the maintainer's
210 :type 'integer)
216 :type 'integer)
223 :type 'integer)
230 :type 'integer)
244 :type 'integer)
268 :type 'boolean)
274 :type 'boolean)
282 :type 'boolean)
289 :type 'regexp)
294 :type 'boolean)
299 :type 'boolean)
310 :type 'boolean)
318 :type 'boolean)
325 :type 'string)
334 :type '(choice (const :tag "Any line beginning with `;'" nil)
342 :type 'regexp)
361 :type 'boolean)
379 :type 'number)
390 :type '(choice
401 :type 'boolean)
404 '(find-file save-buffer kill-buffer compile-buffer)
410 find-file Add info for new IDLWAVE buffers.
415 :type '(choice
419 (const :tag "When visiting a file" find-file)
429 :type 'integer)
444 :type '(repeat (directory)))
455 :type 'directory)
462 :type 'file)
464 (defvar idlwave-user-catalog-file "idlusercat.el")
465 (defvar idlwave-xml-system-rinfo-converted-file "idl_xml_rinfo.el")
466 (defvar idlwave-path-file "idlpath.el")
468 (defvar idlwave-libinfo-file nil
474 the file defining the routine is located. By default it lists `SystemLib'
477 is a regular expression matching the file name (they normally will match
481 :type '(repeat
488 written to file. Otherwise, the menu option \"Write Paths\" can be
491 :type 'boolean)
545 :type `(repeat
556 :type 'boolean)
565 :type 'boolean)
578 :type 'boolean)
585 :type 'boolean)
592 :type 'boolean)
602 :type '(repeat (regexp :tag "Match method:")))
621 :type '(choice (const :tag "Don't show" nil)
629 :type 'boolean)
673 :type '(list
707 :type 'boolean)
715 :type 'symbol)
720 :type 'boolean)
725 :type 'boolean)
733 :type '(choice (const :tag "Nothing" nil)
743 :type 'boolean)
756 :type 'boolean)
765 must set it directly using `setq' in the .emacs file before idlwave.el
768 :type 'string)
783 :type 'boolean)
792 :type '(choice
800 :type 'boolean)
805 :type 'boolean)
810 :type 'boolean)
821 :type 'boolean)
831 :type 'boolean)
838 :type 'boolean)
897 (defvar idlwave-file-header
961 summarizing a file. If PATHNAME is non-nil then this file will be included.
962 Otherwise STRING is used. If nil, the file summary will be omitted.
964 lib_template.pro file included in the IDL distribution.")
966 (defcustom idlwave-header-to-beginning-of-file t
967 "*Non-nil means, the documentation header will always be at start of file.
970 a file."
972 :type 'boolean)
977 :type 'function)
985 :type 'string)
990 :type 'regexp)
995 :type 'regexp)
1003 (defcustom idlwave-shell-explicit-file-name "idl"
1005 Should be an absolute file path or path relative to the current environment
1012 :type 'string)
1017 this should be a list of strings like '(\"-rt=file\" \"-nw\") with a separate
1021 :type '(choice
1030 :type 'string)
1040 be on `C-S-b', compiling a source file on `C-S-c' etc. Possible modifiers
1043 :type '(set :tag "Specify modifiers"
1056 :type 'boolean)
1068 :type 'boolean)
1090 :type '(set
1108 :type 'hook)
1113 :type 'hook)
1315 which can be used to identify the block type.
1316 This is used to check for the correct END type, to close blocks and
1371 type. The associated value is a list. The first element of this list
1373 identifying the statement type. The second element of this list is a
1374 regular expression for finding a substatement for the type. The
1389 ;; The code in this file accepts either format for compatibility.
1597 (define-key idlwave-mode-map "\C-c\C-t" 'idlwave-find-module-this-file)
1824 source file of a module. These commands know about system
1950 ;; Set tag table list to use IDLTAGS as file name.
1992 ;; Setup directories and file, if necessary
2007 (if (not (file-directory-p idlwave-config-directory))
2010 idlwave-user-catalog-file (expand-file-name
2011 idlwave-user-catalog-file
2013 idlwave-xml-system-rinfo-converted-file
2014 (expand-file-name
2015 idlwave-xml-system-rinfo-converted-file
2017 idlwave-path-file (expand-file-name
2018 idlwave-path-file
2543 (let* ((type (if (string= (downcase (match-string 1)) "pro")
2547 (list name type class)))))
2568 the first non-comment statement in the file, and nil otherwise."
2572 ;; first line in file
2616 non-comment IDL statement in the file, and nil otherwise."
2670 Uses the type of the current IDL statement to determine if the next
2687 (setq nst (nth 1 (cdr (setq st (car (idlwave-statement-type))))))
2703 (defun idlwave-statement-type ()
2704 "Return the type of the current IDL statement.
2705 Uses `idlwave-statement-match' to return a cons of (type . point) with
2706 point the ending position where the type was determined. Type is the
2708 list not just the type symbol. Returns nil if not an identifiable
2726 `idlwave-start-of-substatement' and `idlwave-statement-type'. The
2772 (idlwave-statement-type)))
2936 ;; Beginning of file
3113 (eq (caar (idlwave-statement-type)) 'for)))
3597 Inserts the value of the variable idlwave-file-header. Sets mark before
3603 (if idlwave-header-to-beginning-of-file
3614 (if idlwave-file-header
3615 (cond ((car idlwave-file-header)
3616 (insert-file-contents (car idlwave-file-header)))
3617 ((stringp (car (cdr idlwave-file-header)))
3618 (insert (car (cdr idlwave-file-header))))))
3894 (defun idlwave-get-buffer-visiting (file)
3897 ((boundp 'find-file-compare-truenames) ; XEmacs
3898 (let ((find-file-compare-truenames t))
3899 (get-file-buffer file)))
3901 (find-buffer-visiting file))
3908 (defun idlwave-find-file-noselect (file &optional why)
3909 ;; Return a buffer visiting file.
3910 (or (idlwave-get-buffer-visiting file)
3911 (let ((buf (find-file-noselect file)))
3981 (defun idlwave-locate-lib-file (file)
3987 (if (file-regular-p
3988 (setq efile (expand-file-name file dir)))
3991 (defun idlwave-expand-lib-file-name (file)
3995 ((null file) nil)
3996 ((file-name-absolute-p file) file)
3997 (t (idlwave-locate-lib-file file))))
4000 "Creates the IDL tags file IDLTAGS in the current directory from
4031 (setq dir (expand-file-name dir))
4032 (if (file-directory-p dir)
4038 (concat "find " dir " -type d -print"))
4197 ;;(defmacro idlwave-sintern (type var)
4201 ;; (set (idlwave-sintern-set name ,type ,var set))
4236 (defun idlwave-sintern-set (name type tables set)
4237 (let* ((func (or (cdr (assq type idlwave-completion-case))
4245 "Sintern a set of keywords (file (key . link) (key2 . link2) ...)"
4255 (let (entry name type class kwds res source call new)
4260 type (nth 1 entry)
4275 (let ((source-type (car source))
4276 (source-file (nth 1 source))
4278 (file-name-as-directory default-dir)
4285 (setq source (list source-type source-file source-dir source-lib)))
4293 (setq new (nconc (list name type class source call) kwds)
4299 (defun idlwave-new-sintern-type (tag)
4300 "Define a variable and a function to sintern the new type TAG.
4317 (defun idlwave-reset-sintern-type (tag)
4417 (if (or (not idlwave-user-catalog-file)
4418 (not (stringp idlwave-user-catalog-file))
4419 (not (file-regular-p idlwave-user-catalog-file)))
4423 "-l" (expand-file-name "~/.emacs")
4438 (message "Background job started to update catalog file")))
4443 ;; ("ROUTINE" type class
4497 (idlwave-create-user-catalog-file t))
4586 ;; Load the system routine info from the cached routine info file,
4587 ;; which, if necessary, will be re-created from the XML file on
4589 ;; file distributed with older IDLWAVE versions (<6.0)
4590 (unless (and (load idlwave-xml-system-rinfo-converted-file
4597 (unless (load idlwave-xml-system-rinfo-converted-file
4609 (let* ((dir (file-name-as-directory
4610 (expand-file-name "help/online_help" (idlwave-sys-dir))))
4611 (catalog-file (expand-file-name "idl_catalog.xml" dir)))
4612 (file-newer-than-file-p ;converted file is newer than catalog
4613 idlwave-xml-system-rinfo-converted-file
4614 catalog-file)))
4716 syntax kwd klink pref-list kwds pelem ptype entry props result type)
4730 (setq type (cdr (assq 'type props)))
4733 ((string-match "^pro" type) 0)
4734 ((string-match "^fun" type) 1)
4735 ((string-match "^exec" type) 2)))))
4776 ;; Group keywords by link file, as a list with elements
4872 (defvar idlwave-xml-routine-info-file nil)
4875 (if idlwave-xml-routine-info-file
4876 (with-temp-file idlwave-xml-system-rinfo-converted-file
4880 ;; Automatically generated from source file:
4881 ;; " idlwave-xml-routine-info-file "
4884 (insert (format "\n(setq idlwave-xml-routine-info-file \n \"%s\")"
4885 idlwave-xml-routine-info-file))
4906 (let* ((dir (file-name-as-directory
4907 (expand-file-name "help/online_help" (idlwave-sys-dir))))
4908 (catalog-file (expand-file-name "idl_catalog.xml" dir))
4910 props rinfo msg-cnt elem type nelem class-result alias
4913 (if (not (file-exists-p catalog-file))
4914 (error "No such XML routine info file: %s" catalog-file)
4915 (if (not (file-readable-p catalog-file))
4916 (error "Cannot read XML routine info file: %s" catalog-file)))
4919 (setq rinfo (xml-parse-file catalog-file))
4931 (setq idlwave-xml-routine-info-file nil)
4944 (setq type (car elem)
4950 ((eq type 'ROUTINE)
4961 ((eq type 'CLASS)
4967 ((eq type 'STATEMENT)
4976 ((eq type 'SYSVAR)
4988 (setq idlwave-xml-routine-info-file catalog-file)
4993 ;; ("ROUTINE" type class
5023 (when (and (stringp idlwave-user-catalog-file)
5024 (file-regular-p idlwave-user-catalog-file))
5027 (load-file idlwave-user-catalog-file)
5037 idlwave-user-catalog-file))
5091 (when (and (stringp idlwave-user-catalog-file)
5092 (file-regular-p idlwave-user-catalog-file))
5095 (load-file idlwave-user-catalog-file))
5102 idlwave-user-catalog-file))
5180 (idlwave-update-current-buffer-info 'find-file))
5192 (buffer-file-name)
5203 (defun idlwave-replace-buffer-routine-info (file new)
5209 ;; when two buffers visit the same file. Then the file names
5211 (if (eq (idlwave-routine-source-file (nth 3 (car list))) file)
5231 buffer-file-name)
5263 start name args type keywords class)
5272 ;; Match the name and type.
5276 (setq type (downcase (match-string 1 string)))
5296 (if (equal type "pro") 'pro 'fun)
5299 (list 'buffer (buffer-file-name)))
5301 ; (file-name-sans-extension
5302 ; (file-name-nondirectory (buffer-file-name))))
5305 ; (t (cons 'lib (file-name-nondirectory (buffer-file-name))))
5306 (t (list 'user (file-name-nondirectory (buffer-file-name))
5309 (if (string= type "function") "Result = " "")
5314 (if (string= type "function") "(" ", ")
5316 (if (string= type "function") ")" ""))))
5318 (cons nil (mapcar 'list keywords)) ;No help file
5334 (defun idlwave-create-user-catalog-file (&optional arg)
5338 the result as a file `idlwave-user-catalog-file'. When this file
5343 ;; Make sure the file is loaded if it exists.
5344 (if (and (stringp idlwave-user-catalog-file)
5345 (file-regular-p idlwave-user-catalog-file))
5347 (load-file idlwave-user-catalog-file)
5349 ;; Make sure the file name makes sense
5350 (unless (and (stringp idlwave-user-catalog-file)
5351 (> (length idlwave-user-catalog-file) 0)
5352 (file-accessible-directory-p
5353 (file-name-directory idlwave-user-catalog-file))
5354 (not (string= "" (file-name-nondirectory
5355 idlwave-user-catalog-file))))
5356 (error "`idlwave-user-catalog-file' does not point to a file in an accessible directory"))
5370 (let ((path-entry (assoc (file-truename x)
5389 ;; Command hook used by `idlwave-create-user-catalog-file'.
5401 would like to extract routine information, to be stored in the file:
5405 If this is not the correct file, first set variable
5406 `idlwave-user-catalog-file', and call this command again.
5432 idlwave-user-catalog-file))
5439 :notify 'idlwave-delete-user-catalog-file
5492 (defun idlwave-delete-user-catalog-file (&rest ignore)
5494 (format "Delete file %s " idlwave-user-catalog-file))
5496 (delete-file idlwave-user-catalog-file)
5497 (message "%s has been deleted" idlwave-user-catalog-file))))
5522 dirs-alist dir files file)
5535 (when (file-directory-p dir)
5537 (while (setq file (pop files))
5538 (when (file-regular-p file)
5539 (if (not (file-readable-p file))
5540 (message "Skipping %s (no read permission)" file)
5541 (message "Scanning %s..." file)
5543 (insert-file-contents file 'visit)
5548 (message "Creating user catalog file...")
5553 (find-file idlwave-user-catalog-file))
5558 (insert ";; IDLWAVE user catalog file\n")
5570 (file-name-nondirectory idlwave-user-catalog-file)))
5575 (message "Creating user catalog file...done")
5578 idlwave-user-catalog-file)
5583 (if (and (stringp idlwave-path-file)
5584 (file-regular-p idlwave-path-file))
5586 (load idlwave-path-file t t t)
5594 (find-file idlwave-path-file))
5627 (not (file-name-absolute-p dir)))
5628 (setq dir (expand-file-name dir default-dir)))
5639 (let ((path (list dir)) path1 file files)
5641 (when (file-directory-p dir)
5643 (while (setq file (pop files))
5644 (if (file-directory-p file)
5645 (push (file-name-as-directory file) path)))
5673 (when (file-readable-p
5674 (setq catalog (expand-file-name ".idlwave_catalog" dir)))
5677 ;; Load the catalog file
5776 pro idlwave_routine_info,file
5781 fileQ=n_elements(file) ne 0
5782 if fileQ then file=strtrim(file,2)
5785 if (routine_info(all[i],/SOURCE)).path eq file then $
5792 if (routine_info(all[i],/FUNCTIONS,/SOURCE)).path eq file then $
5827 (defvar idlwave-shell-temp-pro-file)
5828 (defvar idlwave-shell-temp-rinfo-save-file)
5832 (file-readable-p (idlwave-shell-temp-file 'rinfo)))
5834 (set-buffer (idlwave-find-file-noselect
5835 (idlwave-shell-temp-file 'pro)))
5840 (concat ".run \"" idlwave-shell-temp-pro-file "\"")
5844 (idlwave-shell-temp-file 'rinfo))
5852 idlwave-shell-temp-rinfo-save-file
5853 idlwave-shell-temp-rinfo-save-file)
5857 (defun idlwave-shell-update-routine-info (&optional quiet run-hooks wait file)
5860 ;; saved into an IDL SAVE file, to allow for fast RESTORE. We may
5864 ;; FILE is set, only update routine info for routines in that file.
5869 (format "idlwave_routine_info%s" (if file (concat ",'" file "'") ""))
5907 The optional ARG can be used to specify the completion type in order
5911 0 <=> query for the completion type
5981 (type-selector 'pro))
5983 (list 'routine nil type-selector class-selector nil super-classes))
5995 'idlwave-attach-method-classes 'idlwave-add-file-link-selector)))
6004 (type-selector 'fun))
6006 (list 'routine nil type-selector class-selector nil super-classes))
6018 'idlwave-attach-method-classes 'idlwave-add-file-link-selector)))
6029 (type-selector 'pro)
6046 (list 'keyword name type-selector class-selector entry super-classes))
6062 (type-selector 'fun)
6086 (list 'keyword name type-selector class-selector nil super-classes))
6152 (type-selector 'pro)
6166 (type-selector 'fun)
6181 (type-selector 'pro)
6197 (type-selector 'fun)
6222 "Use the comint stuff to complete a file name."
6224 (let* ((comint-file-name-chars "~/A-Za-z0-9+@:_.$#%={}\\-")
6229 (file-directory-p idlwave-shell-default-directory))
6238 (defun idlwave-rinfo-assoc (name type class list)
6242 type (idlwave-sintern-class class) list))
6244 (defun idlwave-rinfo-assq (name type class list)
6245 ;; Works like assq, but also checks type and class
6249 (and (or (eq type t)
6250 (eq (nth 1 match) type))
6255 (defun idlwave-rinfo-assq-any-class (name type class list)
6260 (if (setq rtn (idlwave-rinfo-assq name type (pop classes) list))
6264 (defun idlwave-best-rinfo-assq (name type class list &optional with-file
6267 If WITH-FILE is passed, find the best rinfo entry with a file
6271 (idlwave-rinfo-assq-any-class name type class list)
6282 (if with-file
6289 (defun idlwave-best-rinfo-assoc (name type class list &optional with-file
6294 type (idlwave-sintern-class class) list with-file keep-system))
6299 (let (file (cnt 0))
6303 (setq file (idlwave-routine-source-file (nth 3 (car entries))))
6304 (if (and file (idlwave-syslib-p file))
6317 (defun idlwave-all-method-classes (method &optional type)
6325 (or (not type)
6326 (eq type (nth 1 x)))
6331 (defun idlwave-all-method-keyword-classes (method keyword &optional type)
6341 (or (not type) ; correct or unspecified type
6342 (eq type (nth 1 x)))
6379 (defun idlwave-determine-class (info type)
6434 (mapcar 'list (idlwave-all-method-classes (car info) type)))
6447 type (car info))
6467 (defvar type-selector)
6472 (and (eq (nth 1 a) type-selector)
6477 (defun idlwave-add-file-link-selector (a)
6478 ;; Record a file link, if any, for the tested names during selection.
6479 (let ((sel (idlwave-selector a)) file)
6480 (if (and sel (setq file (idlwave-entry-has-help a)))
6481 (push (cons (car a) file) idlwave-completion-help-links))
6720 (defun idlwave-complete-in-buffer (type stype list selector prompt isa
6743 (list 'quote type) slash beg)
6746 (list 'quote type) slash (list 'quote 'force))))
6771 (idlwave-after-successful-completion type slash beg))
6781 (idlwave-after-successful-completion type slash beg)
6849 (defun idlwave-attach-classes (list type show-classes)
6866 (inherit (if (and (not (eq type 'class-tag)) super-classes)
6874 (if (eq type 'class-tag)
6881 (if (eq type 'kwd)
6883 method-selector x type-selector)
6884 (idlwave-all-method-classes x type-selector)))
7273 ;; This could be in a separate file in the distribution, or
7368 through the entire file. If BOUND is the symbol `back' we search only
7409 (idlwave-class-file-or-buffer
7453 (defun idlwave-class-file-or-buffer (class)
7456 (file (idlwave-routine-source-file
7459 (cons file (if file (idlwave-get-buffer-visiting file)))))
7465 (filebuf (idlwave-class-file-or-buffer class))
7466 (file (car filebuf))
7470 (not file)
7471 (and ;; neither a regular file nor a visited buffer
7473 (not (file-regular-p file))))
7474 nil ; Cannot find the file/buffer to get any info
7477 ;; Read the file in temporarily
7482 (insert-file-contents file))
7557 (let ((file (car key-list)))
7561 (when (and record-link file)
7567 file
7582 (let ((file (car key-list))
7586 (if (and file (cdr kwd))
7587 (concat file
7603 (idlwave-new-sintern-type 'class-tag)
7661 (idlwave-new-sintern-type 'sysvar)
7662 (idlwave-new-sintern-type 'sysvartag)
7734 "Split a given link into link file and anchor."
7820 var tags type name class link old-entry)
7867 (defun idlwave-after-successful-completion (type slash &optional verify)
7871 ((eq type 'procedure)
7873 ((eq type 'function)
7883 ((eq type 'keyword)
7917 visits the source file, finding help in the header (if
7985 (type (if (eq (nth 1 module) 'pro) "pro" "function"))
7986 (resolve (read-string "Resolve: " (format "%s %s" type name)))
7991 (setq type (match-string 1 resolve)
7996 (if (string= (downcase type) "function")
8014 (defun idlwave-find-module-this-file ()
8052 (format "Module in this file: "))
8054 type class)
8059 (setq type (substring name -2 -1)
8066 type (cond ((equal type "f") 'fun)
8067 ((equal type "p") 'pro)
8069 (idlwave-do-find-module name type class nil this-buffer)))
8071 (defun idlwave-do-find-module (name type class
8077 file name2)
8078 (setq entry (idlwave-best-rinfo-assq name type class (idlwave-routines)
8085 (setq file (idlwave-routine-source-file source)))
8086 (unless file ; Try to find it on the path.
8087 (setq file
8088 (idlwave-expand-lib-file-name
8098 ((or (not file) (not (file-regular-p file)))
8104 (idlwave-find-file-noselect file 'find))
8110 (cond ((eq type 'fun) "function")
8111 ((eq type 'pro) "pro")
8189 (defun idlwave-find-inherited-class (name type class)
8191 (let ((entry (idlwave-best-rinfo-assoc name type class (idlwave-routines))))
8218 (defun idlwave-fix-keywords (name type class keywords
8253 (eq (nth 1 entry) type) ; correct type
8279 (eq (nth 1 entry) type) ; correct type
8300 (type (nth 1 module))
8303 (entry (idlwave-best-rinfo-assoc name type class (idlwave-routines)))
8354 (defun idlwave-display-calling-sequence (name type class
8356 ;; Display the calling sequence of module NAME, type TYPE in class CLASS.
8358 (entry (or (idlwave-best-rinfo-assq name type class
8360 (idlwave-rinfo-assq name type class
8371 (html-file (car (nth 5 entry)))
8381 (data (list name type class (current-buffer) nil initial-class))
8387 (setq keywords (idlwave-fix-keywords name type class keywords))
8390 (error "No %s %s known %s" type name
8395 (error "Calling sequence of %s %s not available" type name))
8420 (if (idlwave-rinfo-assq name type c (idlwave-routines))
8427 (if html-file (setq props (append (list 'face face 'link html-file)
8463 ;; Here entry is (key file (list of type-conses))
8468 'source (list (car (car (nth 2 entry))) ;type
8502 (defun idlwave-insert-source-location (prefix entry &optional file-props)
8504 Start line with PREFIX. If a file name is inserted, add FILE-PROPS to
8507 (file (nth 1 entry))
8531 ((and (not file) shell-flag)
8534 ((null file)
8537 ((idlwave-syslib-p file)
8538 (if (string-match "obsolete" (file-name-directory file))
8548 ((setq special (idlwave-special-lib-test file))
8551 ;; Catch-all with file
8552 ((idlwave-lib-p file) (insert "Library "))
8569 (when (and file (not (equal file "")))
8571 (insert (apply 'abbreviate-file-name
8572 (if (featurep 'xemacs) (list file t) (list file))))
8573 (if file-props
8574 (add-text-properties beg (point) file-props)))))
8576 (defun idlwave-special-lib-test (file)
8582 ((stringp file)
8584 (if (string-match (car entry) file)
8608 (let (data id name type class buf bufwin source link keyword
8615 name (nth 1 data) type (nth 2 data) class (nth 3 data)
8625 type (idlwave-sintern-class word)
8628 (idlwave-online-help link name type class))
8635 (list (list name type class source ""))))
8636 (idlwave-help-get-special-help name type class nil))
8641 (idlwave-do-find-module name type class source)
8652 (idlwave-online-help link name type class keyword)
8811 (sfile (idlwave-routine-source-file source)))
8824 Twin entries are those which have the same name, type, and class.
8827 (type (nth 1 entry))
8833 (eq type (nth 1 candidate))
8836 (if (setq candidate (idlwave-rinfo-assq name type class
8844 the load path. If a file is in the system library and has an entry in
8850 (type (nth 1 entry)) ; Must be bound for
8853 source type type-cons file alist syslibp key)
8857 type (car source)
8858 type-cons (cons type (nth 3 source))
8859 file (idlwave-routine-source-file source))
8862 (setq key (cond ((eq type 'system) type)
8863 (file (file-truename file))
8867 (if (and file
8869 (idlwave-syslib-p file))
8872 ;; If there's more than one matching entry for the same file, just
8873 ;; append the type-cons to the type list.
8875 (push type-cons (nth 2 entry))
8876 (push (list key file (list type-cons)) alist)))
8885 ;; (rather than a !DIR/lib/.pro file bundled as source).
8891 (defvar type)
8902 It first compates class, names, and type. If it turns out that A and B
8903 are twins (same name, class, and type), calls another routine which
8904 compares twins on the basis of their file names and path locations."
8905 (let ((name (car a)) (type (nth 1 a)) (class (nth 2 a)))
8916 ((not (eq type (nth 1 b)))
8918 (< (if (eq type 'fun) 1 0) (if (eq (nth 1 b) 'fun) 1 0)))
8928 (let* ((name (car a)) (type (nth 1 a)) (class (nth 2 a)) ; needed outside
8933 (afile (idlwave-routine-source-file asrc))
8934 (bfile (idlwave-routine-source-file bsrc)))
8937 (list (file-truename afile) afile (list atype))
8940 (list (file-truename bfile) bfile (list btype))
8970 (assoc (file-name-directory akey) tpath-alist)))
8972 (assoc (file-name-directory bkey) tpath-alist)))
8977 ;; Look at file names
8978 (aname (if (stringp afile) (downcase (file-name-nondirectory afile)) ""))
8979 (bname (if (stringp bfile) (downcase (file-name-nondirectory bfile)) ""))
8984 ;; Is file name derived from the routine name?
8985 ;; Method file or class definition file?
9000 ((idlwave-xor anamep bnamep) anamep) ; Correct file names first
9001 ((and class anamep bnamep ; both file names match ->
9006 (defun idlwave-routine-source-file (source)
9008 (expand-file-name (nth 1 source) (nth 2 source))
9025 (defun idlwave-syslib-p (file)
9027 (let* ((true-syslib (file-name-as-directory
9028 (file-truename
9029 (expand-file-name "lib" (idlwave-sys-dir)))))
9030 (true-file (file-truename file)))
9031 (string-match (concat "^" (regexp-quote true-syslib)) true-file)))
9033 (defun idlwave-lib-p (file)
9034 "Non-nil if file is in the library"
9035 (let ((true-dir (file-name-directory (file-truename file))))
9056 (file-name-as-directory
9057 (file-truename
9058 (directory-file-name
9064 "Non-nil if the system lib file !DIR/lib has been scanned."
9065 (let* ((true-syslib (file-name-as-directory
9066 (file-truename
9067 (expand-file-name "lib" (idlwave-sys-dir))))))
9078 ;; (pop-up a list of IDL units in the current file).
9132 "Edit the current file in IDL Development environment."
9135 idlwave-shell-explicit-file-name "-c" "-e"
9136 (buffer-file-name)))
9211 ["Select Catalog Directories" (idlwave-create-user-catalog-file nil) t]
9228 ["Edit file in IDLDE" idlwave-edit-in-idlde t]
9297 "Use the finder to view the file documentation from `idlwave.el'."
9303 "Use the finder to view the file documentation from `idlw-shell.el'."