[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master c507480 13/34: Fix after-string overlays
From: |
Artur Malabarba |
Subject: |
[elpa] master c507480 13/34: Fix after-string overlays |
Date: |
Fri, 16 Oct 2015 09:56:52 +0000 |
branch: master
commit c507480196ff1812c4339a07ac6cc9ffb9dd0a7b
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>
Fix after-string overlays
---
beacon.el | 49 +++++++++++++++++++++++++++++--------------------
1 files changed, 29 insertions(+), 20 deletions(-)
diff --git a/beacon.el b/beacon.el
index 3935476..25a1b9e 100644
--- a/beacon.el
+++ b/beacon.el
@@ -98,11 +98,15 @@ e.g. \"#666600\"."
"Add an after-string property to OVERLAY.
The property's value is a string of spaces with background
COLORS applied to each one."
- (overlay-put overlay 'beacon-colors colors)
- (overlay-put overlay 'after-string
- (mapconcat (lambda (c) (propertize " " 'face (list :background
c)))
- colors
- "")))
+ (if (not colors)
+ (delete-overlay overlay)
+ (overlay-put overlay 'beacon-colors colors)
+ (overlay-put overlay 'after-string
+ (propertize
+ (mapconcat (lambda (c) (propertize " " 'face (list
:background c)))
+ colors
+ "")
+ 'cursor 1000))))
(defun beacon--after-string-overlay (colors)
"Put an overlay at point with an after-string property.
@@ -114,8 +118,10 @@ COLORS applied to each one."
(push ov beacon--ovs)))
(defun beacon--ov-at-point ()
- (car (cl-member-if (lambda (o) (overlay-get o 'beacon))
- (overlays-at (point)))))
+ (car (or (cl-member-if (lambda (o) (overlay-get o 'beacon))
+ (overlays-in (point) (point)))
+ (cl-member-if (lambda (o) (overlay-get o 'beacon))
+ (overlays-at (point))))))
(defun beacon--vanish ()
"Turn off the beacon."
@@ -164,19 +170,22 @@ Only returns `beacon-size' elements."
(defun beacon--dec ()
"Decrease the beacon brightness by one."
- (let ((o (beacon--ov-at-point)))
- (if (not o)
- (beacon--vanish)
- (delete-overlay o)
- (save-excursion
- (while (progn (forward-char 1)
- (setq o (beacon--ov-at-point)))
- (let ((colors (overlay-get o 'beacon-colors)))
- (if (not colors)
- (move-overlay o (1- (point)) (point))
- (forward-char -1)
- (beacon--colored-overlay (pop colors))
- (beacon--ov-put-after-string o colors))))))))
+ (pcase (beacon--ov-at-point)
+ (`nil (beacon--vanish))
+ ((and o (let c (overlay-get o 'beacon-colors)) (guard c))
+ (beacon--ov-put-after-string o (cdr c)))
+ (o
+ (delete-overlay o)
+ (save-excursion
+ (while (progn (forward-char 1)
+ (setq o (beacon--ov-at-point)))
+ (let ((colors (overlay-get o 'beacon-colors)))
+ (if (not colors)
+ (move-overlay o (1- (point)) (point))
+ (forward-char -1)
+ (beacon--colored-overlay (pop colors))
+ (beacon--ov-put-after-string o colors)
+ (forward-char 1))))))))
(defun beacon-blink ()
"Blink the beacon at the position of the cursor."
- [elpa] master 8abbedc 05/34: Default to blinking on window scroll instead of point movement, (continued)
- [elpa] master 8abbedc 05/34: Default to blinking on window scroll instead of point movement, Artur Malabarba, 2015/10/16
- [elpa] master fbcf9fc 16/34: Drop cl-lib dep, Artur Malabarba, 2015/10/16
- [elpa] master 19096a6 10/34: Initial (failed) impl for beacon at end of line, Artur Malabarba, 2015/10/16
- [elpa] master e533e04 11/34: Fix an error, Artur Malabarba, 2015/10/16
- [elpa] master 03d12b4 03/34: Rename file, Artur Malabarba, 2015/10/16
- [elpa] master 8941740 07/34: Fix docs, Artur Malabarba, 2015/10/16
- [elpa] master c82095a 06/34: Add url, Artur Malabarba, 2015/10/16
- [elpa] master 9152a09 08/34: Separate mark-pushing from blinking, Artur Malabarba, 2015/10/16
- [elpa] master b60416c 01/34: First commit, Artur Malabarba, 2015/10/16
- [elpa] master ca3ec24 14/34: Fix temporary line breaks due to too long after-strings, Artur Malabarba, 2015/10/16
- [elpa] master c507480 13/34: Fix after-string overlays,
Artur Malabarba <=
- [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