Polish company-dictionary source + company settings
This commit is contained in:
parent
169bf8da0a
commit
e836268e4c
1 changed files with 38 additions and 32 deletions
|
@ -2,18 +2,15 @@
|
||||||
:config
|
:config
|
||||||
(progn
|
(progn
|
||||||
(global-company-mode 1)
|
(global-company-mode 1)
|
||||||
|
(setq company-idle-delay nil
|
||||||
(setq company-idle-delay nil)
|
company-minimum-prefix-length 1
|
||||||
(setq company-minimum-prefix-length 1)
|
company-show-numbers nil
|
||||||
(setq company-show-numbers nil)
|
company-tooltip-limit 20
|
||||||
(setq company-tooltip-limit 20)
|
company-dabbrev-downcase nil
|
||||||
|
company-dabbrev-ignore-case nil
|
||||||
(setq company-dabbrev-downcase nil)
|
company-tooltip-align-annotations t
|
||||||
(setq company-dabbrev-ignore-case nil)
|
company-require-match 'never
|
||||||
(setq company-tooltip-align-annotations t)
|
company-global-modes
|
||||||
(setq company-require-match 'never)
|
|
||||||
|
|
||||||
(setq company-global-modes
|
|
||||||
'(not eshell-mode comint-mode org-mode erc-mode message-mode help-mode))
|
'(not eshell-mode comint-mode org-mode erc-mode message-mode help-mode))
|
||||||
|
|
||||||
(require 'color)
|
(require 'color)
|
||||||
|
@ -29,7 +26,11 @@
|
||||||
;; Sort candidates by
|
;; Sort candidates by
|
||||||
(add-to-list 'company-transformers 'company-sort-by-occurrence)
|
(add-to-list 'company-transformers 'company-sort-by-occurrence)
|
||||||
;; (add-to-list 'company-transformers 'company-sort-by-backend-importance)
|
;; (add-to-list 'company-transformers 'company-sort-by-backend-importance)
|
||||||
(use-package company-statistics :config (company-statistics-mode))
|
(use-package company-statistics
|
||||||
|
:config
|
||||||
|
(progn
|
||||||
|
(setq company-statistics-file (expand-file-name "company-statistics-cache.el" my-tmp-dir))
|
||||||
|
(company-statistics-mode)))
|
||||||
|
|
||||||
(progn ; frontends
|
(progn ; frontends
|
||||||
(setq-default company-frontends '(company-pseudo-tooltip-unless-just-one-frontend
|
(setq-default company-frontends '(company-pseudo-tooltip-unless-just-one-frontend
|
||||||
|
@ -43,7 +44,7 @@
|
||||||
(add-hook hook
|
(add-hook hook
|
||||||
`(lambda()
|
`(lambda()
|
||||||
(set (make-local-variable 'company-backends)
|
(set (make-local-variable 'company-backends)
|
||||||
(append '((,@backends company-dictionary)) company-backends)))))
|
(append '((,@backends company-semantic)) company-backends)))))
|
||||||
|
|
||||||
(company--backend-on 'nxml-mode-hook 'company-nxml 'company-yasnippet)
|
(company--backend-on 'nxml-mode-hook 'company-nxml 'company-yasnippet)
|
||||||
(company--backend-on 'emacs-lisp-mode-hook 'company-elisp 'company-yasnippet)
|
(company--backend-on 'emacs-lisp-mode-hook 'company-elisp 'company-yasnippet)
|
||||||
|
@ -51,13 +52,11 @@
|
||||||
;; Rewrite evil-complete to use company-dabbrev
|
;; Rewrite evil-complete to use company-dabbrev
|
||||||
(setq company-dabbrev-code-other-buffers t)
|
(setq company-dabbrev-code-other-buffers t)
|
||||||
(setq company-dabbrev-code-buffers nil)
|
(setq company-dabbrev-code-buffers nil)
|
||||||
|
|
||||||
(setq evil-complete-next-func
|
(setq evil-complete-next-func
|
||||||
(lambda(arg)
|
(lambda(arg)
|
||||||
(call-interactively 'company-dabbrev)
|
(call-interactively 'company-dabbrev)
|
||||||
(if (eq company-candidates-length 1)
|
(if (eq company-candidates-length 1)
|
||||||
(company-complete))))
|
(company-complete))))
|
||||||
|
|
||||||
(setq evil-complete-previous-func
|
(setq evil-complete-previous-func
|
||||||
(lambda (arg)
|
(lambda (arg)
|
||||||
(let ((company-selection-wrap-around t))
|
(let ((company-selection-wrap-around t))
|
||||||
|
@ -69,24 +68,31 @@
|
||||||
;; Simulates ac-source-dictionary (without global dictionary)
|
;; Simulates ac-source-dictionary (without global dictionary)
|
||||||
(defconst my-dicts-dir (concat my-dir "dict/"))
|
(defconst my-dicts-dir (concat my-dir "dict/"))
|
||||||
(defvar company-dictionary-alist '())
|
(defvar company-dictionary-alist '())
|
||||||
|
(defvar company-dictionary-major-minor-modes '())
|
||||||
|
(defun company-dictionary-active-minor-modes ()
|
||||||
|
(-filter (lambda (mode) (symbol-value mode)) company-dictionary-major-minor-modes))
|
||||||
|
(defun company-dictionary-assemble ()
|
||||||
|
(let ((minor-modes (company-dictionary-active-minor-modes))
|
||||||
|
(dicts (cdr (assq major-mode company-dictionary-alist))))
|
||||||
|
(dolist (mode minor-modes)
|
||||||
|
(setq dicts (append dicts (cdr (assq mode company-dictionary-alist)))))
|
||||||
|
dicts))
|
||||||
|
(defun company-dictionary-init ()
|
||||||
|
(dolist (file (f-files my-dicts-dir))
|
||||||
|
(add-to-list 'company-dictionary-alist `(,(intern (f-base file)) ,@(s-split "\n" (f-read file) t)))))
|
||||||
(defun company-dictionary (command &optional arg &rest ignored)
|
(defun company-dictionary (command &optional arg &rest ignored)
|
||||||
"`company-mode' back-end for programming language keywords."
|
"`company-mode' back-end for user-provided dictionaries."
|
||||||
(interactive (list 'interactive))
|
(interactive (list 'interactive))
|
||||||
(unless company-dictionary-alist
|
(unless company-dictionary-alist (company-dictionary-init))
|
||||||
(dolist (file (f-files my-dicts-dir))
|
(let ((dict (company-dictionary-assemble)))
|
||||||
(add-to-list 'company-dictionary-alist `(,(intern (f-base file)) ,@(s-split "\n" (f-read file) t)))))
|
(cl-case command
|
||||||
(cl-case command
|
(interactive (company-begin-backend 'company-dictionary))
|
||||||
(interactive (company-begin-backend 'company-dictionary))
|
(prefix (and dict (or (company-grab-symbol) 'stop)))
|
||||||
(prefix (and (assq major-mode company-dictionary-alist)
|
(candidates
|
||||||
(or (company-grab-symbol) 'stop)))
|
(let ((completion-ignore-case nil)
|
||||||
(candidates
|
(symbols dict))
|
||||||
(let ((completion-ignore-case nil)
|
(all-completions arg symbols)))
|
||||||
(symbols (cdr (assq major-mode company-dictionary-alist))))
|
(sorted t))))
|
||||||
(all-completions arg (if (consp symbols)
|
|
||||||
symbols
|
|
||||||
(cdr (assq symbols company-dictionary-alist))))))
|
|
||||||
(sorted t)))
|
|
||||||
|
|
||||||
(progn ; keybinds
|
(progn ; keybinds
|
||||||
(bind 'insert company-mode-map
|
(bind 'insert company-mode-map
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue