diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el index a4bab9a..231f404 100644 --- a/emacs/.emacs.d/init.el +++ b/emacs/.emacs.d/init.el @@ -646,22 +646,9 @@ MODE1 is enabled and vice-versa." ;; when it finishes or is cancelled. This is to work around a ;; long-standing incompatibility between company (as well as ;; auto-complete) and fill-column-indicator. -(defvar-local oni:company-fci-enabled-p nil) -(add-hook 'company-completion-started-hook - (lambda (&rest _) - (when fci-mode - (setq-local oni:company-fci-enabled-p t) - (fci-mode -1)))) -(add-hook 'company-completion-cancelled-hook - (lambda (&rest _) - (when oni:company-fci-enabled-p - (fci-mode 1) - (setq-local oni:company-fci-enabled-p nil)))) -(add-hook 'company-completion-finished-hook - (lambda (&rest _) - (when oni:company-fci-enabled-p - (fci-mode 1) - (setq-local oni:company-fci-enabled-p nil)))) +(add-hook 'company-completion-started-hook 'oni:company-disable-fci-mode) +(add-hook 'company-completion-cancelled-hook 'oni:company-enable-fci-mode) +(add-hook 'company-completion-finished-hook 'oni:company-enable-fci-mode) ;; Load my theme (if (daemonp) diff --git a/emacs/.emacs.d/site-lisp/oni-company.el b/emacs/.emacs.d/site-lisp/oni-company.el new file mode 100644 index 0000000..da442f2 --- /dev/null +++ b/emacs/.emacs.d/site-lisp/oni-company.el @@ -0,0 +1,47 @@ +;;; oni-company.el --- Extra commands and functions for Company -*- lexical-binding: t; -*- + +;; Copyright (C) 2016 Tom Willemse + +;; Author: Tom Willemse +;; Keywords: + +;; 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: + +;; + +;;; Code: + +(require 'fill-column-indicator) + +(defvar-local oni:company-fci-enabled-p nil + "Whether or not `fci-mode' was enabled.") + +;;;###autoload +(defun oni:company-disable-fci-mode () + "Disable `fci-mode' if it is enabled." + (when fci-mode + (setq-local oni:company-fci-enabled-p t) + (fci-mode -1))) + +;;;###autoload +(defun oni:company-enable-fci-mode () + "Enable `fci-mode' if it was disabled before." + (when oni:company-fci-enabled-p + (fci-mode 1) + (setq-local oni:company-fci-enabled-p nil))) + +(provide 'oni-company) +;;; oni-company.el ends here