]> rtime.felk.cvut.cz Git - sojka/company-mode.git/blob - company-elisp.el
Moved back-ends to separate files.
[sojka/company-mode.git] / company-elisp.el
1 (require 'company)
2 (eval-when-compile (require 'cl))
3
4 (defvar company-lisp-symbol-regexp
5   "\\_<\\(\\sw\\|\\s_\\)+\\_>\\=")
6
7 (defun company-grab-lisp-symbol ()
8   (let ((prefix (or (company-grab company-lisp-symbol-regexp) "")))
9     (unless (and (company-in-string-or-comment (- (point) (length prefix)))
10                  (/= (char-before (- (point) (length prefix))) ?`))
11       prefix)))
12
13 (defun company-elisp (command &optional arg &rest ignored)
14   (case command
15     ('prefix (and (eq major-mode 'emacs-lisp-mode)
16                   (company-grab-lisp-symbol)))
17     ('candidates (let ((completion-ignore-case nil))
18                    (all-completions arg obarray
19                                     (lambda (symbol) (or (boundp symbol)
20                                                          (fboundp symbol))))))))
21
22 (provide 'company-elisp)
23 ;;; company-elisp.el ends here