Function: idlwave-complete-class-structure-tag
idlwave-complete-class-structure-tag is an interactive and
byte-compiled function defined in idlwave.el.gz.
Signature
(idlwave-complete-class-structure-tag)
Documentation
Complete a structure tag on a self argument in an object method.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/idlwave.el.gz
(defun idlwave-complete-class-structure-tag ()
"Complete a structure tag on a `self' argument in an object method."
(interactive)
(let ((pos (point))
(case-fold-search t))
(if (save-excursion
;; Check if the context is right
(skip-chars-backward "a-zA-Z0-9._$")
(and (< (point) (- pos 4))
(looking-at "self\\.")))
(let* ((idlwave--class-selector (nth 2 (idlwave-current-routine)))
(idlwave--super-classes (idlwave-all-class-inherits
idlwave--class-selector)))
;; Check if we are in a class routine
(unless idlwave--class-selector
(error "Not in a method procedure or function"))
;; Check if we need to update the "current" class
(if (not (equal idlwave--class-selector idlwave-current-tags-class))
(idlwave-prepare-class-tag-completion idlwave--class-selector))
(setq idlwave-completion-help-info
(list 'idlwave-complete-class-structure-tag-help
(idlwave-sintern-routine
(concat idlwave--class-selector "__define"))
nil))
;; FIXME: idlwave-cpl-bold doesn't seem used anywhere.
(let ((_idlwave-cpl-bold idlwave-current-native-class-tags))
(idlwave-complete-in-buffer
'class-tag 'class-tag
idlwave-current-class-tags nil
(format "Select a tag of class %s" idlwave--class-selector)
"class tag"
'idlwave-attach-class-tag-classes))
t) ; return t to skip other completions
nil)))