]> code.delx.au - gnu-emacs-elpa/blob - company-elisp.el
Moved back-ends to separate files.
[gnu-emacs-elpa] / 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