[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] 20/52: Add new possible value to `company-dabbrev-code-other-buff
From: |
Dmitry Gutov |
Subject: |
[elpa] 20/52: Add new possible value to `company-dabbrev-code-other-buffers' |
Date: |
Tue, 01 Jul 2014 11:53:15 +0000 |
dgutov pushed a commit to branch master
in repository elpa.
commit f855e5a106b853e66e6bbf23acfd5370d3c946cb
Author: Dmitry Gutov <address@hidden>
Date: Wed Jun 4 05:25:39 2014 +0300
Add new possible value to `company-dabbrev-code-other-buffers'
#125
---
NEWS.md | 1 +
company-dabbrev-code.el | 31 ++++++++++++++++++-------------
company-dabbrev.el | 26 ++++++++++++++------------
3 files changed, 33 insertions(+), 25 deletions(-)
diff --git a/NEWS.md b/NEWS.md
index 6db3e21..137319d 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -4,6 +4,7 @@
* `company-clang` uses the standard header search paths by default.
* New user option `company-tooltip-flip-when-above`.
+* User option `company-dabbrev-code-other-buffers` can have a new value:
`code`.
## 2014-04-19 (0.8.0)
diff --git a/company-dabbrev-code.el b/company-dabbrev-code.el
index 1039e4a..371d908 100644
--- a/company-dabbrev-code.el
+++ b/company-dabbrev-code.el
@@ -1,6 +1,6 @@
-;;; company-dabbrev-code.el --- dabbrev-like company-mode back-end for code
+;;; company-dabbrev-code.el --- dabbrev-like company-mode back-end for code
-*- lexical-binding: t -*-
-;; Copyright (C) 2009, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2011, 2014 Free Software Foundation, Inc.
;; Author: Nikolaj Schumacher
@@ -34,25 +34,26 @@
:group 'company)
(defcustom company-dabbrev-code-modes
- '(asm-mode batch-file-mode c++-mode c-mode cperl-mode csharp-mode css-mode
- emacs-lisp-mode erlang-mode f90-mode fortran-mode haskell-mode java-mode
- javascript-mode jde-mode js2-mode lisp-mode lua-mode objc-mode perl-mode
- php-mode prog-mode python-mode ruby-mode scheme-mode shell-script-mode)
+ '(prog-mode
+ batch-file-mode csharp-mode css-mode erlang-mode haskell-mode jde-mode
+ lua-mode python-mode)
"Modes that use `company-dabbrev-code'.
-In all these modes `company-dabbrev-code' will complete only symbols, not text
-in comments or strings. In other modes `company-dabbrev-code' will pass
control
-to other back-ends \(e.g. `company-dabbrev'\).
-Value t means complete in all modes."
+In all these modes (and their derivatives) `company-dabbrev-code' will
+complete only symbols, not text in comments or strings. In other modes
+`company-dabbrev-code' will pass control to other back-ends
+\(e.g. `company-dabbrev'\). Value t means complete in all modes."
:type '(choice (repeat (symbol :tag "Major mode"))
(const tag "All modes" t)))
(defcustom company-dabbrev-code-other-buffers t
"Determines whether `company-dabbrev-code' should search other buffers.
If `all', search all other buffers. If t, search buffers with the same
-major mode.
+major mode. If `code', search all buffers with major modes in
+`company-dabbrev-code-modes', or derived from one of them.
See also `company-dabbrev-code-time-limit'."
:type '(choice (const :tag "Off" nil)
(const :tag "Same major mode" t)
+ (const :tag "Code major modes" code)
(const :tag "All" all)))
(defcustom company-dabbrev-code-time-limit .1
@@ -83,7 +84,7 @@ comments or strings."
(cl-case command
(interactive (company-begin-backend 'company-dabbrev-code))
(prefix (and (or (eq t company-dabbrev-code-modes)
- (apply 'derived-mode-p company-dabbrev-code-modes))
+ (apply #'derived-mode-p company-dabbrev-code-modes))
(or company-dabbrev-code-everywhere
(not (company-in-string-or-comment)))
(or (company-grab-symbol) 'stop)))
@@ -91,7 +92,11 @@ comments or strings."
(company-dabbrev--search
(company-dabbrev-code--make-regexp arg)
company-dabbrev-code-time-limit
- company-dabbrev-code-other-buffers t)))
+ (pcase company-dabbrev-code-other-buffers
+ (`t (list major-mode))
+ (`code company-dabbrev-code-modes)
+ (`all `all))
+ t)))
(ignore-case company-dabbrev-code-ignore-case)
(duplicates t)))
diff --git a/company-dabbrev.el b/company-dabbrev.el
index 401fcc9..7fd20b6 100644
--- a/company-dabbrev.el
+++ b/company-dabbrev.el
@@ -1,6 +1,6 @@
-;;; company-dabbrev.el --- dabbrev-like company-mode completion back-end
+;;; company-dabbrev.el --- dabbrev-like company-mode completion back-end -*-
lexical-binding: t -*-
-;; Copyright (C) 2009, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2011, 2014 Free Software Foundation, Inc.
;; Author: Nikolaj Schumacher
@@ -108,19 +108,19 @@ If you set this value to nil, you may also want to set
(push match symbols))))
symbols)))
-(defun company-dabbrev--search (regexp &optional limit other-buffers
+(defun company-dabbrev--search (regexp &optional limit other-buffer-modes
ignore-comments)
(let* ((start (current-time))
(symbols (company-dabbrev--search-buffer regexp (point) nil start
limit
ignore-comments)))
- (when other-buffers
+ (when other-buffer-modes
(cl-dolist (buffer (delq (current-buffer) (buffer-list)))
- (and (or (eq other-buffers 'all)
- (eq (buffer-local-value 'major-mode buffer) major-mode))
- (with-current-buffer buffer
- (setq symbols
- (company-dabbrev--search-buffer regexp nil symbols start
- limit ignore-comments))))
+ (with-current-buffer buffer
+ (when (or (eq other-buffer-modes 'all)
+ (apply #'derived-mode-p other-buffer-modes))
+ (setq symbols
+ (company-dabbrev--search-buffer regexp nil symbols start
+ limit ignore-comments))))
(and limit
(> (float-time (time-since start)) limit)
(cl-return))))
@@ -135,8 +135,10 @@ If you set this value to nil, you may also want to set
(prefix (company-grab-word))
(candidates
(let ((words (company-dabbrev--search (company-dabbrev--make-regexp arg)
- company-dabbrev-time-limit
- company-dabbrev-other-buffers))
+ company-dabbrev-time-limit
+ (pcase company-dabbrev-other-buffers
+ (`t (list major-mode))
+ (`all `all))))
(downcase-p (if (eq company-dabbrev-downcase 'case-replace)
case-replace
company-dabbrev-downcase)))
- [elpa] 10/52: company--multi-backend-adapter-candidates: compare string values of prefix, (continued)
- [elpa] 10/52: company--multi-backend-adapter-candidates: compare string values of prefix, Dmitry Gutov, 2014/07/01
- [elpa] 12/52: company-clang--annotation: include method qualifiers in the annotation, Dmitry Gutov, 2014/07/01
- [elpa] 13/52: NEWS: document the change in clang invocation, Dmitry Gutov, 2014/07/01
- [elpa] 14/52: company--continue: don't pass the new prefix to `company-cancel', Dmitry Gutov, 2014/07/01
- [elpa] 15/52: company-files-complete: move files in subdirs to the end, Dmitry Gutov, 2014/07/01
- [elpa] 16/52: Introduce company-tooltip-flip-when-above, Dmitry Gutov, 2014/07/01
- [elpa] 17/52: Fix typo, Dmitry Gutov, 2014/07/01
- [elpa] 18/52: extended gtags functionality #90 showing annotations and meta, Dmitry Gutov, 2014/07/01
- [elpa] 21/52: Merge pull request #126 from ksjogo/gtags, Dmitry Gutov, 2014/07/01
- [elpa] 19/52: fixing let in gtags annotation, Dmitry Gutov, 2014/07/01
- [elpa] 20/52: Add new possible value to `company-dabbrev-code-other-buffers',
Dmitry Gutov <=
- [elpa] 03/52: company-clang: don't mistake scoping operator for objc args, Dmitry Gutov, 2014/07/01
- [elpa] 24/52: Merge pull request #127 from bbatsov/doc-fixes, Dmitry Gutov, 2014/07/01
- [elpa] 23/52: Small fixes, Dmitry Gutov, 2014/07/01
- [elpa] 25/52: Some indentation fixes, Dmitry Gutov, 2014/07/01
- [elpa] 27/52: Merge pull request #128 from bbatsov/defvar-local, Dmitry Gutov, 2014/07/01
- [elpa] 30/52: Merge pull request #129 from bbatsov/c-h, Dmitry Gutov, 2014/07/01
- [elpa] 22/52: Update NEWS, Dmitry Gutov, 2014/07/01
- [elpa] 26/52: Backport defvar-local from Emacs 24.2, Dmitry Gutov, 2014/07/01
- [elpa] 28/52: Add package-version property to vars after in 0.7.0, Dmitry Gutov, 2014/07/01
- [elpa] 29/52: Bind company-show-doc-buffer to C-h, Dmitry Gutov, 2014/07/01