(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.
This commit is contained in:
parent
4a787cd276
commit
6e610c7261
2 changed files with 20 additions and 8 deletions
|
@ -631,12 +631,11 @@ considered."
|
|||
|
||||
(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 @@ considered."
|
|||
;; 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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue