mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-24 07:20:37 +00:00
(function-called-at-point): Try `find-tag-default' when other methods failed.
This commit is contained in:
parent
fc11ddc8d7
commit
542e904c45
55
lisp/help.el
55
lisp/help.el
@ -237,32 +237,35 @@ C-w Display information on absence of warranty for GNU Emacs."
|
||||
(defun function-called-at-point ()
|
||||
"Return a function around point or else called by the list containing point.
|
||||
If that doesn't give a function, return nil."
|
||||
(with-syntax-table emacs-lisp-mode-syntax-table
|
||||
(or (condition-case ()
|
||||
(save-excursion
|
||||
(or (not (zerop (skip-syntax-backward "_w")))
|
||||
(eq (char-syntax (following-char)) ?w)
|
||||
(eq (char-syntax (following-char)) ?_)
|
||||
(forward-sexp -1))
|
||||
(skip-chars-forward "'")
|
||||
(let ((obj (read (current-buffer))))
|
||||
(and (symbolp obj) (fboundp obj) obj)))
|
||||
(error nil))
|
||||
(condition-case ()
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(narrow-to-region (max (point-min)
|
||||
(- (point) 1000)) (point-max))
|
||||
;; Move up to surrounding paren, then after the open.
|
||||
(backward-up-list 1)
|
||||
(forward-char 1)
|
||||
;; If there is space here, this is probably something
|
||||
;; other than a real Lisp function call, so ignore it.
|
||||
(if (looking-at "[ \t]")
|
||||
(error "Probably not a Lisp function call"))
|
||||
(let ((obj (read (current-buffer))))
|
||||
(and (symbolp obj) (fboundp obj) obj))))
|
||||
(error nil)))))
|
||||
(or (with-syntax-table emacs-lisp-mode-syntax-table
|
||||
(or (condition-case ()
|
||||
(save-excursion
|
||||
(or (not (zerop (skip-syntax-backward "_w")))
|
||||
(eq (char-syntax (following-char)) ?w)
|
||||
(eq (char-syntax (following-char)) ?_)
|
||||
(forward-sexp -1))
|
||||
(skip-chars-forward "'")
|
||||
(let ((obj (read (current-buffer))))
|
||||
(and (symbolp obj) (fboundp obj) obj)))
|
||||
(error nil))
|
||||
(condition-case ()
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(narrow-to-region (max (point-min)
|
||||
(- (point) 1000)) (point-max))
|
||||
;; Move up to surrounding paren, then after the open.
|
||||
(backward-up-list 1)
|
||||
(forward-char 1)
|
||||
;; If there is space here, this is probably something
|
||||
;; other than a real Lisp function call, so ignore it.
|
||||
(if (looking-at "[ \t]")
|
||||
(error "Probably not a Lisp function call"))
|
||||
(let ((obj (read (current-buffer))))
|
||||
(and (symbolp obj) (fboundp obj) obj))))
|
||||
(error nil))))
|
||||
(let* ((str (find-tag-default))
|
||||
(obj (if str (read str))))
|
||||
(and (symbolp obj) (fboundp obj) obj))))
|
||||
|
||||
|
||||
;;; `User' help functions
|
||||
|
Loading…
Reference in New Issue
Block a user