]> code.delx.au - gnu-emacs-elpa/blobdiff - company-gtags.el
Merge pull request #461 from rlph/patch-1
[gnu-emacs-elpa] / company-gtags.el
index d2f1e78ebb0a9ea80b21c8b97dbe78543067fecf..50507838e52d1540e878132bbf49e879ff0bab60 100644 (file)
@@ -1,4 +1,4 @@
-;;; company-gtags.el --- company-mode completion back-end for GNU Global
+;;; company-gtags.el --- company-mode completion backend for GNU Global
 
 ;; Copyright (C) 2009-2011, 2014  Free Software Foundation, Inc.
 
 ;;; Code:
 
 (require 'company)
+(require 'company-template)
 (require 'cl-lib)
 
 (defgroup company-gtags nil
-  "Completion back-end for GNU Global."
+  "Completion backend for GNU Global."
   :group 'company)
 
 (defcustom company-gtags-executable
 
 (defvar-local company-gtags--tags-available-p 'unknown)
 
-(defvar company-gtags-modes '(c-mode c++-mode jde-mode java-mode php-mode))
+(defcustom company-gtags-modes '(prog-mode jde-mode)
+  "Modes that use `company-gtags'.
+In all these modes (and their derivatives) `company-gtags' will perform
+completion."
+  :type '(repeat (symbol :tag "Major mode"))
+  :package-version '(company . "0.8.4"))
 
 (defun company-gtags--tags-available-p ()
   (if (eq company-gtags--tags-available-p 'unknown)
 
 ;;;###autoload
 (defun company-gtags (command &optional arg &rest ignored)
-  "`company-mode' completion back-end for GNU Global."
+  "`company-mode' completion backend for GNU Global."
   (interactive (list 'interactive))
   (cl-case command
     (interactive (company-begin-backend 'company-gtags))
     (prefix (and company-gtags-executable
-                 (memq major-mode company-gtags-modes)
+                 buffer-file-name
+                 (apply #'derived-mode-p company-gtags-modes)
                  (not (company-in-string-or-comment))
                  (company-gtags--tags-available-p)
                  (or (company-grab-symbol) 'stop)))