emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/greader 5a23a87444 1/4: Navigation commands added while


From: ELPA Syncer
Subject: [elpa] externals/greader 5a23a87444 1/4: Navigation commands added while reading.
Date: Wed, 15 Feb 2023 14:57:53 -0500 (EST)

branch: externals/greader
commit 5a23a87444dfca4ac4c6856b3ad8b5a22c181d06
Author: Michelangelo Rodriguez <michelangelo.rodriguez@gmail.com>
Commit: Michelangelo Rodriguez <michelangelo.rodriguez@gmail.com>

    Navigation commands added while reading.
---
 greader.el | 50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 47 insertions(+), 3 deletions(-)

diff --git a/greader.el b/greader.el
index 2773cfa0d4..d7f3fb1d12 100644
--- a/greader.el
+++ b/greader.el
@@ -214,11 +214,10 @@ if set to t, when you call function `greader-read', that 
function sets a
     (define-key map (kbd ".")   #'greader-stop-with-timer)
     (define-key map (kbd "+")   #'greader-inc-rate)
     (define-key map (kbd "-")   #'greader-dec-rate)
+    (define-key map (kbd "<left>")   #'greader-backward)
+    (define-key map (kbd "<right>")   #'greader-forward)    
     map))
 
-(defvar-local greader--reading nil
-  "If non-nil, `greader-reading-map' is active.")
-
                                        ;###autoload
 (define-minor-mode greader-mode
   nil
@@ -1017,5 +1016,50 @@ If `nil', you can not use `greader-compile-at-point'."
     (find-file (concat (car greader-compile-dictsource)
                       greader-espeak-language "_" 
greader-compile-default-source))))
 
+(defcustom greader-backward-acoustic-feedback nil
+  "If t, when point returns to the end of sentence, plays a beep."
+  :tag "greader backward acoustic feedback"
+  :type 'boolean)
+
+(defcustom greader-backward-seconds 5
+  "Number of seconds to wait before returning at the end of sentence."
+  :tag "greader-backward seconds"
+  :type 'float)
+
+(defvar greader--marker-backward (make-marker))
+
+(defvar greader--timer-backward nil)
+
+(defun greader--forward ()
+  (when (equal
+        (point) greader--marker-backward)
+    (forward-sentence)
+    (backward-char)
+    (when greader-backward-acoustic-feedback
+      (beep))))
+
+(defun greader-backward ()
+  (interactive)
+  (when (bobp)
+    (signal 'beginning-of-buffer ()))
+  (when greader--timer-backward
+    (cancel-timer greader--timer-backward)
+    (setq greader--timer-backward nil))
+  (greader-stop)
+  (backward-sentence)
+  (greader-set-register)
+  (setq greader--marker-backward (point))
+  (setq greader--timer-backward(run-with-idle-timer greader-backward-seconds 
nil #'greader--forward))
+  (greader-read))
+
+(defun greader-forward ()
+  (interactive)
+  (when (eobp)
+    (signal 'end-of-buffer nil))
+  (greader-stop)
+  (greader-forward-sentence)
+  (greader-set-register)
+  (greader-read))
+
 (provide 'greader)
 ;;; greader.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]