]> rtime.felk.cvut.cz Git - sojka/company-mode.git/commitdiff
Added abbrev back-end.
authorNikolaj Schumacher <git@nschum.de>
Mon, 13 Apr 2009 08:20:24 +0000 (10:20 +0200)
committerNikolaj Schumacher <git@nschum.de>
Mon, 13 Apr 2009 08:28:25 +0000 (10:28 +0200)
company-abbrev.el [new file with mode: 0644]
company.el

diff --git a/company-abbrev.el b/company-abbrev.el
new file mode 100644 (file)
index 0000000..b34a821
--- /dev/null
@@ -0,0 +1,43 @@
+;;; company-abbrev.el --- a company-mode completion back-end for abbrev
+;;
+;; Copyright (C) 2009 Nikolaj Schumacher
+;;
+;; This file is part of company 0.2.1.
+;;
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License
+;; as published by the Free Software Foundation; either version 2
+;; of the License, or (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+(require 'company)
+(eval-when-compile (require 'cl))
+(require 'abbrev)
+
+(defun company-abbrev-insert (match)
+  "Replace MATCH with the expanded abbrev."
+  (expand-abbrev))
+
+;;;###autoload
+(defun company-abbrev (command &optional arg &rest ignored)
+  "A `company-mode' completion back-end for abbrev."
+  (interactive (list 'interactive))
+  (case command
+        ('interactive (company-begin-backend 'company-abbrev
+                                             'company-abbrev-insert))
+        ('prefix (or (company-grab "\\_<\\(\\sw\\|\\s_\\)+\\_>") ""))
+        ('candidates (nconc
+                      (delete "" (all-completions arg global-abbrev-table))
+                      (delete "" (all-completions arg local-abbrev-table))))
+        ('meta (abbrev-expansion arg))
+        ('require-match t)))
+
+(provide 'company-abbrev)
+;;; company-abbrev.el ends here
index d73503bfa237f488578fa7980b2ef4ef0c5ec60c..d63db9b5f30775b4da9fc0039fc07a8ee5286587 100644 (file)
 ;; Enable company-mode with M-x company-mode.  For further information look at
 ;; the documentation for `company-mode' (C-h f company-mode RET)
 ;;
+;; If you want to start a specific back-end, call it interactively or use
+;; `company-begin-backend'.  For example:
+;; M-x company-abbrev will prompt for and insert an abbrev.
+;;
 ;; To write your own back-end, look at the documentation for `company-backends'.
 ;; Here is a simple example completing "foo":
 ;;
@@ -65,6 +69,7 @@
 ;;
 ;;; Change Log:
 ;;
+;;    Added abbrev back-end.
 ;;    Back-ends are now interactive.  You can start them with M-x backend-name.
 ;;    Added `company-begin-with' for starting company from elisp-code.
 ;;    Added hooks.