Mercurial > emacs
changeset 108001:3d52b4ac976f
(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.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 20 Apr 2010 12:37:31 -0400 |
parents | 14e8111ba66e |
children | c609e6e60b3d |
files | lisp/ChangeLog lisp/emacs-lisp/lisp.el |
diffstat | 2 files changed, 20 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- 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 <monnier@iro.umontreal.ca> + * 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.
--- 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)) " <f>")))))) + (lambda (str) (if (fboundp (intern-soft str)) " <f>"))))))) ;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e ;;; lisp.el ends here