Refactor company integration

This commit is contained in:
Henrik Lissner 2015-10-14 03:39:32 -04:00
parent c7f2f10b18
commit d073d61531
14 changed files with 45 additions and 27 deletions

View file

@ -23,19 +23,24 @@
company-frontends '(company-pseudo-tooltip-unless-just-one-frontend
company-echo-metadata-frontend
company-preview-if-just-one-frontend)
company-backends '((company-capf
company-yasnippet
company-dabbrev-code
company-files
company-keywords)
company-dabbrev)
company-dict-dir (concat narf-private-dir "dict/"))
:config
;; (use-package company-dict :defer t)
;; (setq-default company-backends (append '(company-dict company-keywords) company-backends))
(add-to-list 'company-transformers 'company-sort-by-occurrence)
(setq-default company-backends (append '(company-keywords) company-backends))
;; TODO: Investigate yasnippet
(after! yasnippet
(setq-default company-backends (append '(company-capf company-yasnippet) company-backends)))
(add-to-list 'company-transformers 'company-sort-by-occurrence)
(add-company-backend! nxml-mode (nxml yasnippet))
(add-company-backend! emacs-lisp-mode (elisp yasnippet))
(define-company-backend! nxml-mode (nxml yasnippet))
(define-company-backend! emacs-lisp-mode (elisp yasnippet))
;; (use-package company-dict :defer t)
;; (setq-default company-backends (append '(company-dict company-keywords) company-backends))
;; Rewrite evil-complete to use company-dabbrev
(setq company-dabbrev-code-other-buffers t
@ -51,6 +56,5 @@
(global-company-mode +1))
(provide 'core-company)
;;; core-company.el ends here

View file

@ -14,5 +14,18 @@
(company-complete)
(call-interactively 'company-select-previous))))
;;;###autoload
(defun narf/company-complete-common-or-complete-full ()
(interactive)
(when (company-manual-begin)
(if (eq last-command #'company-complete-common-or-cycle)
(let ((company-selection-wrap-around t))
(call-interactively #'company-complete-selection))
(let ((buffer-mod-tick (buffer-chars-modified-tick)))
(call-interactively #'company-complete-common)
(when (= buffer-mod-tick (buffer-chars-modified-tick))
(call-interactively #'company-complete-selection)
(call-interactively #'company-complete))))))
(provide 'defuns-company)
;;; defuns-company.el ends here

View file

@ -2,7 +2,7 @@
;; for ../core-company.el
;;;###autoload
(defmacro add-company-backend! (hook backends)
(defmacro define-company-backend! (hook backends)
"Register a company backend for a mode."
(let ((def-name (intern (format "narf--init-company-%s" hook)))
(quoted (eq (car-safe backends) 'quote)))