]> code.delx.au - gnu-emacs-elpa/blobdiff - company-etags.el
company-search-abort: Move predicate reset to the mode function
[gnu-emacs-elpa] / company-etags.el
index 0c84458a1b8f278e035a05678a3c8339d9b4d86e..1c01c91673195c05d3662370b3854722c9cfc5e3 100644 (file)
@@ -25,8 +25,8 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
 (require 'company)
+(require 'cl-lib)
 (require 'etags)
 
 (defgroup company-etags nil
@@ -42,19 +42,19 @@ buffer automatically."
 
 (defcustom company-etags-ignore-case nil
   "Non-nil to ignore case in completion candidates."
-  :type 'boolean)
+  :type 'boolean
+  :package-version '(company . "0.7.3"))
 
 (defvar company-etags-modes '(prog-mode c-mode objc-mode c++-mode java-mode
                               jde-mode pascal-mode perl-mode python-mode))
 
-(defvar company-etags-buffer-table 'unknown)
-(make-variable-buffer-local 'company-etags-buffer-table)
+(defvar-local company-etags-buffer-table 'unknown)
 
 (defun company-etags-find-table ()
-  (let ((file (company-locate-dominating-file (or buffer-file-name
-                                                  default-directory)
-                                              "TAGS")))
-    (when file
+  (let ((file (locate-dominating-file (or buffer-file-name
+                                          default-directory)
+                                      "TAGS")))
+    (when (and file (file-regular-p file))
       (list (expand-file-name file)))))
 
 (defun company-etags-buffer-table ()
@@ -76,7 +76,7 @@ buffer automatically."
 (defun company-etags (command &optional arg &rest ignored)
   "`company-mode' completion back-end for etags."
   (interactive (list 'interactive))
-  (case command
+  (cl-case command
     (interactive (company-begin-backend 'company-etags))
     (prefix (and (apply 'derived-mode-p company-etags-modes)
                  (not (company-in-string-or-comment))