From: Nikolaj Schumacher Date: Mon, 13 Apr 2009 08:20:24 +0000 (+0200) Subject: Added abbrev back-end. X-Git-Tag: 0.3~8 X-Git-Url: https://rtime.felk.cvut.cz/gitweb/sojka/company-mode.git/commitdiff_plain/5a3f881ea489ff202135f6c90ec9fa87eedee86d Added abbrev back-end. --- diff --git a/company-abbrev.el b/company-abbrev.el new file mode 100644 index 0000000..b34a821 --- /dev/null +++ b/company-abbrev.el @@ -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 . + +(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 diff --git a/company.el b/company.el index d73503b..d63db9b 100644 --- a/company.el +++ b/company.el @@ -39,6 +39,10 @@ ;; 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.