;;; oni-company-init.el --- Company configuration -*- lexical-binding: t; -*- ;; Copyright (C) 2018 Tom Willemse ;; Author: Tom Willemse ;; Keywords: local ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; My configuration for `company-mode'. ;;; Code: (require 'company) (require 'company-dabbrev) (require 'diminish) (require 'fill-column-indicator) (defvar-local oni-company-init--fci-used nil "Buffer-local indicator used to remember the state of `fci-mode'. When `oni-company-init--hide-fill-column-indicator' actually hides the fill column indicator this variable will be set to t. `oni-company-init--show-fill-column-indicator' will only actually show the fill column indicator if this variable is t.") (defun oni-company-init--hide-fill-column-indicator (_) "Hide the fill column indicator if `fci-mode' is on." (when fci-mode (setq oni-company-init--fci-used t) (turn-off-fci-mode))) (defun oni-company-init--show-fill-column-indicator (_) "Show the fill column indicator if `oni-company-init--fci-used' is t." (when oni-company-init--fci-used (setq oni-company-init--fci-used nil) (turn-on-fci-mode))) (diminish 'company-mode) (setq company-dabbrev-ignore-case nil) (setq company-idle-delay 0.2) (setq company-tooltip-align-annotations t) (setq company-frontends '(company-pseudo-tooltip-unless-just-one-frontend company-echo-metadata-frontend company-preview-frontend)) ;; Turn the fill column indicator off when the company mode pop-up ;; appears. (add-hook 'company-completion-started-hook 'oni-company-init--hide-fill-column-indicator) ;; Turn the fill column indicator on when the company-mode pop-up ;; disappears (either because it is finished or because it was ;; cancelled). (add-hook 'company-completion-finished-hook 'oni-company-init--show-fill-column-indicator) (add-hook 'company-completion-cancelled-hook 'oni-company-init--show-fill-column-indicator) (add-to-list 'company-backends 'company-tern) (add-to-list 'company-backends 'company-jedi) (provide 'oni-company-init) ;;; oni-company-init.el ends here