-;;; 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)))