]> code.delx.au - gnu-emacs-elpa/blobdiff - company-etags.el
company-etags-file-table: Check that TAGS is not a directory
[gnu-emacs-elpa] / company-etags.el
index 6f4912ff4917d16955fd21701fc59466323a9e41..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 (locate-dominating-file (or buffer-file-name
                                           default-directory)
                                       "TAGS")))
-    (when file
+    (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))