diff options
author | Craig Earls <enderw88@gmail.com> | 2016-01-11 19:24:02 -0700 |
---|---|---|
committer | Craig Earls <enderw88@gmail.com> | 2016-01-11 19:24:02 -0700 |
commit | d24be7446dc77cbdd80db6a105ad3b7a8fd919aa (patch) | |
tree | f4e3084e04c4e481ef59954e341e5f316d1648c4 /lisp/ledger-xact.el | |
parent | f709109417f2cbafe210dc41d5e9e98e6e9f5de0 (diff) | |
parent | b5b70625d59305d0f3af3a9baad3931aba43df47 (diff) | |
download | ledger-d24be7446dc77cbdd80db6a105ad3b7a8fd919aa.tar.gz ledger-d24be7446dc77cbdd80db6a105ad3b7a8fd919aa.tar.bz2 ledger-d24be7446dc77cbdd80db6a105ad3b7a8fd919aa.zip |
Merge commit 'b5b70625d59305d0f3af3a9baad3931aba43df47' into next
Diffstat (limited to 'lisp/ledger-xact.el')
-rw-r--r-- | lisp/ledger-xact.el | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/lisp/ledger-xact.el b/lisp/ledger-xact.el index 513f8f26..795df86a 100644 --- a/lisp/ledger-xact.el +++ b/lisp/ledger-xact.el @@ -1,6 +1,6 @@ ;;; ledger-xact.el --- Helper code for use with the "ledger" command-line tool -;; Copyright (C) 2003-2015 John Wiegley (johnw AT gnu DOT org) +;; Copyright (C) 2003-2016 John Wiegley (johnw AT gnu DOT org) ;; This file is not part of GNU Emacs. @@ -44,20 +44,25 @@ (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)) + (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." |