diff options
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/ivy-20180911.1701/ivy-overlay.el')
-rw-r--r-- | configs/shared/emacs/.emacs.d/elpa/ivy-20180911.1701/ivy-overlay.el | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/ivy-20180911.1701/ivy-overlay.el b/configs/shared/emacs/.emacs.d/elpa/ivy-20180911.1701/ivy-overlay.el deleted file mode 100644 index 20d5a2bd1855..000000000000 --- a/configs/shared/emacs/.emacs.d/elpa/ivy-20180911.1701/ivy-overlay.el +++ /dev/null @@ -1,141 +0,0 @@ -;;; ivy-overlay.el --- Overlay display functions for Ivy -*- lexical-binding: t -*- - -;; Copyright (C) 2016-2018 Free Software Foundation, Inc. - -;; Author: Oleh Krehel <ohwoeowho@gmail.com> -;; Keywords: convenience - -;; 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 <http://www.gnu.org/licenses/>. - -;;; Commentary: - -;; This package allows to setup Ivy's completion at point to actually -;; show the candidates and the input at point, instead of in the -;; minibuffer. - -;;; Code: - -(defface ivy-cursor - '((t (:background "black" - :foreground "white"))) - "Cursor face for inline completion." - :group 'ivy-faces) - -(defvar ivy--old-cursor-type t) - -(defvar ivy-overlay-at nil - "Overlay variable for `ivy-display-function-overlay'.") - -(declare-function ivy--truncate-string "ivy") - -(defun ivy-left-pad (str width) - "Return STR, but with each line indented by WIDTH spaces. -Lines are truncated to the window width." - (let ((padding (make-string width ?\s))) - (mapconcat (lambda (x) - (ivy--truncate-string (concat padding x) - (1- (+ (window-width) - (window-hscroll))))) - (split-string str "\n") - "\n"))) - -(defun ivy-overlay-cleanup () - "Clean up after `ivy-display-function-overlay'." - (when (overlayp ivy-overlay-at) - (delete-overlay ivy-overlay-at) - (setq ivy-overlay-at nil)) - (unless cursor-type - (setq cursor-type ivy--old-cursor-type)) - (when (fboundp 'company-abort) - (company-abort))) - -(defun ivy-overlay-show-after (str) - "Display STR in an overlay at point. - -First, fill each line of STR with spaces to the current column. -Then attach the overlay the character before point." - (if ivy-overlay-at - (progn - (move-overlay ivy-overlay-at (1- (point)) (line-end-position)) - (overlay-put ivy-overlay-at 'invisible nil)) - (setq ivy-overlay-at (make-overlay (1- (point)) (line-end-position))) - (overlay-put ivy-overlay-at 'priority 9999)) - (overlay-put ivy-overlay-at 'display str) - (overlay-put ivy-overlay-at 'after-string "")) - -(declare-function org-current-level "org") -(defvar org-indent-indentation-per-level) -(defvar ivy-height) -(defvar ivy-last) -(defvar ivy-text) -(defvar ivy-completion-beg) -(declare-function ivy-add-face-text-property "ivy") -(declare-function ivy--get-window "ivy") -(declare-function ivy-state-current "ivy") -(declare-function ivy-state-window "ivy") - -(defun ivy-overlay-impossible-p (str) - (or - (and (eq major-mode 'org-mode) - (plist-get (text-properties-at (point)) 'src-block)) - (<= (window-height) (+ ivy-height 3)) - (= (point) (point-min)) - (< (- (+ (window-width) (window-hscroll)) (current-column)) - (apply #'max - (mapcar #'string-width - (split-string str "\n")))))) - -(defun ivy-display-function-overlay (str) - "Called from the minibuffer, display STR in an overlay in Ivy window. -Hide the minibuffer contents and cursor." - (if (save-selected-window - (select-window (ivy-state-window ivy-last)) - (ivy-overlay-impossible-p str)) - (let ((buffer-undo-list t)) - (save-excursion - (forward-line 1) - (insert str))) - (ivy-add-face-text-property (minibuffer-prompt-end) (point-max) - '(:foreground "white")) - (let ((cursor-pos (1+ (- (point) (minibuffer-prompt-end)))) - (ivy-window (ivy--get-window ivy-last))) - (setq cursor-type nil) - (with-selected-window ivy-window - (when cursor-type - (setq ivy--old-cursor-type cursor-type)) - (setq cursor-type nil) - (let ((overlay-str - (concat - (buffer-substring (max 1 (1- (point))) (point)) - ivy-text - (if (eolp) - " " - "") - (buffer-substring (point) (line-end-position)) - (ivy-left-pad - str - (+ (if (and (eq major-mode 'org-mode) - (bound-and-true-p org-indent-mode)) - (* org-indent-indentation-per-level (org-current-level)) - 0) - (save-excursion - (goto-char ivy-completion-beg) - (current-column))))))) - (ivy-add-face-text-property cursor-pos (1+ cursor-pos) - 'ivy-cursor overlay-str t) - (ivy-overlay-show-after overlay-str)))))) - -(provide 'ivy-overlay) - -;;; ivy-overlay.el ends here |