X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=spray.el;h=e54de5487354d45eb405c0f57ebfdb2303f9d3f4;hb=a24a6004cea5cd9687e9164a8a4f7ef23275d19d;hp=7dbd65a583e8ae361729e6e03d2b3cafa2419eee;hpb=c52fc16e72693d5acf9df0aa6a26827862a1fe14;p=spray diff --git a/spray.el b/spray.el index 7dbd65a..e54de54 100644 --- a/spray.el +++ b/spray.el @@ -161,6 +161,7 @@ decreasing by one for each subsequent word." (define-key km (kbd "") 'spray-forward-word) (define-key km (kbd "f") 'spray-faster) (define-key km (kbd "s") 'spray-slower) + (define-key km (kbd "t") 'spray-time) (define-key km (kbd "q") 'spray-quit) (define-key km (kbd "") 'spray-quit) (define-key km [remap forward-char] 'spray-forward-word) @@ -247,11 +248,11 @@ decreasing by one for each subsequent word." (len (+ (skip-chars-forward "^\s\t\n—") (skip-chars-forward "—"))) (end (point)) (accent (+ beg (cl-case len - ((1) 1) - ((2 3 4 5) 2) - ((6 7 8 9) 3) - ((10 11 12 13) 4) - (t 5))))) + ((1) 1) + ((2 3 4 5) 2) + ((6 7 8 9) 3) + ((10 11 12 13) 4) + (t 5))))) ;; this fairly obfuscated, using magic numbers to store state ;; it would be nice to sometime patch this so it is more readable. ;; for greater than 9 length, we display for twice as long @@ -274,9 +275,7 @@ decreasing by one for each subsequent word." (cond ((not (zerop spray--initial-delay)) (setq spray--initial-delay (1- spray--initial-delay))) ((not (zerop spray--delay)) - (setq spray--delay (1- spray--delay)) - (when (= spray--delay 2) - (narrow-to-region (point) (point)))) + (setq spray--delay (1- spray--delay))) (t (widen) (if (eobp) @@ -351,6 +350,16 @@ Decreases the wpm (words per minute) parameter. See the variable (when was-running (spray-start)))) +(defun spray-time () + (interactive) + (widen) + (let ((position (progn (skip-chars-backward "^\s\t\n—") (point)))) + (message + "%d per cent done; ~%d minute(s) remaining" + (* 100 (/ position (+ 0.0 (point-max)))) + (fround (/ (count-words-region position (point-max)) (+ 0.0 spray-wpm))))) + (spray--word-at-point)) + ;; * provide (provide 'spray)