From 0c448cde2f02e7ae2e59a049c206136cb83484e7 Mon Sep 17 00:00:00 2001 From: Daniele Nicolodi Date: Fri, 8 Jan 2016 21:36:34 +0100 Subject: Fix highlight of the transaction under point Extend the highlighting of the last line in the transaction to the right margin of the buffer. Do not highlight empty lines. --- lisp/ledger-xact.el | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lisp/ledger-xact.el b/lisp/ledger-xact.el index 5286d784..dad5ff5b 100644 --- a/lisp/ledger-xact.el +++ b/lisp/ledger-xact.el @@ -44,20 +44,23 @@ (defvar ledger-xact-highlight-overlay (list)) (make-variable-buffer-local 'ledger-xact-highlight-overlay) +(defun ledger-highlight-make-overlay () + (let ((ovl (make-overlay 1 1))) + (overlay-put ovl 'face 'ledger-font-xact-highlight-face) + (overlay-put ovl 'priority '(nil . 99)) + ovl)) + (defun ledger-highlight-xact-under-point () "Move the highlight overlay to the current transaction." - (if ledger-highlight-xact-under-point - (let ((exts (ledger-navigate-find-element-extents (point))) - (ovl ledger-xact-highlight-overlay)) - (if (not ledger-xact-highlight-overlay) - (setq ovl - (setq ledger-xact-highlight-overlay - (make-overlay (car exts) - (cadr exts) - (current-buffer) t nil))) - (move-overlay ovl (car exts) (cadr exts))) - (overlay-put ovl 'face 'ledger-font-xact-highlight-face) - (overlay-put ovl 'priority '(nil . 99))))) + (when ledger-highlight-xact-under-point + (unless ledger-xact-highlight-overlay + (setq ledger-xact-highlight-overlay (ledger-highlight-make-overlay))) + (let ((exts (ledger-navigate-find-element-extents (point)))) + (let ((b (car exts)) + (e (cadr exts))) + (if (> (- e b) 1) + (move-overlay ledger-xact-highlight-overlay b (+ 1 e)) + (move-overlay ledger-xact-highlight-overlay 1 1)))))) (defun ledger-xact-payee () "Return the payee of the transaction containing point or nil." -- cgit v1.2.3 From 9cb5bc0f4aa4f3e3d97aba5255d66f0c1b89d387 Mon Sep 17 00:00:00 2001 From: Daniele Nicolodi Date: Fri, 8 Jan 2016 23:44:23 +0100 Subject: Fix highlight of the transaction under point When a transaction is being added the previous one is highlighted. Solve the problem checking that the highlighted region contains the point. --- lisp/ledger-xact.el | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lisp/ledger-xact.el b/lisp/ledger-xact.el index dad5ff5b..795df86a 100644 --- a/lisp/ledger-xact.el +++ b/lisp/ledger-xact.el @@ -57,10 +57,12 @@ (setq ledger-xact-highlight-overlay (ledger-highlight-make-overlay))) (let ((exts (ledger-navigate-find-element-extents (point)))) (let ((b (car exts)) - (e (cadr exts))) - (if (> (- e b) 1) - (move-overlay ledger-xact-highlight-overlay b (+ 1 e)) - (move-overlay ledger-xact-highlight-overlay 1 1)))))) + (e (cadr exts)) + (p (point))) + (if (and (> (- e b) 1) ; not an empty line + (<= p e) (>= p b)) ; point is within the boundaries + (move-overlay ledger-xact-highlight-overlay b (+ 1 e)) + (move-overlay ledger-xact-highlight-overlay 1 1)))))) (defun ledger-xact-payee () "Return the payee of the transaction containing point or nil." -- cgit v1.2.3