doomemacs/core/defuns/macros-company.el

24 lines
979 B
EmacsLisp
Raw Normal View History

2015-06-15 09:05:52 +02:00
;;; macros-company.el --- macros for company-mode
;; for ../core-company.el
;;;###autoload
(defmacro def-company-backend! (hooks backends)
2015-06-15 09:05:52 +02:00
"Register a company backend for a mode."
(let* ((hooks (if (listp hooks) hooks (list hooks)))
(def-name (intern (format "narf--init-company-%s"
2016-05-12 02:53:31 -04:00
(mapconcat 'identity (mapcar 'symbol-name hooks) "-"))))
(quoted (eq (car-safe backends) 'quote)))
2015-06-15 09:05:52 +02:00
`(progn
(defun ,def-name ()
(set (make-local-variable 'company-backends)
(append '((,@(mapcar (lambda (backend)
(if quoted
backend
(intern (format "company-%s" backend))))
2016-02-26 00:08:41 -05:00
(if quoted (cadr backends) backends))))
2015-06-15 09:05:52 +02:00
company-backends)))
(add-hook! ,hooks ',def-name))))
2015-06-15 09:05:52 +02:00
(provide 'macros-company)
;;; macros-company.el ends here