[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master d66b206 28/34: Refactor overlay creation
From: |
Artur Malabarba |
Subject: |
[elpa] master d66b206 28/34: Refactor overlay creation |
Date: |
Fri, 16 Oct 2015 09:56:58 +0000 |
branch: master
commit d66b20674a98e3cf8d180bd607e491c894596567
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>
Refactor overlay creation
---
beacon.el | 34 ++++++++++++++++++++--------------
1 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/beacon.el b/beacon.el
index d7be5a6..b6aa776 100644
--- a/beacon.el
+++ b/beacon.el
@@ -134,12 +134,24 @@ blink."
;;; Overlays
(defvar beacon--ovs nil)
-(defun beacon--colored-overlay (color)
+(defconst beacon-overlay-priority (/ most-positive-fixnum 2)
+ "Priotiy used on all of our overlays.")
+
+(defun beacon--make-overlay (length &rest properties)
"Put an overlay at point with background COLOR."
- (let ((ov (make-overlay (point) (1+ (point)))))
- (overlay-put ov 'face (list :background color))
+ (let ((ov (make-overlay (point) (+ length (point)))))
(overlay-put ov 'beacon t)
- (push ov beacon--ovs)))
+ ;; Our overlay is very temporary, so we take the liberty of giving
+ ;; it a high priority.
+ (overlay-put ov 'priority beacon-overlay-priority)
+ (while properties
+ (overlay-put ov (pop properties) (pop properties)))
+ (push ov beacon--ovs)
+ ov))
+
+(defun beacon--colored-overlay (color)
+ "Put an overlay at point with background COLOR."
+ (beacon--make-overlay 1 'face (list :background color)))
(defun beacon--ov-put-after-string (overlay colors)
"Add an after-string property to OVERLAY.
@@ -150,7 +162,6 @@ If COLORS is nil, OVERLAY is deleted!"
(when (overlayp overlay)
(delete-overlay overlay))
(overlay-put overlay 'beacon-colors colors)
- (overlay-put overlay 'priority most-positive-fixnum)
(overlay-put overlay 'after-string
(propertize
(mapconcat (lambda (c) (propertize " " 'face (list
:background c)))
@@ -162,15 +173,10 @@ If COLORS is nil, OVERLAY is deleted!"
"Put an overlay at point with an after-string property.
The property's value is a string of spaces with background
COLORS applied to each one."
- (let ((ov (make-overlay (point) (point)))
- ;; The after-string must not be longer than the remaining columns from
- ;; point to right window-end else it will be wrapped around (assuming
- ;; truncate-lines is nil) introducing an ugly wrap-around for a
- ;; fraction of a second.
- (colors (seq-take colors (- (window-width) (current-column)))))
- (beacon--ov-put-after-string ov colors)
- (overlay-put ov 'beacon t)
- (push ov beacon--ovs)))
+ ;; The after-string must not be longer than the remaining columns
+ ;; from point to right window-end else it will be wrapped around.
+ (let ((colors (seq-take colors (- (window-width) (current-column)))))
+ (beacon--ov-put-after-string (beacon--make-overlay 0) colors)))
(defun beacon--ov-at-point ()
(car (or (seq-filter (lambda (o) (overlay-get o 'beacon))
- [elpa] master 02112fa 12/34: Fix lighter, (continued)
- [elpa] master 02112fa 12/34: Fix lighter, Artur Malabarba, 2015/10/16
- [elpa] master f1bb231 20/34: Fix scrolling outside command loop, Artur Malabarba, 2015/10/16
- [elpa] master 0b7041e 22/34: More documentation, Artur Malabarba, 2015/10/16
- [elpa] master 5622af4 25/34: [#2] Add more options for preventing a blink, Artur Malabarba, 2015/10/16
- [elpa] master 6f647f6 21/34: Only blink selected window, Artur Malabarba, 2015/10/16
- [elpa] master 0036355 23/34: Copyright, Artur Malabarba, 2015/10/16
- [elpa] master bccd3de 33/34: Document contributors, Artur Malabarba, 2015/10/16
- [elpa] master d1f0728 26/34: Extend doc, Artur Malabarba, 2015/10/16
- [elpa] master 4a7079e 17/34: Improve readme, Artur Malabarba, 2015/10/16
- [elpa] master f439a41 27/34: Fix double blink when switching buffer, Artur Malabarba, 2015/10/16
- [elpa] master d66b206 28/34: Refactor overlay creation,
Artur Malabarba <=
- [elpa] master b033c63 30/34: Merge pull request #6 from tsdh/master, Artur Malabarba, 2015/10/16
- [elpa] master 7294729 24/34: Don't blink on the minibuffer, Artur Malabarba, 2015/10/16
- [elpa] master 3e1defb 32/34: Don't blink in magit status buffers, Artur Malabarba, 2015/10/16
- [elpa] master d48f296 31/34: Doc, Artur Malabarba, 2015/10/16
- [elpa] master 0bdebed 29/34: Blink only in selected window; blink when switching windows, Artur Malabarba, 2015/10/16
- [elpa] master 441ebfe 19/34: Indentation, Artur Malabarba, 2015/10/16
- [elpa] master 849bc39 18/34: Rely on window-scroll-functions for scroll blinks, Artur Malabarba, 2015/10/16
- [elpa] master 2eb4c54 34/34: Add 'packages/beacon/' from commit 'bccd3de53787c996f9a90bcb5d541252deda01e1', Artur Malabarba, 2015/10/16