;;; oni-company.el --- Company configuration -*- lexical-binding: t; -*- ;; Copyright (C) 2019 Tom Willemse ;; Author: Tom Willemse ;; Keywords: local ;; Version: 20190206002633 ;; Package-Requires: (company diminish fill-column-indicator) ;; 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: ;; 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) ;;;###autoload(with-eval-after-load 'company (require 'oni-company)) (provide 'oni-company) ;;; oni-company.el ends here