]> code.delx.au - gnu-emacs-elpa/commitdiff
Add company-etags-everywhere
authorDmitry Gutov <dgutov@yandex.ru>
Tue, 8 Dec 2015 21:41:53 +0000 (23:41 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Tue, 8 Dec 2015 21:41:53 +0000 (23:41 +0200)
https://github.com/redguardtoo/emacs.d/commit/2ff305c1ddd7faff6dc9fa0869e39f1e9ed1182d#commitcomment-14837584

NEWS.md
company-etags.el

diff --git a/NEWS.md b/NEWS.md
index 6e92cce574ff596951004493efb5653aadb4a6b5..b3ab1236819f2023122d7c96730a996d2b68100b 100644 (file)
--- a/NEWS.md
+++ b/NEWS.md
@@ -2,6 +2,7 @@
 
 ## Next
 
+* New user option `company-etags-everywhere`.
 * `company-yasnippet` supports `yas-key-syntaxes` better. But we use them in the
   reverse order, preferring the longest key prefix that matches anything. And we
   only consider trigger key prefixes that are at least as long as the symbol at
index d1f6aaa66fb7c45515dd3eab73b310033b954ac9..ef53213ba1964b9470d67564644d88d870e744af 100644 (file)
@@ -45,6 +45,15 @@ buffer automatically."
   :type 'boolean
   :package-version '(company . "0.7.3"))
 
+(defcustom company-etags-everywhere nil
+  "Non-nil to offer completions in comments and strings.
+Set it to t or to a list of major modes."
+  :type '(choice (const :tag "Off" nil)
+                 (const :tag "Any supported mode" t)
+                 (repeat :tag "Some major modes"
+                         (symbol :tag "Major mode")))
+  :package-version '(company . "0.9.0"))
+
 (defvar company-etags-modes '(prog-mode c-mode objc-mode c++-mode java-mode
                               jde-mode pascal-mode perl-mode python-mode))
 
@@ -80,8 +89,10 @@ buffer automatically."
   (interactive (list 'interactive))
   (cl-case command
     (interactive (company-begin-backend 'company-etags))
-    (prefix (and (apply 'derived-mode-p company-etags-modes)
-                 (not (company-in-string-or-comment))
+    (prefix (and (apply #'derived-mode-p company-etags-modes)
+                 (or (eq t company-etags-everywhere)
+                     (apply #'derived-mode-p company-etags-everywhere)
+                     (not (company-in-string-or-comment)))
                  (company-etags-buffer-table)
                  (or (company-grab-symbol) 'stop)))
     (candidates (company-etags--candidates arg))