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)))
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
:config
|
||||
(after! company
|
||||
(require 'company-cmake)
|
||||
(add-company-backend! cmake-mode (cmake yasnippet))))
|
||||
(define-company-backend! cmake-mode (cmake yasnippet))))
|
||||
|
||||
(use-package glsl-mode
|
||||
:mode ("\\.glsl\\'" "\\.vert\\'" "\\.frag\\'" "\\.geom\\'"))
|
||||
|
@ -36,9 +36,9 @@
|
|||
(after! company
|
||||
;; TODO Clang is *really* slow in larger projects, maybe replace it with
|
||||
;; irony-mode or ycmd?
|
||||
(add-company-backend! c-mode (c-headers clang))
|
||||
(add-company-backend! c++-mode (c-headers clang))
|
||||
(add-company-backend! objc-mode (c-headers xcode)))
|
||||
(define-company-backend! c-mode (c-headers clang))
|
||||
(define-company-backend! c++-mode (c-headers clang))
|
||||
(define-company-backend! objc-mode (c-headers xcode)))
|
||||
|
||||
(add-hook! c++-mode 'narf|init-c++-C11-highlights)
|
||||
(add-hook! c++-mode (setq flycheck-clang-language-standard "c++11"
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
:n "ta" (λ (omnisharp-unit-test "all"))))
|
||||
|
||||
(after! company
|
||||
(add-company-backend! csharp-mode (omnisharp))
|
||||
(define-company-backend! csharp-mode (omnisharp))
|
||||
(add-hook! csharp-mode 'turn-on-eldoc-mode))
|
||||
|
||||
(mapc (lambda (x)
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
(use-package company-go
|
||||
:config
|
||||
(add-company-backend! go-mode (go yasnippet))))
|
||||
(define-company-backend! go-mode (go yasnippet))))
|
||||
|
||||
(provide 'module-go)
|
||||
;;; module-go.el ends here
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
:config
|
||||
(after! company
|
||||
(require 'company-tern)
|
||||
(add-company-backend! js2-mode (tern))))
|
||||
(define-company-backend! js2-mode (tern))))
|
||||
|
||||
(use-package unityjs-mode
|
||||
:mode "/Assets/.*\\.js$"
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
php-extras-eldoc-functions-file (concat narf-temp-dir "php-extras-eldoc-functions"))
|
||||
:config
|
||||
(require 'php-extras)
|
||||
(add-company-backend! php-mode '(php-extras-company))
|
||||
(define-company-backend! php-mode '(php-extras-company))
|
||||
|
||||
;; TODO Tie into emr
|
||||
(require 'php-refactor-mode)
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
(after! company
|
||||
(require 'company-anaconda)
|
||||
(add-company-backend! python-mode (anaconda)))
|
||||
(define-company-backend! python-mode (anaconda)))
|
||||
|
||||
(after! emr
|
||||
(mapc (lambda (x)
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
(evil-set-initial-state 'inf-ruby-mode 'insert)
|
||||
(after! company
|
||||
(require 'company-inf-ruby)
|
||||
(add-company-backend! inf-ruby-mode (inf-ruby))))
|
||||
(define-company-backend! inf-ruby-mode (inf-ruby))))
|
||||
|
||||
(use-package robe
|
||||
:commands (robe-mode robe-start ruby-load-file)
|
||||
|
@ -71,7 +71,7 @@
|
|||
:config
|
||||
(after! company
|
||||
(require 'company-robe)
|
||||
(add-company-backend! ruby-mode (robe))))
|
||||
(define-company-backend! ruby-mode (robe))))
|
||||
|
||||
(use-package ruby-refactor
|
||||
:after emr
|
||||
|
|
|
@ -17,13 +17,14 @@
|
|||
:config (add-hook! rust-mode 'flycheck-mode))
|
||||
|
||||
(use-package racer
|
||||
:if (! (file-exists-p "/usr/local/bin/racer"))
|
||||
:config
|
||||
(bind! :m "gd" 'racer-find-definition)
|
||||
(setq racer-cmd "/usr/local/bin/racer"
|
||||
racer-rust-src-path "~/Dropbox/lib/rust/src/")
|
||||
(bind! :m "gd" 'racer-find-definition)
|
||||
|
||||
(add-hook! rust-mode '(racer-mode eldoc-mode flycheck-rust-setup))
|
||||
(add-company-backend! rust-mode (racer))))
|
||||
(define-company-backend! rust-mode (racer))))
|
||||
|
||||
(provide 'module-rust)
|
||||
;;; module-rust.el ends here
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
:mode "\\.swift$"
|
||||
:config
|
||||
(after! flycheck (add-to-list 'flycheck-checkers 'swift))
|
||||
(after! company (add-company-backend! swift-mode (xcode))))
|
||||
(after! company (define-company-backend! swift-mode (xcode))))
|
||||
|
||||
;; TODO Set up emacs task runners for fruitstrap
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
(use-package sass-mode
|
||||
:mode "\\.sass$"
|
||||
:config
|
||||
(after! company (add-company-backend! sass-mode (css))))
|
||||
(after! company (define-company-backend! sass-mode (css))))
|
||||
|
||||
(use-package scss-mode
|
||||
:mode "\\.scss$"
|
||||
|
@ -29,7 +29,7 @@
|
|||
:modes 'scss-mode
|
||||
:predicate (lambda () (not (use-region-p)))))
|
||||
|
||||
(after! company (add-company-backend! scss-mode (css))))
|
||||
(after! company (define-company-backend! scss-mode (css))))
|
||||
|
||||
(use-package web-beautify
|
||||
:commands (web-beautify-js web-beautify-css web-beautify-html)
|
||||
|
|
|
@ -256,8 +256,8 @@
|
|||
"C-S-h" 'company-show-location
|
||||
"C-S-s" 'company-search-candidates
|
||||
"C-s" 'company-filter-candidates
|
||||
"C-SPC" 'company-complete-common
|
||||
[tab] 'company-complete
|
||||
"C-SPC" 'company-complete-common-or-cycle
|
||||
[tab] 'narf/company-complete-common-or-complete-full
|
||||
"<backtab>" 'company-select-previous
|
||||
[escape] 'company-abort
|
||||
"<C-return>" 'helm-company)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue