From c52fc16e72693d5acf9df0aa6a26827862a1fe14 Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Thu, 25 Jun 2015 23:40:31 -0700 Subject: [PATCH] add option to restore point on spray quit --- spray.el | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/spray.el b/spray.el index 8fa8bce..7dbd65a 100644 --- a/spray.el +++ b/spray.el @@ -99,6 +99,12 @@ :group 'spray :type 'integer) +(defcustom spray-save-point nil + "Set to true and then exiting spray mode will restore the point" + :group 'spray + :type 'boolean) + + (defcustom spray-height 400 "Height of characters" :group 'spray @@ -178,6 +184,7 @@ decreasing by one for each subsequent word." (defvar spray--saved-cursor-type nil) (defvar spray--saved-restriction nil) (defvar spray--saved-minor-modes nil) +(defvar spray--saved-point nil) ;; * utility functions @@ -198,6 +205,7 @@ decreasing by one for each subsequent word." (setq spray--base-overlay (make-overlay (point-min) (point-max)) spray--accent-overlay (make-overlay 0 0) spray--saved-cursor-type cursor-type + spray--saved-point (point) spray--saved-restriction (and (buffer-narrowed-p) (cons (point-min) (point-max)))) (dolist (mode spray-unsupported-minor-modes) @@ -222,6 +230,8 @@ decreasing by one for each subsequent word." (cdr spray--saved-restriction)) (widen)) (setq cursor-type spray--saved-cursor-type) + (when (and spray-save-point spray--saved-point) + (goto-char spray--saved-point)) (dolist (mode spray--saved-minor-modes) (funcall mode 1)) (setq spray--saved-minor-modes nil)))) -- 2.30.2