Increases/decreases wpm on the fly
authorÓscar Fuentes <oscarfv@telefonica.net>
Mon, 23 Jun 2014 23:45:50 +0000 (01:45 +0200)
committerÓscar Fuentes <oscarfv@telefonica.net>
Mon, 23 Jun 2014 23:45:50 +0000 (01:45 +0200)
Adds keybindings `f' and `s' for faster/slower wpm rate.

Readme.org
spray.el

index 5e379c1f63301f59ea04a9cdd45b1fe3e745f904..9f30145d41f260de0c51714ee1efca373e2432df 100644 (file)
@@ -35,6 +35,12 @@ In spray-mode buffers, following commands are available.
 - =spray-forward-word= (l, <right>) ::
      inverse of =spray-backward-word=
 
+- =spray-faster= (f) ::
+     increases speed
+
+- =spray-slower= (s) ::
+     decreases speed
+
 Press any key else to quit =spray-mode=.
 
 ** Customization
index aab9f8e1988a0e9ada1e137e70f5542ef6a97106..48819cb12ad2d42ea97c30bf760044f195ce00ef 100644 (file)
--- a/spray.el
+++ b/spray.el
@@ -54,6 +54,8 @@
     (define-key km (kbd "l") 'spray-forward-word)
     (define-key km (kbd "<left>") 'spray-backward-word)
     (define-key km (kbd "<right>") 'spray-forward-word)
+    (define-key km (kbd "f") 'spray-faster)
+    (define-key km (kbd "s") 'spray-slower)
     km)
   "keymap for spray-mode buffers")
 
@@ -198,6 +200,32 @@ an integer or a float value."
   (skip-chars-backward "\s\t\n")
   (spray--word-at-point))
 
+(defun spray-faster ()
+  "Increases speed.
+
+Increases the wpm (words per minute) parameter. See the variable
+`spray-wmp'."
+  (interactive)
+  (spray-inc-wpm 20))
+
+(defun spray-slower ()
+  "Decreases speed.
+
+Decreases the wpm (words per minute) parameter. See the variable
+`spray-wmp'."
+  (interactive)
+  (spray-inc-wpm -20))
+
+(defun spray-inc-wpm (delta)
+  (let ((was-running spray--running))
+    (spray-start/stop -1)
+    (when (< 10 (+ spray-wpm delta))
+      (setq spray-wpm (+ spray-wpm delta)))
+    (spray-backward-word)
+    (message "spray wpm: %d" spray-wpm)
+    (when was-running
+      (spray-start/stop 1))))
+
 ;; * provide
 
 (provide 'spray)