From 46c94cd599374556d65daffa173e7028df69bc1c Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Tue, 5 May 2015 04:54:01 +0300 Subject: [PATCH] Make sure we're inside the let bindings * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Make sure we're inside the let bindings. * test/automated/elisp-mode-tests.el (elisp-completes-functions-after-let-bindings): New test. --- lisp/progmodes/elisp-mode.el | 14 +++++++------- test/automated/elisp-mode-tests.el | 10 +++++++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 9b7bc219923..40561515ed2 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -544,13 +544,13 @@ It can be quoted, or be inside a quoted form." (< (point) beg))))) (list t obarray :predicate (lambda (sym) (get sym 'error-conditions)))) - ((or `let `let* - (and ?\( - (guard (save-excursion - (goto-char (1- beg)) - (up-list -1) - (forward-symbol -1) - (looking-at "\\_"))))) + ((and (or ?\( `let `let*) + (guard (save-excursion + (goto-char (1- beg)) + (when (eq parent ?\() + (up-list -1)) + (forward-symbol -1) + (looking-at "\\_")))) (list t obarray :predicate #'boundp :company-doc-buffer #'elisp--company-doc-buffer diff --git a/test/automated/elisp-mode-tests.el b/test/automated/elisp-mode-tests.el index 26f903dbd0c..bfecfe7dc6b 100644 --- a/test/automated/elisp-mode-tests.el +++ b/test/automated/elisp-mode-tests.el @@ -84,7 +84,7 @@ (should (member "bar" comps)) (should (member "baz" comps))))) -(ert-deftest completest-variables-in-let-bindings () +(ert-deftest elisp-completest-variables-in-let-bindings () (dolist (text '("(let (ba" "(let* ((ba")) (with-temp-buffer (emacs-lisp-mode) @@ -93,5 +93,13 @@ (should (member "backup-inhibited" comps)) (should-not (member "backup-buffer" comps)))))) +(ert-deftest elisp-completes-functions-after-let-bindings () + (with-temp-buffer + (emacs-lisp-mode) + (insert "(let ((bar 1) (baz 2)) (ba") + (let ((comps (elisp--test-completions))) + (should (member "backup-buffer" comps)) + (should-not (member "backup-inhibited" comps))))) + (provide 'elisp-mode-tests) ;;; elisp-mode-tests.el ends here -- 2.39.2