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

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

[nongnu] elpa/guru-mode a227ee5 15/42: Add the ability to only warn when


From: ELPA Syncer
Subject: [nongnu] elpa/guru-mode a227ee5 15/42: Add the ability to only warn when arrow keys are being used
Date: Wed, 11 Aug 2021 09:58:28 -0400 (EDT)

branch: elpa/guru-mode
commit a227ee5e6da06dc826323c107bad631890414732
Author: Bozhidar Batsov <bozhidar@tradeo.com>
Commit: Bozhidar Batsov <bozhidar@tradeo.com>

    Add the ability to only warn when arrow keys are being used
---
 README.md    |  6 ++++++
 guru-mode.el | 65 +++++++++++++++++++++++++++++++++---------------------------
 2 files changed, 42 insertions(+), 29 deletions(-)

diff --git a/README.md b/README.md
index 98f1579..c8dd20f 100644
--- a/README.md
+++ b/README.md
@@ -45,6 +45,12 @@ Most likely you'd like to enable `guru-mode` only in 
specific modes
 (add-hook 'prog-mode-hook 'turn-on-guru-mode)
 ```
 
+If you only want to get warnings when you the arrow keys use the following 
config:
+
+```lisp
+(setq guru-warn-only t)
+```
+
 # Share the knowledge
 
 [WikEmacs](http://wikemacs.org) collects useful resources for working
diff --git a/guru-mode.el b/guru-mode.el
index 0beaa3f..878fe58 100644
--- a/guru-mode.el
+++ b/guru-mode.el
@@ -1,6 +1,6 @@
-;;; guru-mode.el --- Become an Emacs guru
+;;; guru-mode.el --- Become an Emacs guru   -*- lexical-binding:t -*-
 
-;; Copyright (C) 2012 Bozhidar Batsov
+;; Copyright (C) 2012-2013 Bozhidar Batsov
 
 ;; Author: Bozhidar Batsov
 ;; URL: https://github.com/bbatsov/guru-mode
@@ -35,36 +35,43 @@
 (defvar guru-mode-map (make-sparse-keymap)
   "Guru mode's keymap.")
 
-(defvar affected-bindings-list '(("<left>" . "C-b")
-                                 ("<right>" . "C-f")
-                                 ("<up>" . "C-p")
-                                 ("<down>" . "C-n")
-                                 ("<C-left>" . "M-b")
-                                 ("<C-right>" . "M-f")
-                                 ("<C-up>" . "M-{")
-                                 ("<C-down>" . "M-}")
-                                 ("<M-left>" . "M-b")
-                                 ("<M-right>" . "M-f")
-                                 ("<M-up>" . "M-{")
-                                 ("<M-down>" . "M-}")
-                                 ("<delete>" . "C-d")
-                                 ("<C-delete>" . "M-d")
-                                 ("<M-delete>" . "M-d")
-                                 ("<next>" . "C-v")
-                                 ("<C-next>" . "M-x <")
-                                 ("<prior>" . "M-v")
-                                 ("<C-prior>" . "M-x >")
-                                 ("<home>" . "C-a")
-                                 ("<C-home>" . "M-<")
-                                 ("<end>" . "C-e")
-                                 ("<C-end>" . "M->")))
+(defvar guru-warn-only nil
+  "When non-nil you'll only get an error message.")
+
+(defvar guru-affected-bindings-list
+  '(("<left>" . "C-b")
+    ("<right>" . "C-f")
+    ("<up>" . "C-p")
+    ("<down>" . "C-n")
+    ("<C-left>" . "M-b")
+    ("<C-right>" . "M-f")
+    ("<C-up>" . "M-{")
+    ("<C-down>" . "M-}")
+    ("<M-left>" . "M-b")
+    ("<M-right>" . "M-f")
+    ("<M-up>" . "M-{")
+    ("<M-down>" . "M-}")
+    ("<delete>" . "C-d")
+    ("<C-delete>" . "M-d")
+    ("<M-delete>" . "M-d")
+    ("<next>" . "C-v")
+    ("<C-next>" . "M-x <")
+    ("<prior>" . "M-v")
+    ("<C-prior>" . "M-x >")
+    ("<home>" . "C-a")
+    ("<C-home>" . "M-<")
+    ("<end>" . "C-e")
+    ("<C-end>" . "M->")))
 
 (defun guru-rebind (original-key alt-key)
-  `(lambda ()
-     (interactive)
-     (message "%s keybinding is disabled! Use <%s> instead" ,original-key  
,alt-key)))
+  (lambda ()
+    (interactive)
+    (let ((warning-text (if guru-warn-only "discouraged" "disabled")))
+      (message "%s keybinding is %s! Use <%s> instead" original-key 
warning-text alt-key))
+    (when guru-warn-only
+      (call-interactively (key-binding (kbd alt-key))))))
 
-(dolist (cell affected-bindings-list)
+(dolist (cell guru-affected-bindings-list)
   (define-key guru-mode-map
     (read-kbd-macro (car cell)) (guru-rebind (car cell) (cdr cell))))
 



reply via email to

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