* help.el (function-called-at-point):
* help-fns.el (variable-at-point): Use emacs-lisp-mode-syntax-table even when calling find-tag-default.
This commit is contained in:
parent
bb9ba46f21
commit
2e6750c8f8
3 changed files with 53 additions and 47 deletions
|
@ -1,3 +1,9 @@
|
|||
2008-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* help.el (function-called-at-point):
|
||||
* help-fns.el (variable-at-point): Use emacs-lisp-mode-syntax-table
|
||||
even when calling find-tag-default.
|
||||
|
||||
2008-06-06 Daniel Colascione <danc@merrillpress.com>
|
||||
|
||||
* nxml/nxml-mode.el (nxml-syntax-highlight-flag)
|
||||
|
|
|
@ -443,8 +443,8 @@ face (according to `face-differs-from-default-p')."
|
|||
"Return the bound variable symbol found at or before point.
|
||||
Return 0 if there is no such symbol.
|
||||
If ANY-SYMBOL is non-nil, don't insist the symbol be bound."
|
||||
(or (condition-case ()
|
||||
(with-syntax-table emacs-lisp-mode-syntax-table
|
||||
(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)
|
||||
|
@ -452,17 +452,17 @@ If ANY-SYMBOL is non-nil, don't insist the symbol be bound."
|
|||
(forward-sexp -1))
|
||||
(skip-chars-forward "'")
|
||||
(let ((obj (read (current-buffer))))
|
||||
(and (symbolp obj) (boundp obj) obj))))
|
||||
(error nil))
|
||||
(let* ((str (find-tag-default))
|
||||
(sym (if str (intern-soft str))))
|
||||
(if (and sym (or any-symbol (boundp sym)))
|
||||
sym
|
||||
(save-match-data
|
||||
(when (and str (string-match "\\`\\W*\\(.*?\\)\\W*\\'" str))
|
||||
(setq sym (intern-soft (match-string 1 str)))
|
||||
(and (or any-symbol (boundp sym)) sym)))))
|
||||
0))
|
||||
(and (symbolp obj) (boundp obj) obj)))
|
||||
(error nil))
|
||||
(let* ((str (find-tag-default))
|
||||
(sym (if str (intern-soft str))))
|
||||
(if (and sym (or any-symbol (boundp sym)))
|
||||
sym
|
||||
(save-match-data
|
||||
(when (and str (string-match "\\`\\W*\\(.*?\\)\\W*\\'" str))
|
||||
(setq sym (intern-soft (match-string 1 str)))
|
||||
(and (or any-symbol (boundp sym)) sym)))))
|
||||
0)))
|
||||
|
||||
(defun describe-variable-custom-version-info (variable)
|
||||
(let ((custom-version (get variable 'custom-version))
|
||||
|
|
68
lisp/help.el
68
lisp/help.el
|
@ -254,40 +254,40 @@ C-w 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."
|
||||
(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))
|
||||
(sym (if str (intern-soft str))))
|
||||
(if (and sym (fboundp sym))
|
||||
sym
|
||||
(save-match-data
|
||||
(when (and str (string-match "\\`\\W*\\(.*?\\)\\W*\\'" str))
|
||||
(setq sym (intern-soft (match-string 1 str)))
|
||||
(and (fboundp sym) sym)))))))
|
||||
(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))
|
||||
(sym (if str (intern-soft str))))
|
||||
(if (and sym (fboundp sym))
|
||||
sym
|
||||
(save-match-data
|
||||
(when (and str (string-match "\\`\\W*\\(.*?\\)\\W*\\'" str))
|
||||
(setq sym (intern-soft (match-string 1 str)))
|
||||
(and (fboundp sym) sym))))))))
|
||||
|
||||
|
||||
;;; `User' help functions
|
||||
|
|
Loading…
Add table
Reference in a new issue