]> code.delx.au - gnu-emacs-elpa/commitdiff
Offer more Lisp variables as candidates.
authorNikolaj Schumacher <git@nschum.de>
Sat, 21 Mar 2009 21:55:50 +0000 (22:55 +0100)
committerNikolaj Schumacher <git@nschum.de>
Sun, 22 Mar 2009 07:47:02 +0000 (08:47 +0100)
company-elisp.el
company.el

index 341eca8078c41607290365de6dd02905153a4dad..b3536eb8ab7267cb5a64d4d9309d4250e0f85f39 100644 (file)
 (defvar company-elisp-parse-limit 30)
 (defvar company-elisp-parse-depth 100)
 
-(defun company-elisp-parse-let (prefix vars)
+(defvar company-elisp-binding-regexp
+  (concat "([ \t\n]*\\_<" (regexp-opt '("let" "defun" "defmacro" "defsubst"
+                                        "lambda" "lexical-let"))
+          "\\*?"))
+
+(defun company-elisp-parse-local (prefix vars)
   (let ((regexp (concat "[ \t\n]*\\(" (regexp-quote prefix)
                         "\\(?:\\sw\\|\\s_\\)*\\_>\\)")))
     (ignore-errors
@@ -44,7 +49,7 @@
         (dotimes (i company-elisp-parse-depth)
           (up-list -1)
           (save-excursion
-            (when (looking-at "([ \t\n]*let")
+            (when (looking-at company-elisp-binding-regexp)
               (down-list 2)
               (ignore-errors
                 (dotimes (i company-elisp-parse-limit)
@@ -60,7 +65,7 @@
 (defun company-elisp-candidates (prefix)
   (let* ((completion-ignore-case nil)
          (candidates (all-completions prefix obarray 'company-elisp-predicate)))
-    (company-elisp-parse-let prefix candidates)))
+    (company-elisp-parse-local prefix candidates)))
 
 (defun company-elisp-doc (symbol)
   (let* ((symbol (intern symbol))
index 9c62ed191f21703ee3105855083ee119c1ac5f88..d93a66336e9c083815c82b56591fa4b2508d378b 100644 (file)
@@ -55,6 +55,8 @@
 ;;
 ;;; Change Log:
 ;;
+;;    More local Lisp variables are now included in the candidates.
+;;
 ;; 2009-03-21 (0.1.5)
 ;;    Fixed elisp documentation buffer always showing the same doc.
 ;;    Added `company-echo-strip-common-frontend'.