Function: idlwave-make-force-complete-where-list
idlwave-make-force-complete-where-list is a byte-compiled function
defined in idlwave.el.gz.
Signature
(idlwave-make-force-complete-where-list WHAT &optional MODULE CLASS)
Source Code
;; Defined in /usr/src/emacs/lisp/obsolete/idlwave.el.gz
(defun idlwave-make-force-complete-where-list (what &optional module class)
;; Return an artificial WHERE specification to force the completion
;; routine to complete a specific item independent of context.
;; WHAT is the prefix arg of `idlwave-complete', see there for details.
;; MODULE and CLASS can be used to specify the routine name and class.
;; The class name will also be found in MODULE if that is like "class::mod".
(let* ((what-list '(("procedure") ("procedure-keyword")
("function") ("function-keyword")
("procedure-method") ("procedure-method-keyword")
("function-method") ("function-method-keyword")
("class")))
(module (idlwave-sintern-routine-or-method module class))
(class (idlwave-sintern-class class))
(what (cond
((equal what 0)
(setq what
(intern (completing-read
"Complete what? " what-list nil t))))
((integerp what)
(setq what (intern (car (nth (1- what) what-list)))))
((and what
(symbolp what)
(assoc (symbol-name what) what-list))
what)
(t (error "Invalid WHAT"))))
(nil-list '(nil nil nil nil))
(class-list (list nil nil (or class t) nil)))
(cond
((eq what 'procedure)
(list nil-list nil-list 'procedure nil-list nil))
((eq what 'procedure-keyword)
(let* ((idlwave--class-selector nil)
(idlwave--super-classes nil)
(idlwave--type-selector 'pro)
(pro (or module
(idlwave-completing-read
"Procedure: " (idlwave-routines) 'idlwave-selector))))
(setq pro (idlwave-sintern-routine pro))
(list nil-list nil-list 'procedure-keyword
(list pro nil nil nil) nil)))
((eq what 'function)
(list nil-list nil-list 'function nil-list nil))
((eq what 'function-keyword)
(let* ((idlwave--class-selector nil)
(idlwave--super-classes nil)
(idlwave--type-selector 'fun)
(func (or module
(idlwave-completing-read
"Function: " (idlwave-routines) 'idlwave-selector))))
(setq func (idlwave-sintern-routine func))
(list nil-list nil-list 'function-keyword
(list func nil nil nil) nil)))
((eq what 'procedure-method)
(list nil-list nil-list 'procedure class-list nil))
((eq what 'procedure-method-keyword)
(let* ((class (idlwave-determine-class class-list 'pro))
(idlwave--class-selector class)
(idlwave--super-classes (idlwave-all-class-inherits
idlwave--class-selector))
(idlwave--type-selector 'pro)
(pro (or module
(idlwave-completing-read
(format "Procedure in %s class: "
idlwave--class-selector)
(idlwave-routines) 'idlwave-selector))))
(setq pro (idlwave-sintern-method pro))
(list nil-list nil-list 'procedure-keyword
(list pro nil class nil) nil)))
((eq what 'function-method)
(list nil-list nil-list 'function class-list nil))
((eq what 'function-method-keyword)
(let* ((class (idlwave-determine-class class-list 'fun))
(idlwave--class-selector class)
(idlwave--super-classes (idlwave-all-class-inherits
idlwave--class-selector))
(idlwave--type-selector 'fun)
(func (or module
(idlwave-completing-read
(format "Function in %s class: "
idlwave--class-selector)
(idlwave-routines) 'idlwave-selector))))
(setq func (idlwave-sintern-method func))
(list nil-list nil-list 'function-keyword
(list func nil class nil) nil)))
((eq what 'class)
(list nil-list nil-list 'class nil-list nil))
(t (error "Invalid value for WHAT")))))