Function: semantic-ctxt-current-assignment-emacs-lisp-mode
semantic-ctxt-current-assignment-emacs-lisp-mode is a byte-compiled
function defined in el.el.gz.
Signature
(semantic-ctxt-current-assignment-emacs-lisp-mode &optional POINT)
Documentation
What is the variable being assigned into at POINT?
Override semantic-ctxt-current-assignment in emacs-lisp-mode
buffers.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/bovine/el.el.gz
(define-mode-local-override semantic-ctxt-current-assignment emacs-lisp-mode
(&optional point)
"What is the variable being assigned into at POINT?"
(save-excursion
(if point (goto-char point))
(let ((fn (semantic-ctxt-current-function point))
(point (point)))
;; We should never get lists from here.
(if fn (setq fn (car fn)))
(cond
;; SETQ
((and fn (or (string= fn "setq") (string= fn "set")))
(save-excursion
(condition-case nil
(let ((count 0)
(lastodd nil)
(start nil))
(up-list -1)
(down-list 1)
(forward-sexp 1)
;; Skip over sexp until we pass point.
(while (< (point) point)
(setq count (1+ count))
(forward-comment 1)
(setq start (point))
(forward-sexp 1)
(if (oddp count)
(setq lastodd
(buffer-substring-no-properties start (point))))
)
(if lastodd (list lastodd))
)
(error nil))))
;; This obscure thing finds let statements.
((condition-case nil
(and
(save-excursion
(up-list -2)
(looking-at "(("))
(save-excursion
(up-list -3)
(looking-at "(let")))
(error nil))
(save-excursion
(semantic-beginning-of-command)
;; Use func finding code, since it is the same format.
(semantic-ctxt-current-symbol)))
;;
;; DEFAULT- nothing
(t nil))
)))