# HG changeset patch # User Stefan Monnier # Date 1271781451 14400 # Node ID 3d52b4ac976fcf4377021375521173a81702f513 # Parent 14e8111ba66e9a88cc1a8ee3e9a22e97f0b21e62 (lisp-completion-at-point): Complete around point. I.e. include text after point in the completion region. Also, return nil when we're not after/in a symbol. diff -r 14e8111ba66e -r 3d52b4ac976f lisp/ChangeLog --- a/lisp/ChangeLog Tue Apr 20 11:46:52 2010 -0400 +++ b/lisp/ChangeLog Tue Apr 20 12:37:31 2010 -0400 @@ -1,5 +1,9 @@ 2010-04-20 Stefan Monnier + * emacs-lisp/lisp.el (lisp-completion-at-point): Complete around point. + I.e. include text after point in the completion region. + Also, return nil when we're not after/in a symbol. + * international/mule-cmds.el (view-hello-file): Don't fiddle with the default enable-multibyte-characters. diff -r 14e8111ba66e -r 3d52b4ac976f lisp/emacs-lisp/lisp.el --- a/lisp/emacs-lisp/lisp.el Tue Apr 20 11:46:52 2010 -0400 +++ b/lisp/emacs-lisp/lisp.el Tue Apr 20 12:37:31 2010 -0400 @@ -631,12 +631,11 @@ (defun lisp-completion-at-point (&optional predicate) ;; FIXME: the `end' could be after point? - (let* ((end (point)) + (let* ((pos (point)) (beg (with-syntax-table emacs-lisp-mode-syntax-table (save-excursion (backward-sexp 1) - (while (= (char-syntax (following-char)) ?\') - (forward-char 1)) + (skip-syntax-forward "'") (point)))) (predicate (or predicate @@ -656,12 +655,21 @@ ;; 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 + 'fboundp))))) + (end + (unless (or (eq beg (point-max)) + (member (char-syntax (char-after beg)) '(?\( ?\)))) + (save-excursion + (goto-char beg) + (forward-sexp 1) + (when (>= (point) pos) + (point)))))) + (when end + (list beg end obarray + :predicate predicate + :annotate-function (unless (eq predicate 'fboundp) - (lambda (str) (if (fboundp (intern-soft str)) " ")))))) + (lambda (str) (if (fboundp (intern-soft str)) " "))))))) ;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e ;;; lisp.el ends here