]> code.delx.au - gnu-emacs-elpa/blobdiff - company-ispell.el
Added interactive form for back-ends.
[gnu-emacs-elpa] / company-ispell.el
index b5b1a616f03e7412459d031182d16b69242874c2..3096148c5b46f87676f7a745c2342c994fa4ef86 100644 (file)
@@ -2,7 +2,7 @@
 ;;
 ;; Copyright (C) 2009 Nikolaj Schumacher
 ;;
-;; This file is part of company.
+;; 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
@@ -28,9 +28,27 @@ If nil, use `ispell-complete-word-dict'."
   :type '(choice (const :tag "default (nil)" nil)
                  (file :tag "dictionary" t)))
 
+(defvar company-ispell-available 'unknown)
+
+(defun company-ispell-available ()
+  (when (eq company-ispell-available 'unknown)
+    (condition-case err
+        (progn
+          (lookup-words "WHATEVER")
+          (setq company-ispell-available t))
+      (error
+       (message "Company: ispell-look-command not found")
+       (setq company-ispell-available nil))))
+  company-ispell-available)
+
+;;;###autoload
 (defun company-ispell (command &optional arg &rest ignored)
+  "A `company-mode' completion back-end using ispell."
+  (interactive (list 'interactive))
   (case command
-    ('prefix (company-grab "\\<\\w+\\>"))
+    ('interactive (company-begin-backend 'company-ispell))
+    ('prefix (when (company-ispell-available)
+               (company-grab "\\<\\w+\\>")))
     ('candidates (lookup-words arg (or company-ispell-dictionary
                                        ispell-complete-word-dict)))
     ('sorted t)