Mercurial > emacs
changeset 110927:81696c97193b
* lisp/emacs-lisp/lisp.el (lisp-completion-at-point):
Use emacs-lisp-mode-syntax-table for the whole function.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 09 Oct 2010 17:43:43 +0200 |
parents | a98040347deb |
children | a28c57bb896c |
files | lisp/ChangeLog lisp/emacs-lisp/lisp.el |
diffstat | 2 files changed, 34 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat Oct 09 23:51:42 2010 +1300 +++ b/lisp/ChangeLog Sat Oct 09 17:43:43 2010 +0200 @@ -1,3 +1,8 @@ +2010-10-09 Stefan Monnier <monnier@iro.umontreal.ca> + + * emacs-lisp/lisp.el (lisp-completion-at-point): + Use emacs-lisp-mode-syntax-table for the whole function. + 2010-10-09 Richard Sharman <richard_sharman@mitel.com> (tiny change) * progmodes/gdb-ui.el (gdb-mouse-toggle-breakpoint-margin) @@ -7,8 +12,8 @@ 2010-10-05 David Koppelman <koppel@ece.lsu.edu> * hi-lock.el (hi-lock-font-lock-hook): Check font-lock-fontified - instead of font-lock-mode before adding keywords. Removed - hi-lock-mode off code. Removed inhibit hack. + instead of font-lock-mode before adding keywords. + Remove hi-lock-mode off code. Remove inhibit hack. (hi-lock-set-pattern): Only add keywords if font-lock-fontified non-nil; removed hook inhibit hack.
--- a/lisp/emacs-lisp/lisp.el Sat Oct 09 23:51:42 2010 +1300 +++ b/lisp/emacs-lisp/lisp.el Sat Oct 09 17:43:43 2010 +0200 @@ -632,37 +632,37 @@ (defun lisp-completion-at-point (&optional predicate) "Function used for `completion-at-point-functions' in `emacs-lisp-mode'." ;; FIXME: the `end' could be after point? - (let* ((end (point)) - (beg (with-syntax-table emacs-lisp-mode-syntax-table - (save-excursion + (with-syntax-table emacs-lisp-mode-syntax-table + (let* ((end (point)) + (beg (save-excursion (backward-sexp 1) (while (= (char-syntax (following-char)) ?\') (forward-char 1)) - (point)))) - (predicate - (or predicate - (save-excursion - (goto-char beg) - (if (not (eq (char-before) ?\()) - (lambda (sym) ;why not just nil ? -sm - (or (boundp sym) (fboundp sym) - (symbol-plist sym))) - ;; Looks like a funcall position. Let's double check. - (if (condition-case nil - (progn (up-list -2) (forward-char 1) - (eq (char-after) ?\()) - (error nil)) - ;; If the first element of the parent list is an open - ;; parenthesis we are probably not in a funcall position. - ;; Maybe a `let' varlist or something. - nil - ;; Else, we assume that a function name is expected. - 'fboundp)))))) - (list beg end obarray - :predicate predicate - :annotate-function + (point))) + (predicate + (or predicate + (save-excursion + (goto-char beg) + (if (not (eq (char-before) ?\()) + (lambda (sym) ;why not just nil ? -sm + (or (boundp sym) (fboundp sym) + (symbol-plist sym))) + ;; Looks like a funcall position. Let's double check. + (if (condition-case nil + (progn (up-list -2) (forward-char 1) + (eq (char-after) ?\()) + (error nil)) + ;; If the first element of the parent list is an open + ;; paren we are probably not in a funcall position. + ;; Maybe a `let' varlist or something. + nil + ;; Else, we assume that a function name is expected. + 'fboundp)))))) + (list beg end obarray + :predicate predicate + :annotate-function (unless (eq predicate 'fboundp) - (lambda (str) (if (fboundp (intern-soft str)) " <f>")))))) + (lambda (str) (if (fboundp (intern-soft str)) " <f>"))))))) ;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e ;;; lisp.el ends here