Refactor company integration
This commit is contained in:
parent
c7f2f10b18
commit
d073d61531
14 changed files with 45 additions and 27 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue