[elpa] externals/org fe74a3ed2d: org-crypt-decrypt-entry: Apply initial visibility upon decryption

2023-05-15 Thread ELPA Syncer
branch: externals/org
commit fe74a3ed2d81704e9e1caae0b6e1be2e0eefc3f2
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

org-crypt-decrypt-entry: Apply initial visibility upon decryption

* lisp/org-crypt.el: Call `org-cycle-set-startup-visibility' on the
decrypted entries.  Still re-fold if the decrypted entry has been
inside an existing fold.
* lisp/org-cycle.el (org-cycle-set-visibility-according-to-property):
Respect narrowing.
* etc/ORG-NEWS (=org-crypt.el= now applies initial visibility settings
to decrypted entries): Announce the change.

This patch solves a slight annoyance when the freshly decrypted entry
is fully unfolded, including all the property drawers.  It will make
more sense to make the folding state follow initial visibility
settings, including VISIBILITY properties.
---
 etc/ORG-NEWS  |  4 
 lisp/org-crypt.el | 11 ++-
 lisp/org-cycle.el | 15 ---
 3 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index bba9457f27..6b40198b5d 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -222,6 +222,10 @@ execution completes.  The new ~:async~ header allows users 
to continue
 editing with Emacs while a ~:session~ block executes.
 
 ** Miscellaneous
+*** =org-crypt.el= now applies initial visibility settings to decrypted entries
+
+Previously, all the text was unfolded unconditionally, including property 
drawers.
+
 *** Blank lines after removed objects are not retained during export
 
 When certain objects in Org document are to be excluded from export,
diff --git a/lisp/org-crypt.el b/lisp/org-crypt.el
index b5df115cf9..39d1a421dc 100644
--- a/lisp/org-crypt.el
+++ b/lisp/org-crypt.el
@@ -81,6 +81,7 @@
 (declare-function org-previous-visible-heading "org" (arg))
 (declare-function org-scan-tags "org" (action matcher todo-only &optional 
start-level))
 (declare-function org-set-property "org" (property value))
+(declare-function org-cycle-set-startup-visibility "org-cycle" ())
 
 (defgroup org-crypt nil
   "Org Crypt."
@@ -269,10 +270,12 @@ Assume `epg-context' is set."
  (decrypted-text
   (decode-coding-string
(epg-decrypt-string epg-context encrypted-text)
-   'utf-8)))
+   'utf-8))
+  origin-marker)
 ;; Delete region starting just before point, because the
 ;; outline property starts at the \n of the heading.
 (delete-region (1- (point)) end)
+ (setq origin-marker (point-marker))
 ;; Store a checksum of the decrypted and the encrypted text
 ;; value.  This allows reusing the same encrypted text if the
 ;; text does not change, and therefore avoid a re-encryption
@@ -282,6 +285,12 @@ Assume `epg-context' is set."
 'org-crypt-checksum (sha1 decrypted-text)
 'org-crypt-key (org-crypt-key-for-heading)
 'org-crypt-text encrypted-text))
+ ;; Apply initial visibility.
+ (save-restriction
+   (narrow-to-region origin-marker (point))
+   (set-marker origin-marker nil)
+   (org-cycle-set-startup-visibility))
+ ;; ... but keep the previous folded state.
 (when folded-heading
   (goto-char folded-heading)
   (org-fold-subtree t))
diff --git a/lisp/org-cycle.el b/lisp/org-cycle.el
index 50aa0d21d6..762654567e 100644
--- a/lisp/org-cycle.el
+++ b/lisp/org-cycle.el
@@ -638,20 +638,21 @@ With a numeric prefix, show all headlines up to that 
level."
   "Switch subtree visibility according to VISIBILITY property."
   (interactive)
   (let ((regexp (org-re-property "VISIBILITY")))
-(org-with-point-at 1
+(save-excursion
+  (goto-char (point-min))
   (while (re-search-forward regexp nil t)
-   (let ((state (match-string 3)))
+(let ((state (match-string 3)))
  (if (not (org-at-property-p)) (outline-next-heading)
(save-excursion
  (org-back-to-heading t)
  (org-fold-subtree t)
  (pcase state
-   ("folded"
+   ("folded"
 (org-fold-subtree t))
-   ("children"
+   ("children"
 (org-fold-show-hidden-entry)
 (org-fold-show-children))
-   ("content"
+   ("content"
  ;; Newline before heading will be outside the
  ;; narrowing.  Make sure that it is revealed.
  (org-fold-heading nil)
@@ -659,9 +660,9 @@ With a numeric prefix, show all headlines up to that level."
   (save-restriction
 (org-narrow-to-subtree)
 (org-cycle-content
-   ((or "all" "showall")
+   ((or "all" "showall")
 (org-fold-show-subtree))
-   (_ nil)))
+   (_ nil)))
(org-end-o

[elpa] externals/tempel updated (5907674686 -> b52963737d)

2023-05-15 Thread ELPA Syncer
elpasync pushed a change to branch externals/tempel.

  from  5907674686 Enable recursive field modification hooks (Fix #32, #34, 
#60, #102)
   new  66a94544dc Fix recursion issue (Fix #104)
   new  55d3e1277e Minor cleanup
   new  b52963737d Update changelog


Summary of changes:
 CHANGELOG.org |  5 +
 tempel.el | 27 +++
 2 files changed, 20 insertions(+), 12 deletions(-)



[elpa] externals/tempel 66a94544dc 1/3: Fix recursion issue (Fix #104)

2023-05-15 Thread ELPA Syncer
branch: externals/tempel
commit 66a94544dce96914f75aee4bffe049b79c7843de
Author: Daniel Mendler 
Commit: Daniel Mendler 

Fix recursion issue (Fix #104)
---
 tempel.el | 16 +---
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/tempel.el b/tempel.el
index 0f7115d391..ac8eaeb55b 100644
--- a/tempel.el
+++ b/tempel.el
@@ -216,7 +216,8 @@ REGION are the current region bounds."
 (defun tempel--range-modified (ov &rest _)
   "Range overlay OV modified."
   (when (and (not tempel--inhibit-hooks) (= (overlay-start ov) (overlay-end 
ov)))
-(let (inhibit-modification-hooks)
+(let ((inhibit-modification-hooks nil)
+  (tempel--inhibit-hooks t))
   (tempel--disable (overlay-get ov 'tempel--range)
 
 (defun tempel--field-modified (ov after beg end &optional _len)
@@ -224,7 +225,8 @@ REGION are the current region bounds."
 AFTER is non-nil after the modification.
 BEG and END are the boundaries of the modification."
   (unless tempel--inhibit-hooks
-(let (inhibit-modification-hooks)
+(let ((inhibit-modification-hooks nil)
+  (tempel--inhibit-hooks t))
   (cond
;; Erase default before modification if at beginning or end
((and (not after) (overlay-get ov 'tempel--default)
@@ -253,22 +255,22 @@ BEG and END are the boundaries of the modification."
   (let (x)
 (setq x (or (and (setq x (overlay-get ov 'tempel--form)) (eval x 
(cdr st)))
 (and (setq x (overlay-get ov 'tempel--name)) 
(alist-get x (cdr st)
-(when x (tempel--replace (overlay-start ov) (overlay-end ov) ov 
x)
+(when x (tempel--synchronize-replace (overlay-start ov) 
(overlay-end ov) ov x)
   ;; Move range overlay
   (move-overlay range (overlay-start range)
 (max (overlay-end range) (overlay-end ov))
 
-(defun tempel--replace (beg end ov str)
+(defun tempel--synchronize-replace (beg end ov str)
   "Replace region between BEG and END with STR.
 If OV is alive, move it."
   (let ((old (buffer-substring-no-properties beg end)))
 (setq ov (and ov (overlay-buffer ov) ov))
 (unless (equal str old)
   (unless (eq buffer-undo-list t)
-(push (list 'apply #'tempel--replace beg (+ beg (length str)) ov old)
+(push (list 'apply #'tempel--synchronize-replace
+beg (+ beg (length str)) ov old)
   buffer-undo-list))
-  (let ((buffer-undo-list t)
-(tempel--inhibit-hooks t))
+  (let ((buffer-undo-list t))
 (save-excursion
   (goto-char beg)
   (delete-char (- end beg))



[elpa] externals/tempel b52963737d 3/3: Update changelog

2023-05-15 Thread ELPA Syncer
branch: externals/tempel
commit b52963737d6703303491c9443287de21c20d38a3
Author: Daniel Mendler 
Commit: Daniel Mendler 

Update changelog
---
 CHANGELOG.org | 5 +
 1 file changed, 5 insertions(+)

diff --git a/CHANGELOG.org b/CHANGELOG.org
index c56091cd02..7a51a1ea3f 100644
--- a/CHANGELOG.org
+++ b/CHANGELOG.org
@@ -2,6 +2,11 @@
 #+author: Daniel Mendler
 #+language: en
 
+* Development
+
+- Ensure that modification hooks are never inhibited during field modification,
+  which is needed for lsp-mode in order to keep the server synchronized.
+
 * Version 0.7 (2023-02-15)
 
 - Start of changelog.



[elpa] externals/tempel 55d3e1277e 2/3: Minor cleanup

2023-05-15 Thread ELPA Syncer
branch: externals/tempel
commit 55d3e1277ea7e2b1d318fe6bc5da50ba6e414105
Author: Daniel Mendler 
Commit: Daniel Mendler 

Minor cleanup
---
 tempel.el | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/tempel.el b/tempel.el
index ac8eaeb55b..f26476eeec 100644
--- a/tempel.el
+++ b/tempel.el
@@ -294,7 +294,8 @@ If OV is alive, move it."
 NAME is the optional field name.
 INIT is the optional initial input.
 Return the added field."
-  (let ((ov (make-overlay (point) (point
+  (let ((ov (make-overlay (point) (point)))
+(hooks (list #'tempel--field-modified)))
 (push ov (car st))
 (when name
   (overlay-put ov 'tempel--name name)
@@ -305,9 +306,9 @@ Return the added field."
   (move-overlay ov (overlay-start ov) (point)))
 (tempel--update-mark ov)
 (overlay-put ov 'tempel--field st)
-(overlay-put ov 'modification-hooks (list #'tempel--field-modified))
-(overlay-put ov 'insert-in-front-hooks (list #'tempel--field-modified))
-(overlay-put ov 'insert-behind-hooks (list #'tempel--field-modified))
+(overlay-put ov 'modification-hooks hooks)
+(overlay-put ov 'insert-in-front-hooks hooks)
+(overlay-put ov 'insert-behind-hooks hooks)
 (overlay-put ov 'face 'tempel-field)
 (when (and init (get-text-property 0 'tempel--default init))
   (overlay-put ov 'face 'tempel-default)
@@ -657,7 +658,7 @@ The completion table specifies the category `tempel'."
 (defun tempel-expand (&optional interactive)
   "Expand exactly matching template name at point.
 This completion-at-point-function (Capf) returns only the single
-exactly matching templaten ame.  As a consequence the completion
+exactly matching template name.  As a consequence the completion
 UI (e.g. Corfu) does not present the candidates for selection.
 If you want to select from a list of templates, use
 `tempel-complete' instead.  If INTERACTIVE is nil the function



[nongnu] elpa/git-commit 9c66514b2c: magit-restore-window-configuration: Select buffer

2023-05-15 Thread ELPA Syncer
branch: elpa/git-commit
commit 9c66514b2c879a8959b676393467b1f24be71303
Author: Jonas Bernoulli 
Commit: Jonas Bernoulli 

magit-restore-window-configuration: Select buffer

Apparently calling `set-window-configuration' does not update the
current buffer, so we have to do that ourselves, using code that
looks highly suspicious.

If we don't do that, then `current-buffer' returns the wrong buffer in
`magit-section-post-command-hook'.  This is not fatal for most code in
that function, and thus went unnoticed, but it trips up the recently
added `cursor-sensor-move-to-tangible'.

Closes #4940.
---
 lisp/magit-mode.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lisp/magit-mode.el b/lisp/magit-mode.el
index d05d0c9793..ac5a21743a 100644
--- a/lisp/magit-mode.el
+++ b/lisp/magit-mode.el
@@ -1202,7 +1202,9 @@ Later, when the buffer is buried, it may be restored by
   (set-window-configuration winconf)
   (when (buffer-live-p buffer)
 (with-current-buffer buffer
-  (setq magit-previous-window-configuration nil))
+  (setq magit-previous-window-configuration nil)))
+  (set-buffer (with-selected-window (selected-window)
+(current-buffer))
 
 ;;; Buffer History
 



[nongnu] elpa/magit updated (5d91aadd05 -> 9c66514b2c)

2023-05-15 Thread ELPA Syncer
elpasync pushed a change to branch elpa/magit.

  from  5d91aadd05 manual: Regenerate texi
  adds  9c66514b2c magit-restore-window-configuration: Select buffer

No new revisions were added by this update.

Summary of changes:
 lisp/magit-mode.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)



[nongnu] elpa/magit-section updated (5d91aadd05 -> 9c66514b2c)

2023-05-15 Thread ELPA Syncer
elpasync pushed a change to branch elpa/magit-section.

  from  5d91aadd05 manual: Regenerate texi
  adds  9c66514b2c magit-restore-window-configuration: Select buffer

No new revisions were added by this update.

Summary of changes:
 lisp/magit-mode.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)



[nongnu] main 83410aacf7: * elpa-packages (devil): New package

2023-05-15 Thread Stefan Monnier via
branch: main
commit 83410aacf7dff71fcc3bff37e01269bb02122d9f
Author: Stefan Monnier 
Commit: Stefan Monnier 

* elpa-packages (devil): New package
---
 elpa-packages | 4 
 1 file changed, 4 insertions(+)

diff --git a/elpa-packages b/elpa-packages
index c333cc8bb3..7d1fc2a797 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -112,6 +112,10 @@
 
  (devhelp   :url "https://codeberg.org/akib/emacs-devhelp";)
 
+ (devil :url "https://github.com/susam/devil";
+  :readme "README.org"
+  :news "CHANGES.org")
+
  (diff-ansi:url "https://codeberg.org/ideasman42/emacs-diff-ansi";
   :ignored-files ("LICENSE"))
 



[elpa] externals/tempel 1439d6ccbf 1/2: Generalize tempel--quit to tempel--enter function

2023-05-15 Thread ELPA Syncer
branch: externals/tempel
commit 1439d6ccbf66895416db53429afa8adb506f498e
Author: Daniel Mendler 
Commit: Daniel Mendler 

Generalize tempel--quit to tempel--enter function
---
 tempel.el | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tempel.el b/tempel.el
index f26476eeec..b1772312a0 100644
--- a/tempel.el
+++ b/tempel.el
@@ -358,12 +358,12 @@ Return the added field."
  (if (not region)
  (when-let (ov (apply #'tempel--placeholder st rest))
(unless rest
- (overlay-put ov 'tempel--quit t)))
+ (overlay-put ov 'tempel--enter #'tempel--done)))
(goto-char (cdr region))
(when (eq (or (car-safe elt) elt) 'r>)
  (indent-region (car region) (cdr region) nil
 ;; TEMPEL EXTENSION: Quit template immediately
-('q (overlay-put (tempel--field st) 'tempel--quit t))
+('q (overlay-put (tempel--field st) 'tempel--enter #'tempel--done))
 (_ (if-let (ret (run-hook-with-args-until-success 'tempel-user-elements 
elt))
(tempel--element st region ret)
  ;; TEMPEL EXTENSION: Evaluate forms
@@ -572,8 +572,8 @@ This is meant to be a source in `tempel-template-sources'."
   ;; If the current field is marked as "quitting", disable its
   ;; containing template right away.
   (when-let ((ov (tempel--field-at-point))
- ((overlay-get ov 'tempel--quit)))
-(tempel--done (overlay-get ov 'tempel--field
+ (fun (overlay-get ov 'tempel--enter)))
+(funcall fun ov)))
 
 (defun tempel-previous (arg)
   "Move ARG fields backward and quit at the beginning."
@@ -617,9 +617,9 @@ This is meant to be a source in `tempel-template-sources'."
   ;; TODO disable only the topmost template?
   (while tempel--active (tempel--done)))
 
-(defun tempel--done (&optional st)
-  "Finalize template ST, or last template."
-  (let ((st (or st (car tempel--active)))
+(defun tempel--done (&optional ov)
+  "Finalize template associated with field OV, or last template."
+  (let ((st (if ov (overlay-get ov 'tempel--field) (car tempel--active)))
 (buf (current-buffer)))
 ;; Ignore errors in post expansion to ensure that templates can be
 ;; terminated gracefully.



[elpa] externals/tempel cb55ca7d44 2/2: Update comment

2023-05-15 Thread ELPA Syncer
branch: externals/tempel
commit cb55ca7d44f23e48f9c90804804f6ebb43d195c4
Author: Daniel Mendler 
Commit: Daniel Mendler 

Update comment
---
 tempel.el | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tempel.el b/tempel.el
index b1772312a0..ecac41ec6d 100644
--- a/tempel.el
+++ b/tempel.el
@@ -569,8 +569,7 @@ This is meant to be a source in `tempel-template-sources'."
(if-let (next (tempel--find arg)) (goto-char next)
  (tempel-done)
  (cl-return)))
-  ;; If the current field is marked as "quitting", disable its
-  ;; containing template right away.
+  ;; Run the enter action of the field.
   (when-let ((ov (tempel--field-at-point))
  (fun (overlay-get ov 'tempel--enter)))
 (funcall fun ov)))



[elpa] externals/tempel updated (b52963737d -> cb55ca7d44)

2023-05-15 Thread ELPA Syncer
elpasync pushed a change to branch externals/tempel.

  from  b52963737d Update changelog
   new  1439d6ccbf Generalize tempel--quit to tempel--enter function
   new  cb55ca7d44 Update comment


Summary of changes:
 tempel.el | 17 -
 1 file changed, 8 insertions(+), 9 deletions(-)



[nongnu] elpa/devil e03a679297 06/49: Fix typos, spelling, and punctuation

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit e03a6792979231874bf94310e0d676f5e1cd0966
Author: Susam Pal 
Commit: Susam Pal 

Fix typos, spelling, and punctuation
---
 README.md | 59 ++-
 1 file changed, 30 insertions(+), 29 deletions(-)

diff --git a/README.md b/README.md
index 450047c159..1850eaa117 100644
--- a/README.md
+++ b/README.md
@@ -8,10 +8,10 @@ twisted! It would not be called the Devil otherwise, would 
it? If it
 were any more rational, we might call it something divine, like, uh,
 the God mode? But alas, there is nothing divine to be found here.
 Welcome, instead, to the realm of the Devil! You will be granted the
-occassional use of the comma key for punctuation, but only if you can
+occasional use of the comma key for punctuation, but only if you can
 charm the Devil! But beware, for in this sinister domain, you must
 relinquish your comma key and embrace an editing experience that
-whisphers wicked secrets into your fingertips!
+whispers wicked secrets into your fingertips!
 
 
 Contents
@@ -53,13 +53,13 @@ configured to use another key instead of `,` to mean the 
`C-`
 modifier. See the section [Custom Devil Key](#custom-devil-key) for an
 example.
 
-A skeptical reader may rightfully ask: If `,` is translated to `C-`,
+A sceptical reader may rightfully ask: If `,` is translated to `C-`,
 how on earth are we going to insert a literal `,` into the text when
 we need to? The section [Typing Commas](#typing-commas) answers this.
 But before we get there, we have some fundamentals to cover. Take the
-plunge and see what unfolds! Maybe you will like this! Maybe you
-will not! If you do not like this, you can always retreat to God mode,
-Evil mode, the vanilla key bindings, or whatever piques your fancy!
+plunge and see what unfolds! Maybe you will like this! Maybe you will
+not! If you do not like this, you can always retreat to God mode, Evil
+mode, the vanilla key bindings, or whatever piques your fancy!
 
 
 Notation
@@ -116,7 +116,7 @@ Use Devil
 -
 
 Assuming vanilla Emacs key bindings have not been changed and Devil
-has not been customized, here are some examples that demonstrate how
+has not been customised, here are some examples that demonstrate how
 Devil may be used:
 
  1. Type `, x , f` and watch Devil translate it to `C-x C-f` and
@@ -124,10 +124,10 @@ Devil may be used:
 
  2. Type `, p` to move up one line.
 
- 3. To move up multiple lines type `, p p p` and so on. Some Devil key
-sequences are repeatable keys. The repeatable Devil key sequences
-can be repeated by typing the last key of the Devil key sequence
-over and over again.
+ 3. To move up multiple lines, type `, p p p` and so on. Some Devil
+key sequences are repeatable keys. The repeatable Devil key
+sequences can be repeated by typing the last key of the Devil key
+sequence over and over again.
 
  4. Another example of a repeatable Devil key sequence is `, f f f`
 which moves the cursor word by multiple characters.
@@ -151,8 +151,8 @@ Devil may be used:
 cursor forward by 16 characters.
 
 10. Type `, SPC` to type a comma followed by space. This is a special
-key sequence to make it convenient to type comma in the text. Note
-that this sacrifices the use of `, SPC` to mean `C-SPC` which
+key sequence to make it convenient to type a comma in the text.
+Note that this sacrifices the use of `, SPC` to mean `C-SPC` which
 could have been a convenient way to set a mark.
 
 11. Type `, z SPC` and watch Devil translate it to `C-SPC` and set a
@@ -171,7 +171,7 @@ Typing Commas
 Devil makes the questionable choice of using the comma as its trigger
 key. As illustrated in the previous section, typing `, x , f` produces
 the same effect as typing `C-x C-f`. One might naturally wonder how
-then are we supposed to type literal commas.
+then we are supposed to type literal commas.
 
 Most often when we edit text, we do not really type a comma in
 isolation. Often we immediately follow the comma with a space or a
@@ -187,10 +187,10 @@ and a newline.
 In scenarios, when we do need to type a single comma, type `, ,` instead.
 
 Also, it is worth mentioning here that if all this fiddling with the
-comma key feels clumsy, we could always customize the Devil key to
+comma key feels clumsy, we could always customise the Devil key to
 something else that feels better. We could also disable Devil mode
-temporarily and renable it later with `C-,` as explained in section
-[Get Started](#get-started).
+temporarily and enable it again later with `C-,` as explained in
+section [Get Started](#get-started).
 
 
 Devil Reader
@@ -259,7 +259,7 @@ user to an Emacs key sequence:
 replacements. If any part of the string matches a key in
 `devil-translations`, then it is replaced with the corresponding
 value. For example, `, x , f` is translated to `C- x C- f`. Then
-Devil normalizes the result to `C-x C-f` by removing superfluous
+  

[nongnu] elpa/devil 331bf12bb2 17/49: Add more examples of repeatable keys to README

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 331bf12bb2242d8e06dc245363356ff8372efa03
Author: Susam Pal 
Commit: Susam Pal 

Add more examples of repeatable keys to README
---
 README.md | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index edc7cfccec..e504fd3fb0 100644
--- a/README.md
+++ b/README.md
@@ -131,7 +131,10 @@ Devil may be used:
 sequence over and over again.
 
  4. Another example of a repeatable Devil key sequence is `, f f f`
-which moves the cursor word by multiple characters.
+which moves the cursor word by multiple characters. A few other
+examples of repeatable keys are `, k k k` to kill lines, `, / / /`
+to undo changs, etc. Type `C-h v devil-repeatable-keys RET` to see
+the complete list of repeatable keys.
 
  5. Type `, s` and watch Devil translate it to `C-s` and invoke
 incremental search.



[nongnu] branch elpa/devil created (now 98064ffed4)

2023-05-15 Thread ELPA Syncer
elpasync pushed a change to branch elpa/devil.

at  98064ffed4 Remove superfluous exclamation mark

This branch includes the following new commits:

   new  e52262afdd Add Devil
   new  0c69796f26 Replace contractions with uncontracted forms
   new  f57adb4860 Set version to 0.1.0
   new  deddb5cade Remove stray message call
   new  7bf4345acc Use  instead of  for "ctrl"
   new  e03a679297 Fix typos, spelling, and punctuation
   new  943578f33f Use a smaller screenshot to show Devil smiley
   new  c11dd68394 Use the term activation to describe the Devil key
   new  a98cb1a7bd Automatically detect the activation key
   new  21eeb196f7 Explain how to configure multiple Devil keys
   new  1cf89ce338 Add yank-pop as a repeatable command
   new  4924f32560 Describe how multiple Devil keys can be configured
   new  402dcfd7fb Fix repeatable key sequence for yank-pop
   new  c6db405df4 Address code review comments offered on MELPA
   new  83e96bcfce Fix typo in function name: s/repetable/repeatable/
   new  ef5449deda Add kill-line and undo to repeatable keys
   new  331bf12bb2 Add more examples of repeatable keys to README
   new  02464b7516 Explain why a single activation key is the default
   new  b32ded26d4 Add command devil-show-version
   new  fbc422c666 Add steps to install Devil from MELPA
   new  2090eb34f4 Move configuration examples to subsections
   new  d98018356c Add section to compare Devil mode with God mode
   new  aaee73457d Remove load calls in configuration examples
   new  4b1eba8a1c Add stricter validation of translated key sequence
   new  92b95191ca Remove demo files
   new  2cc21ac252 Set version to 0.2.0
   new  2ccbcb04f4 * devil.el: Update header with more information
   new  6943ff3e82 Remove custom version command.
   new  ef7a7d4c74 Add 'devil' customisation group
   new  b3ad615c76 Fix spacing in documentation strings
   new  1b929b815b * devil.el (devil--saved-keys): Assign nil by default
   new  459ce032e4 * devil.el (devil--log-command-loop-info): Use a single 
'format'
   new  fa6eb0a319 Move tests to separate file using ERT
   new  355bcc9c14 Extract most of the README into a separate manual
   new  483ce72f48 Convert .md files to .org files
   new  79fd50fe22 Set version to 0.3.0
   new  5ae5957fc5 Improve package description
   new  f6ddd7cac1 Fix undefined error for RET, , etc.
   new  c60437c11b Support making all key sequences repeatable
   new  b84cd61eec Format .org files consistently
   new  1cee55eaa3 Use sharp-quotes consistently for function names
   new  72ce585e59 Document devil-all-keys-repeatable in the manual
   new  a42a778ec3 Add devil-all-keys-repeatable to changelog
   new  1ddc4dc2e3 Fix key translation for key vector as Devil key
   new  305a41dc55 Add MELPA badges
   new  2fe542cbc6 Mention Emacs at the beginning of documentation
   new  eb38e94a8a Do not duplicate support section in the manual
   new  d63216f1cd Link to HTML manual
   new  98064ffed4 Remove superfluous exclamation mark




[nongnu] elpa/devil c11dd68394 08/49: Use the term activation to describe the Devil key

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit c11dd683941072e25e8a223a3e0aa56151bd9316
Author: Susam Pal 
Commit: Susam Pal 

Use the term activation to describe the Devil key
---
 README.md | 10 --
 devil.el  |  2 +-
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index 22a5bfca9b..d1840bc17d 100644
--- a/README.md
+++ b/README.md
@@ -168,10 +168,10 @@ Devil may be used:
 Typing Commas
 -
 
-Devil makes the questionable choice of using the comma as its trigger
-key. As illustrated in the previous section, typing `, x , f` produces
-the same effect as typing `C-x C-f`. One might naturally wonder how
-then we are supposed to type literal commas.
+Devil makes the questionable choice of using the comma as its
+activation key. As illustrated in the previous section, typing `, x ,
+f` produces the same effect as typing `C-x C-f`. One might naturally
+wonder how then we are supposed to type literal commas.
 
 Most often when we edit text, we do not really type a comma in
 isolation. Often we immediately follow the comma with a space or a
@@ -440,8 +440,6 @@ The author of this project hangs out at the following 
places online:
   - Mastodon: [@susam@mastodon.social](https://mastodon.social/@susam)
   - Twitter: [@susam](https://twitter.com/susam)
   - GitHub: [@susam](https://github.com/susam)
-  - Matrix: 
[#susam:matrix.org](https://app.element.io/#/room/#susam:matrix.org)
-  - IRC: [#susam:libera.chat](https://web.libera.chat/#susam)
 
 You are welcome to subscribe to, follow, or join one or more of the
 above channels to receive updates from the author or ask questions
diff --git a/devil.el b/devil.el
index e24b10c74e..a4d1667f47 100644
--- a/devil.el
+++ b/devil.el
@@ -74,7 +74,7 @@ Devil mode for it to take effect.")
   (list (cons "%k %k" (lambda () (interactive) (devil-run-key "%k")))
 (cons "%k SPC" (lambda () (interactive) (devil-run-key "%k SPC")))
 (cons "%k RET" (lambda () (interactive) (devil-run-key "%k RET"
-  "Special Devil keys that are triggered as soon as they are typed.
+  "Special Devil keys that are executed as soon as they are typed.
 
 The value of this variable is an alist where each key represents
 a Devil key sequence. If a Devil key sequence matches any key in



[nongnu] elpa/devil 483ce72f48 35/49: Convert .md files to .org files

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 483ce72f48cb0fdc429aea4993649262b38a886b
Author: Susam Pal 
Commit: Susam Pal 

Convert .md files to .org files
---
 CHANGES.md| 49 ---
 CHANGES.org   | 43 +
 LICENSE.md => LICENSE.org | 19 +-
 README.md | 40 --
 README.org| 36 ++
 5 files changed, 89 insertions(+), 98 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
deleted file mode 100644
index f3bac5a46b..00
--- a/CHANGES.md
+++ /dev/null
@@ -1,49 +0,0 @@
-Changelog
-=
-
-0.2.0 (2023-05-09)
---
-
-### Added
-
-- Add `, k` to the default list of repeatable keys.
-- Add `, /` to the default list of repeatable keys.
-- Add `, m m y` to the default list of repeatable keys.
-- Add command `devil-show-version` to display Devil version.
-
-
-### Changed
-
-- Automatically detect the activation key and accumulate it in order
-  to support `devil-mode-map` with multiple activation keys.
-
-
-### Fixed
-
-- Remove a stray `message` call.
-- Make the function `dev--tests` non-interactive.
-- Translation issue that caused invalid Emacs key sequences on mapping
-  `-`. For example, mapping `-` to `C-x` and typing `- C-f` produced
-  `C-x CC-xf`. This has been fixed so that `- C-f` is now translated
-  to `C-x C-f`.
-
-
-0.1.0 (2023-05-07)
---
-
-### Added
-
-- Devil global and local minor modes.
-- Default Devil key set to the comma (`,`).
-- Special key `, ,` to type a literal comma.
-- Special key `, SPC` to type a comma followed by a space.
-- Special key `, RET` to type a comma followed by return.
-- Translation rules that translate `,` and `, z` to `C-`.
-- Translation rules that translate `m` and `, m m` to `M-`.
-- Translation rule that translates `, ,` to `,`.
-- Repeatable key sequences for `, p`, `, n`, `, f`, `, b`, `, m m f`,
-  `, m m b`, and `, m x o`.
-- Key binding for `isearch-mode-map` to support Devil key sequences in
-  incremental search.
-- Key binding for `universal-argument-map` to support repeating the
-  universal argument with `u`.
diff --git a/CHANGES.org b/CHANGES.org
new file mode 100644
index 00..0fabb788e1
--- /dev/null
+++ b/CHANGES.org
@@ -0,0 +1,43 @@
+* Changelog
+
+** 0.2.0 (2023-05-09)
+
+*** Added
+
+- Add =, k= to the default list of repeatable keys.
+- Add =, /= to the default list of repeatable keys.
+- Add =, m m y= to the default list of repeatable keys.
+- Add command =devil-show-version= to display Devil version.
+
+*** Changed
+
+- Automatically detect the activation key and accumulate it in order to
+  support =devil-mode-map= with multiple activation keys.
+
+*** Fixed
+
+- Remove a stray =message= call.
+- Make the function =dev--tests= non-interactive.
+- Translation issue that caused invalid Emacs key sequences on mapping
+  =-=. For example, mapping =-= to =C-x= and typing =- C-f= produced
+  =C-x CC-xf=. This has been fixed so that =- C-f= is now translated to
+  =C-x C-f=.
+
+** 0.1.0 (2023-05-07)
+
+*** Added
+
+- Devil global and local minor modes.
+- Default Devil key set to the comma (=,=).
+- Special key =, ,= to type a literal comma.
+- Special key =, SPC= to type a comma followed by a space.
+- Special key =, RET= to type a comma followed by return.
+- Translation rules that translate =,= and =, z= to =C-=.
+- Translation rules that translate =m= and =, m m= to =M-=.
+- Translation rule that translates =, ,= to =,=.
+- Repeatable key sequences for =, p=, =, n=, =, f=, =, b=, =, m m f=,
+  =, m m b=, and =, m x o=.
+- Key binding for =isearch-mode-map= to support Devil key sequences in
+  incremental search.
+- Key binding for =universal-argument-map= to support repeating the
+  universal argument with =u=.
diff --git a/LICENSE.md b/LICENSE.org
similarity index 64%
rename from LICENSE.md
rename to LICENSE.org
index ee8f3b8fd1..6cdd83ec6b 100644
--- a/LICENSE.md
+++ b/LICENSE.org
@@ -1,21 +1,22 @@
-The MIT License (MIT)
-=
-
+* The MIT License (MIT)
+:PROPERTIES:
+:CUSTOM_ID: the-mit-license-mit
+:END:
 Copyright (c) 2022-2023 Susam Pal
 
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
 "Software"), to deal in the Software without restriction, including
 without limitation the rights to use, copy, modify, merge, publish,
 distribute, sublicense, and/or sell copies of the Software, and to
 permit persons to whom the Software is furnished to do so, subject to
 the following conditions:
 
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permissi

[nongnu] elpa/devil 21eeb196f7 10/49: Explain how to configure multiple Devil keys

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 21eeb196f74a18509be48509af3822c49406cbe2
Author: Susam Pal 
Commit: Susam Pal 

Explain how to configure multiple Devil keys
---
 README.md | 33 +
 1 file changed, 33 insertions(+)

diff --git a/README.md b/README.md
index d1840bc17d..edc7cfccec 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,7 @@ Contents
 * [Local Mode](#local-mode)
 * [Custom Appearance](#custom-appearance)
 * [Custom Devil Key](#custom-devil-key)
+* [Multiple Devil Keys](#multiple-devil-keys)
 * [Why?](#why)
 * [Support](#support)
 * [Channels](#channels)
@@ -385,6 +386,38 @@ see the variables `devil-special-keys`, 
`devil-translations`, and
 `devil-repeatable-keys`, respectively.
 
 
+Multiple Devil Keys
+---
+
+While this package provides the comma as the default and the only
+Devil key, nothing stops you from extending the mode map to support
+multiple Devil keys. Say, you decide that in addition to activating
+Devil with `,` which also plays the role of `C-`, you also want to
+activate Devil with `.` which must now play the role of `M-`. To
+achieve such a result, you could tuse this initialization code as a
+starting point and then customise it further based on your
+requirements:
+
+```elisp
+(defvar devil-mode-map
+  (let ((map (make-sparse-keymap)))
+(define-key map (kbd ",") #'devil)
+(define-key map (kbd ".") #'devil)
+map))
+(require 'devil)
+(global-devil-mode)
+(setq devil-special-keys '((", ," . (lambda () (insert ",")))
+   (". ." . (lambda () (insert ".")
+(setq devil-translations '(("," . "C-")
+   ("." . "M-")))
+```
+
+With this configuration, we can type `, x , f` for `C-x C-f` like
+before. But now we can also type `. x` for `M-x`. Similarly, we can
+type `, . s` for `C-M-s` and so on. Further, `, ,` inserts a literal
+comma and `. .` inserts a literal dot.
+
+
 Why?
 
 



[nongnu] elpa/devil deddb5cade 04/49: Remove stray message call

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit deddb5cadeb1c2db5a3bb992a37569ffd26a7cfe
Author: Susam Pal 
Commit: Susam Pal 

Remove stray message call
---
 devil.el   | 4 +---
 meta/README.md | 4 +---
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/devil.el b/devil.el
index 2f7b7c47e6..e24b10c74e 100644
--- a/devil.el
+++ b/devil.el
@@ -3,7 +3,7 @@
 ;; Copyright (c) 2022-2023 Susam Pal
 
 ;; Author: Susam Pal
-;; Version: 0.1.0
+;; Version: 0.2.0pre1
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: convenience
 ;; URL: https://github.com/susam/devil
@@ -70,8 +70,6 @@ Devil mode for it to take effect.")
 (defvar devil-logging nil
   "Non-nil if and only if Devil should print log messages.")
 
-(message "Devil loading ...")
-
 (defvar devil-special-keys
   (list (cons "%k %k" (lambda () (interactive) (devil-run-key "%k")))
 (cons "%k SPC" (lambda () (interactive) (devil-run-key "%k SPC")))
diff --git a/meta/README.md b/meta/README.md
index 80b9886d39..e57f4347c9 100644
--- a/meta/README.md
+++ b/meta/README.md
@@ -19,10 +19,8 @@ Perform the following tasks for every release:
   - Commit changes:
 
 ```sh
-git status
 git add -p
-git commit
-git push
+git status
 ```
 
   - Tag the release:



[nongnu] elpa/devil 459ce032e4 32/49: * devil.el (devil--log-command-loop-info): Use a single 'format'

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 459ce032e40f0efaec284d2f7861ca172e130d63
Author: Philip Kaludercic 
Commit: Susam Pal 

* devil.el (devil--log-command-loop-info): Use a single 'format'
---
 devil.el | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/devil.el b/devil.el
index 8f2e3d15d2..2a341f57f8 100644
--- a/devil.el
+++ b/devil.el
@@ -344,11 +344,12 @@ the original Emacs key sequence."
 (defun devil--log-command-loop-info ()
   "Log command loop information for debugging purpose."
   (devil--log
-   (concat "Found "
-   (format "current-prefix-arg: %s; " current-prefix-arg)
-   (format "this-command: %s; " this-command)
-   (format "last-command: %s; " last-command)
-   (format "last-repeatable-command: %s" last-repeatable-command
+   (format "Found current-prefix-arg: %s; \
+this-command: %s; last-command: %s; last-repeatable-command: %s"
+  current-prefix-arg
+  this-command
+  last-command
+  last-repeatable-command)))
 
 (defun devil--repeatable-key-p (described-key)
   "Return t iff DESCRIBED-KEY belongs to `devil-repeatable-keys'."



[nongnu] elpa/devil 402dcfd7fb 13/49: Fix repeatable key sequence for yank-pop

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 402dcfd7fb9b18d70d47071ad594467e61f0a75c
Author: Susam Pal 
Commit: Susam Pal 

Fix repeatable key sequence for yank-pop
---
 devil.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/devil.el b/devil.el
index 5fd4b43ce0..4b338cb930 100644
--- a/devil.el
+++ b/devil.el
@@ -112,7 +112,7 @@ to represent `devil-key' in the keys.")
 "%k b"
 "%k m m f"
 "%k m m b"
-"%k m m p"
+"%k m m y"
 "%k x o")
   "Devil mode repeatable key sequences.
 



[nongnu] elpa/devil 83e96bcfce 15/49: Fix typo in function name: s/repetable/repeatable/

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 83e96bcfcec5ca468b747fed7fa374a66879f9e2
Author: Susam Pal 
Commit: Susam Pal 

Fix typo in function name: s/repetable/repeatable/
---
 devil.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/devil.el b/devil.el
index 288a0416ac..acdf032c35 100644
--- a/devil.el
+++ b/devil.el
@@ -258,7 +258,7 @@ sequences should be read from the user."
(devil--log "Executing key: %s => %s => %s"
described-key translated-key binding)
(call-interactively binding)
-   (when (devil--repetable-key-p described-key)
+   (when (devil--repeatable-key-p described-key)
  (devil--set-transient-map (substring described-key -1) binding))
t)
   (t
@@ -333,7 +333,7 @@ the original Emacs key sequence."
(format "last-command: %s; " last-command)
(format "last-repeatable-command: %s" last-repeatable-command
 
-(defun devil--repetable-key-p (described-key)
+(defun devil--repeatable-key-p (described-key)
   "Return t iff DESCRIBED-KEY belongs to `devil-repeatable-keys'."
   (catch 'break
 (dolist (repeatable-key devil-repeatable-keys)



[nongnu] elpa/devil fa6eb0a319 33/49: Move tests to separate file using ERT

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit fa6eb0a319f103ee1fd949cc9cec57bb97989d40
Author: Philip Kaludercic 
Commit: Susam Pal 

Move tests to separate file using ERT

* devil.el: (devil--assert, devil--tests) Remove.
* devil-tests.el: Create new file.
---
 devil-tests.el | 34 ++
 devil.el   | 24 
 2 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/devil-tests.el b/devil-tests.el
new file mode 100644
index 00..22e7071201
--- /dev/null
+++ b/devil-tests.el
@@ -0,0 +1,34 @@
+;;; devil-tests.el --- Tests for devil  -*- lexical-binding: t; -*-
+
+;;; Commentary:
+
+;; Unit tests for the internal devil logic.  Run these with M-x ert
+;; RET devil- RET.
+
+;;; Code:
+
+(require 'ert)
+(require 'devil)
+
+(ert-deftest devil-invalid-key-p ()
+  "Test if `devil--invalid-key-p' words as expected."
+  (should (devil--invalid-key-p ""))
+  (should (devil--invalid-key-p "C-x-C-f"))
+  (should (devil--invalid-key-p "C-x CC-f"))
+  (should (not (devil--invalid-key-p "C-x C-f")))
+  (should (not (devil--invalid-key-p "C-M-x"
+
+(ert-deftest devil-translate ()
+  "Test if `devil-translate' works as expected."
+  (should (string= (devil-translate (vconcat ",")) "C-"))
+  (should (string= (devil-translate (vconcat ",x")) "C-x"))
+  (should (string= (devil-translate (vconcat ",x,")) "C-x C-"))
+  (should (string= (devil-translate (vconcat ",x,f")) "C-x C-f"))
+  (should (string= (devil-translate (vconcat ",,")) ","))
+  (should (string= (devil-translate (vconcat "")) ", ,"))
+  (should (string= (devil-translate (vconcat ",mx")) "C-M-x"))
+  (should (string= (devil-translate (vconcat ",mmx")) "M-x"))
+  (should (string= (devil-translate (vconcat ",mmm")) "M-m")))
+
+(provide 'devil-tests)
+;;; devil-tests.el ends here
diff --git a/devil.el b/devil.el
index 2a341f57f8..afe1336613 100644
--- a/devil.el
+++ b/devil.el
@@ -387,29 +387,5 @@ this-command: %s; last-command: %s; 
last-repeatable-command: %s"
   (when devil-logging
 (apply #'message (concat "Devil: " format-string) args)))
 
-(defmacro devil--assert (form)
-  "Evaluate FORM and cause error if the result is nil."
-  `(unless ,form
- (error "Assertion failed: %s" ',form)))
-
-(defun devil--tests ()
-  "Test Devil functions assuming Devil has not been customized."
-  (devil--assert (devil--invalid-key-p ""))
-  (devil--assert (devil--invalid-key-p "C-x-C-f"))
-  (devil--assert (devil--invalid-key-p "C-x CC-f"))
-  (devil--assert (not (devil--invalid-key-p "C-x C-f")))
-  (devil--assert (not (devil--invalid-key-p "C-M-x")))
-  (devil--assert (string= (devil-translate (vconcat ",")) "C-"))
-  (devil--assert (string= (devil-translate (vconcat ",x")) "C-x"))
-  (devil--assert (string= (devil-translate (vconcat ",x,")) "C-x C-"))
-  (devil--assert (string= (devil-translate (vconcat ",x,f")) "C-x C-f"))
-  (devil--assert (string= (devil-translate (vconcat ",,")) ","))
-  (devil--assert (string= (devil-translate (vconcat "")) ", ,"))
-  (devil--assert (string= (devil-translate (vconcat ",mx")) "C-M-x"))
-  (devil--assert (string= (devil-translate (vconcat ",mmx")) "M-x"))
-  (devil--assert (string= (devil-translate (vconcat ",mmm")) "M-m"))
-  (message "Done"))
-
 (provide 'devil)
-
 ;;; devil.el ends here



[nongnu] elpa/devil b32ded26d4 19/49: Add command devil-show-version

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit b32ded26d4fe6e12b0f64471912759681bda2a39
Author: Susam Pal 
Commit: Susam Pal 

Add command devil-show-version
---
 CHANGES.md | 1 +
 devil.el   | 8 
 2 files changed, 9 insertions(+)

diff --git a/CHANGES.md b/CHANGES.md
index 5076899c63..5d9a355d44 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -9,6 +9,7 @@ Changelog
 - Add `, k` to the default list of repeatable keys.
 - Add `, /` to the default list of repeatable keys.
 - Add `, m m y` to the default list of repeatable keys.
+- Add command `devil-show-version` to display Devil version.
 
 
 ### Changed
diff --git a/devil.el b/devil.el
index b24e631ea9..1f3812327b 100644
--- a/devil.el
+++ b/devil.el
@@ -36,6 +36,14 @@
 ;; key sequences without using modifier keys.
 
 ;;; Code:
+(defconst devil-version "0.2.0.pre2"
+  "Devil version number.")
+
+(defun devil-show-version ()
+  "Show Devil version number in the echo area."
+  (interactive)
+  (message "Devil %s" devil-version))
+
 (defvar devil-key ","
   "The key sequence that begins Devil input.
 



[nongnu] elpa/devil c6db405df4 14/49: Address code review comments offered on MELPA

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit c6db405df4023427709c3963f989faac2a8c5911
Author: Susam Pal 
Commit: Susam Pal 

Address code review comments offered on MELPA

This change addresses the code review comments offered by Chris Rayner
at .
---
 devil.el | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/devil.el b/devil.el
index 4b338cb930..288a0416ac 100644
--- a/devil.el
+++ b/devil.el
@@ -364,7 +364,7 @@ the original Emacs key sequence."
 (defun devil--log (format-string &rest args)
   "Write log message with the given FORMAT-STRING and ARGS."
   (when devil-logging
-(apply 'message (concat "Devil: " format-string) args)))
+(apply #'message (concat "Devil: " format-string) args)))
 
 (defmacro devil--assert (form)
   "Evaluate FORM and cause error if the result is nil."
@@ -373,7 +373,6 @@ the original Emacs key sequence."
 
 (defun devil--tests ()
   "Test Devil functions assuming Devil has not been customized."
-  (interactive)
   (devil--assert (string= (devil-translate (vconcat ",")) "C-"))
   (devil--assert (string= (devil-translate (vconcat ",x")) "C-x"))
   (devil--assert (string= (devil-translate (vconcat ",x,")) "C-x C-"))



[nongnu] elpa/devil f57adb4860 03/49: Set version to 0.1.0

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit f57adb486051926e6f754206cb5bba5026768023
Author: Susam Pal 
Commit: Susam Pal 

Set version to 0.1.0
---
 devil.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/devil.el b/devil.el
index 2e9faca8a5..2f7b7c47e6 100644
--- a/devil.el
+++ b/devil.el
@@ -3,7 +3,7 @@
 ;; Copyright (c) 2022-2023 Susam Pal
 
 ;; Author: Susam Pal
-;; Version: 0.1.0pre1
+;; Version: 0.1.0
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: convenience
 ;; URL: https://github.com/susam/devil



[nongnu] elpa/devil c60437c11b 39/49: Support making all key sequences repeatable

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit c60437c11b3b76c6709dab63a34a94b35ac4c865
Author: Susam Pal 
Commit: Susam Pal 

Support making all key sequences repeatable
---
 devil.el | 26 +++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/devil.el b/devil.el
index a50b503e19..5440139b6d 100644
--- a/devil.el
+++ b/devil.el
@@ -85,7 +85,7 @@ be modified before loading Devil for it to take effect.")
   (devil-mode 1))
 
 (defcustom devil-logging nil
-  "Non-nil if and only if Devil should print log messages."
+  "Non-nil iff Devil should print log messages."
   :type 'boolean)
 
 (defvar devil-special-keys
@@ -134,9 +134,28 @@ to represent `devil-key' in the keys."
 The value of this variable is a list where each item represents a
 key sequence that may be repeated merely by typing the last
 character in the key sequence.  The format control specified `%k'
-may be used to represent `devil-key' in the keys."
+may be used to represent `devil-key' in the keys.  Only key
+sequences that translate to a complete Emacs key sequence
+according to `devil-translations' and execute an Emacs command
+are made repeatable.  Key sequences that belong to
+`devil-special-keys' are never made repeatable.  Note that this
+variable is ignored if `devil-all-keys-repeatable' is set to t."
   :type '(repeat string))
 
+(defcustom devil-all-keys-repeatable nil
+  "All successfully translated key sequences become repeatable iff t.
+
+When this variable is set to t all key sequences that translate
+to a complete and defined Emacs key sequence become a repeatable
+key sequence, i.e., it can be repeated merely by typing the last
+character in the key sequence.  Note that key sequences that
+belong to `devil-special-keys' are never made repeatable.  Also,
+note that when this variable is set to t, the variable
+`devil-repeatable-keys' is ignored.  However when this variable
+is set to nil, the variable `devil-repeatable-keys' is used to
+determine whether a key sequence is repeatable or not."
+  :type 'boolean)
+
 (defun devil-run-key (key)
   "Execute the given key sequence KEY.
 
@@ -277,7 +296,8 @@ sequences should be read from the user."
(devil--log "Executing key: %s => %s => %s"
described-key translated-key binding)
(call-interactively binding)
-   (when (devil--repeatable-key-p described-key)
+   (when (or devil-all-keys-repeatable
+ (devil--repeatable-key-p described-key))
  (devil--set-transient-map (substring described-key -1) binding))
t)
   (t



[nongnu] elpa/devil d98018356c 22/49: Add section to compare Devil mode with God mode

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit d98018356c5a40f97cf8e3349e794b3ecd6940e2
Author: Susam Pal 
Commit: Susam Pal 

Add section to compare Devil mode with God mode
---
 README.md | 56 
 1 file changed, 56 insertions(+)

diff --git a/README.md b/README.md
index 782a8a886f..9fd1962280 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,7 @@ Contents
   * [Custom Devil Key](#custom-devil-key)
   * [Multiple Devil Keys](#multiple-devil-keys)
 * [Why?](#why)
+* [Comparison with God Mode](#comparison-with-god-mode)
 * [Support](#support)
 * [Channels](#channels)
 * [More](#more)
@@ -541,6 +542,61 @@ mode, just in case, there is someone out there who might 
find this
 useful too.
 
 
+Comparison with God Mode
+
+
+God mode provides a modal editing experience but Devil does not. Devil
+has the same underlying philosophy as that of God mode, i.e., the user
+should not have to learn new key bindings. However, Devil does not
+have a hard separation between insert mode and command mode like God
+mode has. Instead, Devil waits for an activation key (`,` by default)
+and as soon as it is activated, it intercepts and translates keys,
+runs the corresponding command, and then gets out of the way. So Devil
+tries to retain the modeless editing experience of vanilla Emacs as
+much as possible.
+
+Now it is worth mentioning that some of this modeless editing
+experience can be reproduced in god-mode too using its
+`god-execute-with-current-bindings` function. Here is an example:
+
+```elisp
+(global-set-key (kbd ",") #'god-execute-with-current-bindings)
+```
+
+With this configuration, God mode translates `, x f` to `C-x C-f`.
+Similarly `, g x` invokes `M-x` and `, G s` invokes `C-M-x`. This
+provides a modeless editing experience in God mode too. However, this
+experience does not extend seamlessly to minibuffers. Devil does
+extend its Devil key translation to minibuffers.
+
+Further note that in God mode the ctrl modifier has sticky
+behaviour, i.e., the modifier remains active automatically for the
+entire key sequence. Therefore in the above example, we type `,` only
+once while typing `, x f` to invoke `C-x C-f`. However, this sticky
+behaviour implies that we need some way to disambiguate between key
+sequences like `C-x C-o` (delete blank lines) and `C-x o` (other
+window). God mode solves this by introducing `SPC` to deactivate the
+modifier, e.g., `, x o` translates to `C-x C-o` but `, x SPC o`
+translates to `C-x o`. Devil does not treat the modifier key as sticky
+which leads to simpler key sequences at the cost of a little
+additional typing, i.e., `, x , o` translates to `C-x C-o` and `, x o`
+translates to `C-x o`.
+
+To summarize, there are primarily three things that Devil does
+differently:
+
+  - Provide a modeless editing experience from the outset.
+  - Seamlessly extend the same editing experience to minibuffer,
+incremental search, etc.
+  - Translate key sequences using string replacements. This allows for
+arbitrary and sophisticated key translations for the adventurous.
+  - Choose non-sticky behaviour for the modifier keys.
+
+These differences could make Devil easier to use than God mode for
+some people but clumsy for other people. It depends on one's tastes
+and preferences.
+
+
 Support
 ---
 



[nongnu] elpa/devil 1cf89ce338 11/49: Add yank-pop as a repeatable command

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 1cf89ce3380606a6286198e5b013e5c5cd405f0b
Author: Susam Pal 
Commit: Susam Pal 

Add yank-pop as a repeatable command
---
 devil.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/devil.el b/devil.el
index b6a5fb1b2a..9819412b3f 100644
--- a/devil.el
+++ b/devil.el
@@ -106,6 +106,7 @@ to represent `devil-key' in the keys.")
 "%k b"
 "%k m m f"
 "%k m m b"
+"%k m m p"
 "%k x o")
   "Devil mode repeatable key sequences.
 



[nongnu] elpa/devil 6943ff3e82 28/49: Remove custom version command.

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 6943ff3e82ea728b049850ee31bdf4df25809487
Author: Philip Kaludercic 
Commit: Susam Pal 

Remove custom version command.

* devil.el (devil-version, devil-show-version): Remove.

The version of a package can be generically inspected with C-h P devil
RET.
---
 devil.el | 6 --
 1 file changed, 6 deletions(-)

diff --git a/devil.el b/devil.el
index 5bfb8487a3..fa08c5f381 100644
--- a/devil.el
+++ b/devil.el
@@ -37,13 +37,7 @@
 ;; key sequences without using modifier keys.
 
 ;;; Code:
-(defconst devil-version "0.2.0"
-  "Devil version number.")
 
-(defun devil-show-version ()
-  "Show Devil version number in the echo area."
-  (interactive)
-  (message "Devil %s" devil-version))
 
 (defvar devil-key ","
   "The key sequence that begins Devil input.



[nongnu] elpa/devil a98cb1a7bd 09/49: Automatically detect the activation key

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit a98cb1a7bd04dcd242b85cb6c9545a1d870a037e
Author: Susam Pal 
Commit: Susam Pal 

Automatically detect the activation key
---
 devil.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/devil.el b/devil.el
index a4d1667f47..b6a5fb1b2a 100644
--- a/devil.el
+++ b/devil.el
@@ -150,7 +150,7 @@ occurrence `devil-key' is inserted into the buffer."
   "Wake up Devil to read and translate Devil key sequences."
   (interactive)
   (devil--log "Devil waking up")
-  (devil--read-key (vconcat (kbd devil-key
+  (devil--read-key (this-command-keys)))
 
 (defun devil--read-key (key)
   "Read Devil key sequences.



[nongnu] elpa/devil 943578f33f 07/49: Use a smaller screenshot to show Devil smiley

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 943578f33fbeef895b100f750958e3cbc1b81724
Author: Susam Pal 
Commit: Susam Pal 

Use a smaller screenshot to show Devil smiley
---
 README.md | 6 +++---
 meta/Makefile | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index 1850eaa117..22a5bfca9b 100644
--- a/README.md
+++ b/README.md
@@ -344,7 +344,7 @@ Custom Appearance
 -
 
 The following initialization code shows how we can customise Devil to
-show a Devil face in the modeline and the echo area.
+show a Devil smiley (😈) in the modeline and the echo area.
 
 ```elisp
 (add-to-list 'load-path "/path/to/devil/")
@@ -357,9 +357,9 @@ show a Devil face in the modeline and the echo area.
 
 This is how Emacs may look if emojis are rendered correctly:
 
-[![Screenshot of Emacs with Devil face][horns-screenshot]][horns-screenshot]
+[![Screenshot of Emacs with Devil 
smiley][smiley-screenshot]][smiley-screenshot]
 
-[horns-screenshot]: https://i.imgur.com/6Ly7IOs.png
+[smiley-screenshot]: https://i.imgur.com/oYtwnGi.png
 
 
 Custom Devil Key
diff --git a/meta/Makefile b/meta/Makefile
index ca933a0b53..bd1bb42357 100644
--- a/meta/Makefile
+++ b/meta/Makefile
@@ -6,4 +6,4 @@ checks:
cd ~/git/melpa/ && ls -l packages/ packages-stable/ sandbox/elpa/
 
 smiley:
-   emacs -q -l smiley.el example.el example.md
+   emacs -q -l smiley.el example.md



[nongnu] elpa/eat d85744b48a: Yank active region with middle-click yank

2023-05-15 Thread ELPA Syncer
branch: elpa/eat
commit d85744b48ad064389b83d31e19afe54e96c02be7
Author: Akib Azmain Turja 
Commit: Akib Azmain Turja 

Yank active region with middle-click yank

* eat.el (eat-mouse-yank-primary): Select active region if
'select-active-regions' is non-nil.
---
 eat.el | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/eat.el b/eat.el
index 8d2ded0e07..8b17743906 100644
--- a/eat.el
+++ b/eat.el
@@ -5108,6 +5108,9 @@ STRING and ARG are passed to `yank-pop', which see."
 
 EVENT is the mouse event."
   (interactive "e")
+  (when select-active-regions
+(let (select-active-regions)
+  (deactivate-mark)))
   (unless (windowp (posn-window (event-start event)))
 (error "Position not in text area of window"))
   (select-window (posn-window (event-start event)))



[nongnu] elpa/devil 4924f32560 12/49: Describe how multiple Devil keys can be configured

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 4924f32560f204cc7a2db76db043e81a88fe90a2
Author: Susam Pal 
Commit: Susam Pal 

Describe how multiple Devil keys can be configured
---
 devil.el | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/devil.el b/devil.el
index 9819412b3f..5fd4b43ce0 100644
--- a/devil.el
+++ b/devil.el
@@ -3,7 +3,7 @@
 ;; Copyright (c) 2022-2023 Susam Pal
 
 ;; Author: Susam Pal
-;; Version: 0.2.0pre1
+;; Version: 0.2.0pre2
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: convenience
 ;; URL: https://github.com/susam/devil
@@ -50,7 +50,13 @@ Devil mode for it to take effect.")
   (let ((map (make-sparse-keymap)))
 (define-key map (kbd devil-key) #'devil)
 map)
-  "Keymap to wake up Devil when `devil-key' is typed.")
+  "Keymap to wake up Devil when `devil-key' is typed.
+
+By default, only `devil-key' is added to this keymap so that
+Devil can be activated using it. To support multiple activation
+keys, this variable may be modified to a new keymap that defines
+multiple different keys to activate Devil. This variable should
+be modified before loading Devil for it to take effect.")
 
 ;;;###autoload
 (define-minor-mode devil-mode



[nongnu] elpa/devil ef5449deda 16/49: Add kill-line and undo to repeatable keys

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit ef5449dedade848e55a83c7fff1b15083e905ece
Author: Susam Pal 
Commit: Susam Pal 

Add kill-line and undo to repeatable keys
---
 CHANGES.md | 21 +
 devil.el   |  2 ++
 2 files changed, 23 insertions(+)

diff --git a/CHANGES.md b/CHANGES.md
index cbf18a0541..5076899c63 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,27 @@
 Changelog
 =
 
+0.2.0 (UNRELEASED)
+--
+
+### Added
+
+- Add `, k` to the default list of repeatable keys.
+- Add `, /` to the default list of repeatable keys.
+- Add `, m m y` to the default list of repeatable keys.
+
+
+### Changed
+
+- Automatically detect the activation key and accumulate it in order
+  to support `devil-mode-map` with multiple activation keys.
+
+
+### Fixed
+
+- Remove a stray `message` call.
+
+
 0.1.0 (2023-05-07)
 --
 
diff --git a/devil.el b/devil.el
index acdf032c35..b24e631ea9 100644
--- a/devil.el
+++ b/devil.el
@@ -110,6 +110,8 @@ to represent `devil-key' in the keys.")
 "%k n"
 "%k f"
 "%k b"
+"%k k"
+"%k /"
 "%k m m f"
 "%k m m b"
 "%k m m y"



[nongnu] elpa/devil b84cd61eec 40/49: Format .org files consistently

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit b84cd61eecbb7d1df4ae8f46c8afe59e76afdd6c
Author: Susam Pal 
Commit: Susam Pal 

Format .org files consistently
---
 CHANGES.org |  10 +
 LICENSE.org |   2 +-
 MANUAL.org  | 694 +---
 README.org  |  50 +++--
 4 files changed, 418 insertions(+), 338 deletions(-)

diff --git a/CHANGES.org b/CHANGES.org
index 85a7d6322e..260c80ab9e 100644
--- a/CHANGES.org
+++ b/CHANGES.org
@@ -1,6 +1,9 @@
 * Changelog
 
 ** 0.3.0 (2023-05-11)
+:PROPERTIES:
+:CUSTOM_ID: 0.3.0
+:END:
 
 *** Added
 
@@ -15,7 +18,11 @@
 - Fix spacing in documentation strings.
 - Remove =devil-version= and =devil-show-version=.
 
+
 ** 0.2.0 (2023-05-09)
+:PROPERTIES:
+:CUSTOM_ID: 0.2.0
+:END:
 
 *** Added
 
@@ -40,6 +47,9 @@
 
 
 ** 0.1.0 (2023-05-07)
+:PROPERTIES:
+:CUSTOM_ID: 0.1.0
+:END:
 
 *** Added
 
diff --git a/LICENSE.org b/LICENSE.org
index 6cdd83ec6b..baa8cf143f 100644
--- a/LICENSE.org
+++ b/LICENSE.org
@@ -1,6 +1,6 @@
 * The MIT License (MIT)
 :PROPERTIES:
-:CUSTOM_ID: the-mit-license-mit
+:CUSTOM_ID: the-mit-license
 :END:
 Copyright (c) 2022-2023 Susam Pal
 
diff --git a/MANUAL.org b/MANUAL.org
index 3cd3ca982b..2bdcc2b11d 100644
--- a/MANUAL.org
+++ b/MANUAL.org
@@ -9,109 +9,124 @@
 
 #+texinfo: @insertcopying
 
+Devil mode trades your comma key in exchange for a modifier-free
+editing experience!  Yes, the comma key!  The key you would normally
+wield for punctuation in nearly every corner of text.  Yes, this is
+twisted!  It would not be called the Devil otherwise, would it?  If it
+were any more rational, we might call it something divine, like, uh,
+the God mode?  But alas, there is nothing divine to be found here.
+Welcome, instead, to the realm of the Devil!  You will be granted the
+occasional use of the comma key for punctuation, but only if you can
+charm the Devil!  But beware, for in this sinister domain, you must
+relinquish your comma key and embrace an editing experience that
+whispers wicked secrets into your fingertips!
+
+* Introduction
+:PROPERTIES:
+:CUSTOM_ID: introduction
+:END:
 Devil mode intercepts our keystrokes and translates them to Emacs key
-sequences according to a configurable set of translation rules. For
+sequences according to a configurable set of translation rules.  For
 example, with the default translation rules, when we type =, x , f=,
 Devil translates it to =C-x C-f=.
 
 The choice of the comma key (=,=) to mean the control modifier key
-(=C-=) may seem outrageous. After all, the comma is a very important
-punctuation both in prose as well as in code. Can we really get away
-with using =,= to mean the =C-= modifier? It turns out, this terrible
-idea can be made to work without too much of a hassle. At least it works
-for me! It might work for you too. If it does not, Devil can be
-configured to use another key instead of =,= to mean the =C-= modifier.
-See the section [[#custom-devil-key][Custom Devil Key]] for an example.
-
-A sceptical reader may rightfully ask: If =,= is translated to =C-=, how
-on earth are we going to insert a literal =,= into the text when we need
-to? The section [[#typing-commas][Typing Commas]] answers this. But
-before we get there, we have some fundamentals to cover. Take the plunge
-and see what unfolds! Maybe you will like this! Maybe you will not! If
-you do not like this, you can always retreat to God mode, Evil mode, the
-vanilla key bindings, or whatever piques your fancy!
+(=C-=) may seem outrageous.  After all, the comma is a very important
+punctuation both in prose as well as in code.  Can we really get away
+with using =,= to mean the =C-= modifier?  It turns out, this terrible
+idea can be made to work without too much of a hassle.  At least it
+works for me!  It might work for you too.  If it does not, Devil can
+be configured to use another key instead of =,= to mean the =C-=
+modifier.  See the section [[*Custom Devil Key]] for an example.
+
+A sceptical reader may rightfully ask: If =,= is translated to =C-=,
+how on earth are we going to insert a literal =,= into the text when
+we need to?  The section [[*Typing Commas]] answers this.  But before we
+get there, we have some fundamentals to cover.  Take the plunge and
+see what unfolds!  Maybe you will like this!  Maybe you will not!  If
+you do not like this, you can always retreat to God mode, Evil mode,
+the vanilla key bindings, or whatever piques your fancy!
 
 * Notation
 :PROPERTIES:
 :CUSTOM_ID: notation
 :END:
 A quick note about the notation used in the document: The previous
-example shows that =, x , f= is translated to =C-x C-f=. What this
-really means is that the key sequence ,x,f is translated to ctrl+x
-ctrl+f. We do not really type any space after the commas. The key , is
-directly followed by the key x. However, the key sequence notation used
-in this document contains spaces between each keystroke. This is
-consistent with how key sequences are represented in Emacs in general
-and how Emacs fun

[nongnu] elpa/devil e52262afdd 01/49: Add Devil

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit e52262afdd963f75fa31a6b21d46216efc947b94
Author: Susam Pal 
Commit: Susam Pal 

Add Devil
---
 CHANGES.md  |  22 +++
 LICENSE.md  |  23 +++
 README.md   | 457 
 devil.el| 385 +++
 meta/Makefile   |   9 ++
 meta/README.md  |  36 +
 meta/example.el |  22 +++
 meta/example.md |  27 
 meta/global.el  |   4 +
 meta/god.el |   4 +
 meta/left.el|   6 +
 meta/local.el   |   4 +
 meta/smiley.el  |  46 ++
 13 files changed, 1045 insertions(+)

diff --git a/CHANGES.md b/CHANGES.md
new file mode 100644
index 00..cbf18a0541
--- /dev/null
+++ b/CHANGES.md
@@ -0,0 +1,22 @@
+Changelog
+=
+
+0.1.0 (2023-05-07)
+--
+
+### Added
+
+- Devil global and local minor modes.
+- Default Devil key set to the comma (`,`).
+- Special key `, ,` to type a literal comma.
+- Special key `, SPC` to type a comma followed by a space.
+- Special key `, RET` to type a comma followed by return.
+- Translation rules that translate `,` and `, z` to `C-`.
+- Translation rules that translate `m` and `, m m` to `M-`.
+- Translation rule that translates `, ,` to `,`.
+- Repeatable key sequences for `, p`, `, n`, `, f`, `, b`, `, m m f`,
+  `, m m b`, and `, m x o`.
+- Key binding for `isearch-mode-map` to support Devil key sequences in
+  incremental search.
+- Key binding for `universal-argument-map` to support repeating the
+  universal argument with `u`.
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 00..ee8f3b8fd1
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+=
+
+Copyright (c) 2022-2023 Susam Pal
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 00..fb98c65696
--- /dev/null
+++ b/README.md
@@ -0,0 +1,457 @@
+Devil Mode
+==
+
+Devil mode trades your comma key in exchange for a modifier-free
+editing experience! Yes, the comma key! The key you would normally
+wield for punctuation in nearly every corner of text. Yes, this is
+twisted! It would not be called the Devil otherwise, would it? If it
+were any more rational, we might call it something divine, like, uh,
+the God mode? But alas, there's nothing divine to be found here.
+Welcome, instead, to the realm of the Devil! You will be granted the
+occassional use of the comma key for punctuation, but only if you can
+charm the Devil! But beware, for in this sinister domain, you must
+relinquish your comma key and embrace an editing experience that
+whisphers wicked secrets into your fingertips!
+
+
+Contents
+
+
+* [Introduction](#introduction)
+* [Notation](#notation)
+* [Get Started](#get-started)
+* [Use Devil](#use-devil)
+* [Typing Commas](#typing-commas)
+* [Devil Reader](#devil-reader)
+* [Translation Rules](#translation-rules)
+* [Translation Examples](#translation-examples)
+* [Extra Key Bindings](#extra-key-bindings)
+* [Local Mode](#local-mode)
+* [Custom Appearance](#custom-appearance)
+* [Custom Devil Key](#custom-devil-key)
+* [Why?](#why)
+* [Support](#support)
+* [Channels](#channels)
+* [More](#more)
+
+
+Introduction
+
+
+Devil mode intercepts our keystrokes and translates them to Emacs key
+sequences according to a configurable set of translation rules. For
+example, with the default translation rules, when we type `, x , f`,
+Devil translates it to `C-x C-f`.
+
+The choice of the comma key (`,`) to mean the control modifier key
+(`C-`) may seem outrageous. After all, the comma is a very important
+punctuation both in prose as well as in code. Can we really get away
+with using `,` to mean the `C-` modifier? It turns out, this terrible
+idea can be made to work without too much of a hassle. At least it
+works for me! It might work for you too. If it does not, Devil can be
+configured to use another key instead of `,` to mean the `C-`
+modifie

[nongnu] elpa/devil 5ae5957fc5 37/49: Improve package description

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 5ae5957fc5f598cf58df488b6aa65e032670e15d
Author: Susam Pal 
Commit: Susam Pal 

Improve package description
---
 devil.el | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/devil.el b/devil.el
index 6dde9d4bfa..24c20a4cec 100644
--- a/devil.el
+++ b/devil.el
@@ -1,4 +1,4 @@
-;;; devil.el --- Minor mode for Devil-like command entering  -*- 
lexical-binding: t; -*-
+;;; devil.el --- Minor mode for translating key sequences  -*- 
lexical-binding: t; -*-
 
 ;; Copyright (c) 2022-2023 Susam Pal
 
@@ -34,12 +34,14 @@
 ;;; Commentary:
 
 ;; Devil intercepts your devil key (comma by default) to let you type
-;; key sequences without using modifier keys.
+;; key sequences without using modifier keys.  Devil is highly
+;; configurable and it can be configured to perform other key sequence
+;; translations.
 
 ;;; Code:
 
 (defgroup devil '()
-  "Minor mode for Devil-like command entering."
+  "Minor mode for translating key sequences."
   :prefix "devil-"
   :group 'editing)
 



[nongnu] elpa/devil 0c69796f26 02/49: Replace contractions with uncontracted forms

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 0c69796f2635be6cde9ba9b451ff14c116ed25b3
Author: Susam Pal 
Commit: Susam Pal 

Replace contractions with uncontracted forms
---
 README.md | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md
index fb98c65696..152ce3cb03 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ editing experience! Yes, the comma key! The key you would 
normally
 wield for punctuation in nearly every corner of text. Yes, this is
 twisted! It would not be called the Devil otherwise, would it? If it
 were any more rational, we might call it something divine, like, uh,
-the God mode? But alas, there's nothing divine to be found here.
+the God mode? But alas, there is nothing divine to be found here.
 Welcome, instead, to the realm of the Devil! You will be granted the
 occassional use of the comma key for punctuation, but only if you can
 charm the Devil! But beware, for in this sinister domain, you must
@@ -57,9 +57,9 @@ A skeptical reader may rightfully ask: If `,` is translated 
to `C-`,
 how on earth are we going to insert a literal `,` into the text when
 we need to? The section [Typing Commas](#typing-commas) answers this.
 But before we get there, we have some fundamentals to cover. Take the
-plunge and see what unfolds! Maybe you'll like this! Maybe you won't!
-If you don't like this, you can always retreat to God mode, Evil mode,
-the vanilla key bindings, or whatever piques your fancy!
+plunge and see what unfolds! Maybe you will like this! Maybe you
+will not! If you do not like this, you can always retreat to God mode,
+Evil mode, the vanilla key bindings, or whatever piques your fancy!
 
 
 Notation
@@ -173,7 +173,7 @@ key. As illustrated in the previous section, typing `, x , 
f` produces
 the same effect as typing `C-x C-f`. One might naturally wonder how
 then are we supposed to type literal commas.
 
-Most often when we edit text, we don't really type a comma in
+Most often when we edit text, we do not really type a comma in
 isolation. Often we immediately follow the comma with a space or a
 newline. This assumption usually holds good while editing regular
 text. However, this assumption may not hold in some situations, like
@@ -409,7 +409,7 @@ that still suffers from the problem that key combinations 
like `C-x`,
 `C-a` require pressing both the modifier key and the modified key with
 the left hand fingers. I know many people remap both their caps
 lock and enter to behave like ctrl
-modifier key. While I think that's a fine solution, I was not willing
+modifier key. While I think that is a fine solution, I was not willing
 to put up with the work required to make that work seamlessly across
 all the various operating systems I work on.
 



[nongnu] elpa/devil 7bf4345acc 05/49: Use instead of for "ctrl"

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 7bf4345acc9ca8d1e5c1b67e2b7a464d18bfb17e
Author: Susam Pal 
Commit: Susam Pal 

Use  instead of  for "ctrl"
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 152ce3cb03..450047c159 100644
--- a/README.md
+++ b/README.md
@@ -389,7 +389,7 @@ Why?
 
 
 Why go to the trouble of creating and using something like this? Why
-not just remap caps lock to ctrl like every
+not just remap caps lock to ctrl like every
 other sane person does? Or if it is so important to avoid modifier
 keys, why not use something like God mode?
 



[nongnu] elpa/devil 1cee55eaa3 41/49: Use sharp-quotes consistently for function names

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 1cee55eaa3aa2b5656f3d12b2dbcf2141c760dfa
Author: Susam Pal 
Commit: Susam Pal 

Use sharp-quotes consistently for function names
---
 devil.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/devil.el b/devil.el
index 5440139b6d..65ab15200a 100644
--- a/devil.el
+++ b/devil.el
@@ -172,8 +172,8 @@ occurrence `devil-key' is inserted into the buffer."
   "Add key bindings to keymaps for Isearch and universal argument."
   (devil--log "Adding extra key bindings")
   (setq devil--saved-keys (devil--original-keys-to-be-saved))
-  (define-key isearch-mode-map (kbd devil-key) 'devil)
-  (define-key universal-argument-map (kbd "u") 'universal-argument-more))
+  (define-key isearch-mode-map (kbd devil-key) #'devil)
+  (define-key universal-argument-map (kbd "u") #'universal-argument-more))
 
 (defun devil-remove-extra-keys ()
   "Remove Devil key bindings from Isearch and universal argument."



[nongnu] elpa/devil 2ccbcb04f4 27/49: * devil.el: Update header with more information

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 2ccbcb04f42128eff861ce18a0b71cdbcf5ba714
Author: Philip Kaludercic 
Commit: Susam Pal 

* devil.el: Update header with more information
---
 devil.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/devil.el b/devil.el
index 7c5d4ca00e..5bfb8487a3 100644
--- a/devil.el
+++ b/devil.el
@@ -2,10 +2,11 @@
 
 ;; Copyright (c) 2022-2023 Susam Pal
 
-;; Author: Susam Pal
+;; Author: Susam Pal 
+;; Maintainer: Susam Pal 
 ;; Version: 0.2.0
 ;; Package-Requires: ((emacs "24.4"))
-;; Keywords: convenience
+;; Keywords: convenience, abbrev
 ;; URL: https://github.com/susam/devil
 
 ;; This file is not part of GNU Emacs.



[nongnu] elpa/devil fbc422c666 20/49: Add steps to install Devil from MELPA

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit fbc422c6661c437b8b7950c289d7e149cf736790
Author: Susam Pal 
Commit: Susam Pal 

Add steps to install Devil from MELPA
---
 README.md | 85 ++-
 1 file changed, 74 insertions(+), 11 deletions(-)

diff --git a/README.md b/README.md
index da62961073..d89d0fadf1 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,10 @@ Contents
 
 * [Introduction](#introduction)
 * [Notation](#notation)
-* [Get Started](#get-started)
+* [Install](#install)
+  * [Install Interactively from MELPA](#install-interactively-from-melpa)
+  * [Install Automatically from MELPA](#install-automatically-from-melpa)
+  * [Install from Git Source](#install-from-git-source)
 * [Use Devil](#use-devil)
 * [Typing Commas](#typing-commas)
 * [Devil Reader](#devil-reader)
@@ -80,12 +83,74 @@ general and how Emacs functions like `key-description`,
 type a space, it is represented as `SPC`.
 
 
-Get Started

+Install
+---
+
+### Install Interactively from MELPA
+
+Devil is available via [MELPA](https://melpa.org/). You may already
+have a preferred way of installing packages from MELPA. If so, install
+the package named `devil` to get Devil. For the sake of completeness,
+here is a very basic way of installing Devil from MELPA:
+
+ 1. Add the following to the Emacs initialization file (i.e.,
+`~/.emacs` or `~/.emacs.d/init.el` or `~/.config/emacs/init.el`):
 
-To get started quickly with Devil, clone its Git repository to your
-system and load it in your Emacs initialization file with the
-following steps:
+```sh
+(require 'package)
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/";) 
t)
+(package-initialize)
+```
+
+ 2. Start Emacs with the updated initialization file and then type
+these commands:
+
+```
+M-x package-refresh-contents RET
+M-x package-install RET devil RET
+```
+
+ 3. Confirm that Devil is installed successfully with this command:
+
+```
+M-x devil-show-version RET
+```
+
+ 4. Enable Devil mode with this command:
+
+```
+M-x global-devil-mode RET
+```
+
+ 4. Type `, x , f` and watch Devil translate it to `C-x C-f` and
+invoke the corresponding command.
+
+
+### Install Automatically from MELPA
+
+Here is yet another basic way to install and enable Devil using Elisp:
+
+```elisp
+(require 'package)
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/";) t)
+(package-initialize)
+(unless package-archive-contents
+  (package-refresh-contents))
+(unless (package-installed-p 'devil)
+  (package-install 'devil))
+(global-devil-mode)
+(global-set-key (kbd "C-,") 'global-devil-mode)
+```
+
+Now type `, x , f` and watch Devil translate it to `C-x C-f` and
+invoke the corresponding command. Type `C-,` to disable Devil mode.
+Type `C-,` again to enable it.
+
+
+### Install from Git Source
+
+If you prefer obtaining Devil from its Git repository, follow these
+steps:
 
  1. Clone Devil to your system:
 
@@ -93,8 +158,7 @@ following steps:
 git clone https://github.com/susam/devil.git
 ```
 
- 2. Add the following to your Emacs initialization file (i.e., to your
-`~/.emacs` or `~/.emacs.d/init.el` or `~/.config/emacs/init.el`):
+ 2. Add the following to your Emacs initialization:
 
 ```elisp
 (add-to-list 'load-path "/path/to/devil/")
@@ -108,9 +172,8 @@ following steps:
 lighter.
 
  4. Type `, x , f` and watch Devil translate it to `C-x C-f` and
-invoke the corresponding command.
-
- 5. Type `C-,` to disable Devil mode. Type `C-,` again to enable it.
+invoke the corresponding command. Type `C-,` to disable Devil
+mode. Type `C-,` again to enable it.
 
 
 Use Devil



[nongnu] elpa/devil d63216f1cd 48/49: Link to HTML manual

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit d63216f1cdb24dfb104301c3be5a02a716e6811f
Author: Susam Pal 
Commit: Susam Pal 

Link to HTML manual
---
 README.org | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.org b/README.org
index df7332343a..e292326487 100644
--- a/README.org
+++ b/README.org
@@ -16,7 +16,7 @@ if you can charm the Devil!  But beware, for in this sinister 
domain,
 you must relinquish your comma key and embrace an editing experience
 that whispers wicked secrets into your fingertips!
 
-Read the [[./MANUAL.org][manual]] for more details on how to use Devil.
+Read the [[https://susam.github.io/devil/][manual]] for more details on how to 
use Devil.
 
 ** Channels
 :PROPERTIES:



[nongnu] elpa/devil 2090eb34f4 21/49: Move configuration examples to subsections

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 2090eb34f4a6f1a3686e9bf4809cb0784e55ca69
Author: Susam Pal 
Commit: Susam Pal 

Move configuration examples to subsections
---
 README.md | 61 +
 1 file changed, 37 insertions(+), 24 deletions(-)

diff --git a/README.md b/README.md
index d89d0fadf1..782a8a886f 100644
--- a/README.md
+++ b/README.md
@@ -28,11 +28,12 @@ Contents
 * [Devil Reader](#devil-reader)
 * [Translation Rules](#translation-rules)
 * [Translation Examples](#translation-examples)
-* [Extra Key Bindings](#extra-key-bindings)
-* [Local Mode](#local-mode)
-* [Custom Appearance](#custom-appearance)
-* [Custom Devil Key](#custom-devil-key)
-* [Multiple Devil Keys](#multiple-devil-keys)
+* [Bonus Key Bindings](#bonus-key-bindings)
+* [Custom Configuration Examples](#custom-configuration-examples)
+  * [Local Mode](#local-mode)
+  * [Custom Appearance](#custom-appearance)
+  * [Custom Devil Key](#custom-devil-key)
+  * [Multiple Devil Keys](#multiple-devil-keys)
 * [Why?](#why)
 * [Support](#support)
 * [Channels](#channels)
@@ -236,9 +237,9 @@ Typing Commas
 -
 
 Devil makes the questionable choice of using the comma as its
-activation key. As illustrated in the previous section, typing `, x ,
-f` produces the same effect as typing `C-x C-f`. One might naturally
-wonder how then we are supposed to type literal commas.
+activation key. As illustrated in the previous section, typing
+`, x , f` produces the same effect as typing `C-x C-f`. One might
+naturally wonder how then we are supposed to type literal commas.
 
 Most often when we edit text, we do not really type a comma in
 isolation. Often we immediately follow the comma with a space or a
@@ -367,7 +368,7 @@ Also, note how the translation of `, m m` to `M-` allows us 
to enter a
 key sequence that begins with the `M-` modifier key.
 
 
-Extra Key Bindings
+Bonus Key Bindings
 --
 
 Devil adds the following additional key bindings only when Devil is
@@ -384,8 +385,18 @@ enabled globally with `global-devil-mode`. If Devil is 
enabled locally
 with `devil-mode`, then these features are not available.
 
 
-Local Mode
---
+Custom Configuration Examples
+-
+
+In the examples presented below, the `(require 'devil)` calls may be
+safely omitted if Devil has been installed from MELPA. There are
+appropriate autoloads in place in the Devil package that would ensure
+that it is loaded automatically on enabling Devil mode. However, the
+`require` calls have been included in the examples below for the sake
+of completeness.
+
+
+### Local Mode
 
 While the section [Get Started](#get-started) shows how we enable
 Devil mode globally, this section shows how we can enable it locally.
@@ -407,8 +418,7 @@ minibuffer. Further the special keymaps described in the 
previous
 section work only when Devil is enabled globally.
 
 
-Custom Appearance
--
+### Custom Appearance
 
 The following initialization code shows how we can customise Devil to
 show a Devil smiley (😈) in the modeline and the echo area.
@@ -429,8 +439,7 @@ This is how Emacs may look if emojis are rendered correctly:
 [smiley-screenshot]: https://i.imgur.com/oYtwnGi.png
 
 
-Custom Devil Key
-
+### Custom Devil Key
 
 The following initialization code shows how we can customise Devil to
 use a different Devil key.
@@ -452,8 +461,7 @@ see the variables `devil-special-keys`, 
`devil-translations`, and
 `devil-repeatable-keys`, respectively.
 
 
-Multiple Devil Keys

+### Multiple Devil Keys
 
 While this package provides the comma (`,`) as the default and the
 only Devil key, nothing stops you from extending the mode map to
@@ -489,7 +497,8 @@ intrusive Devil becomes during regular editing tasks. Each 
key we
 reserve to activate Devil key loses its default function and then we
 need workarounds to somehow invoke the default function associated
 with that key (like repeating `.` twice to type a single `.` in the
-above example).
+above example). Therefore, it is a good idea to keep the number of
+Devil keys to be as small as possible.
 
 
 Why?
@@ -498,13 +507,17 @@ Why?
 Why go to the trouble of creating and using something like this? Why
 not just remap caps lock to ctrl like every
 other sane person does? Or if it is so important to avoid modifier
-keys, why not use something like God mode?
+keys, why not use something like God mode or Evil mode?
+
+Well, for one, both God mode and Evil mode are modal editing modes.
+Devil, on the other hand, provides a modeless editing experience of
+Emacs as possible.
 
-Well, this minor mode began as a fun little tiny experiment. From the
-outset, it was clear that using something as crucial as the comma for
-specifying the modifier key is asking for trouble. However, I still
-wanted to see how far I could go with it. It turned out that in a
-matter of days, I was using it full-time for all of my Emacs u

[nongnu] elpa/devil 1ddc4dc2e3 44/49: Fix key translation for key vector as Devil key

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 1ddc4dc2e3255b56e9c72dfa0784dd48d20290f2
Author: Susam Pal 
Commit: Susam Pal 

Fix key translation for key vector as Devil key
---
 CHANGES.org |  5 +
 MANUAL.org  |  2 +-
 devil.el| 43 +--
 3 files changed, 27 insertions(+), 23 deletions(-)

diff --git a/CHANGES.org b/CHANGES.org
index 66d2c6c820..c3b3484d52 100644
--- a/CHANGES.org
+++ b/CHANGES.org
@@ -9,6 +9,11 @@
 
 - Add customisable variable =devil-all-keys-repeatable=.
 
+*** Fixed
+
+- Fix key translation when the Devil key is a key vector, e.g., =(kbd
+  "")=
+
 
 ** 0.3.0 (2023-05-11)
 :PROPERTIES:
diff --git a/MANUAL.org b/MANUAL.org
index bad0ed5f76..55b110114a 100644
--- a/MANUAL.org
+++ b/MANUAL.org
@@ -465,7 +465,7 @@ The following initialization code shows how we can 
customise Devil to
 use yet another different Devil key.
 
 #+begin_src elisp
-  (defvar devil-key "")
+  (defvar devil-key (kbd ""))
   (defvar devil-special-keys '(("%k %k" . (lambda () (interactive) 
(devil-run-key "%k")
   (require 'devil)
   (global-devil-mode)
diff --git a/devil.el b/devil.el
index 65ab15200a..e966b157b0 100644
--- a/devil.el
+++ b/devil.el
@@ -4,7 +4,7 @@
 
 ;; Author: Susam Pal 
 ;; Maintainer: Susam Pal 
-;; Version: 0.3.0
+;; Version: 0.4.0.pre
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: convenience, abbrev
 ;; URL: https://github.com/susam/devil
@@ -39,18 +39,13 @@
 ;; translations.
 
 ;;; Code:
-
 (defgroup devil '()
   "Minor mode for translating key sequences."
   :prefix "devil-"
   :group 'editing)
 
 (defcustom devil-key ","
-  "The key sequence that begins Devil input.
-
-The key sequence must be specified in the format returned by `C-h
-k' (`describe-key').  This variable should be set before enabling
-Devil mode for it to take effect."
+  "The key sequence that begins Devil input."
   :type 'key-sequence)
 
 (defcustom devil-lighter " Devil"
@@ -98,7 +93,7 @@ The value of this variable is an alist where each key 
represents
 a Devil key sequence.  If a Devil key sequence matches any key in
 this alist, the function or lambda in the corresponding value is
 invoked.  The format control specifier `%k' may be used to
-represent `devil-key' in the keys.")
+represent `key-description' of `devil-key' in the keys.")
 
 (defcustom devil-translations
   (list (cons "%k z" "C-")
@@ -112,10 +107,11 @@ The value of this variable is an alist where each item 
represents
 a translation rule that is applied on the Devil key sequence read
 from the user to obtain the Emacs key sequence to be executed.
 The translation rules are applied in the sequence they occur in
-the alist.  For each rule, if the key occurs anywhere in the Devil
-key sequence, it is replaced with the corresponding value in the
-translation rule.  The format control specifier `%k' may be used
-to represent `devil-key' in the keys."
+the alist.  For each rule, if the key occurs anywhere in the
+Devil key sequence, it is replaced with the corresponding value
+in the translation rule.  The format control specifier `%k' may
+be used to represent `key-description' of `devil-key' in the
+keys."
   :type '(alist :key-type string :value-type string))
 
 (defcustom devil-repeatable-keys
@@ -134,10 +130,10 @@ to represent `devil-key' in the keys."
 The value of this variable is a list where each item represents a
 key sequence that may be repeated merely by typing the last
 character in the key sequence.  The format control specified `%k'
-may be used to represent `devil-key' in the keys.  Only key
-sequences that translate to a complete Emacs key sequence
-according to `devil-translations' and execute an Emacs command
-are made repeatable.  Key sequences that belong to
+may be used to represent `key-description' of `devil-key' in the
+keys.  Only key sequences that translate to a complete Emacs key
+sequence according to `devil-translations' and execute an Emacs
+command are made repeatable.  Key sequences that belong to
 `devil-special-keys' are never made repeatable.  Note that this
 variable is ignored if `devil-all-keys-repeatable' is set to t."
   :type '(repeat string))
@@ -161,9 +157,12 @@ determine whether a key sequence is repeatable or not."
 
 KEY must be in the format returned by `C-h k` (`describe-key').
 If the format control specifier `%k' occurs in KEY, for each such
-occurrence `devil-key' is inserted into the buffer."
+occurrence `key-description' of `devil-key' is inserted into the
+buffer."
   (dolist (key (split-string key))
-(if (string= key "%k") (insert devil-key) (execute-kbd-macro (kbd key)
+(if (string= key "%k")
+(insert (key-description devil-key))
+  (execute-kbd-macro (kbd key)
 
 (defvar devil--saved-keys nil
   "Original key bindings saved by Devil.")
@@ -172,7 +171,7 @@ occurrence `devil-key' is inserted into the buffer."
   "Add key bindings to keymaps for Isearch and universal argument."
   (devil--log "Adding extra key bindings")
   (setq devi

[nongnu] elpa/devil 1b929b815b 31/49: * devil.el (devil--saved-keys): Assign nil by default

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 1b929b815b575895b7e9ade4b82704474f985e43
Author: Philip Kaludercic 
Commit: Susam Pal 

* devil.el (devil--saved-keys): Assign nil by default

Otherwise the variable is assigned a string.
---
 devil.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/devil.el b/devil.el
index 9ddf2a97c6..8f2e3d15d2 100644
--- a/devil.el
+++ b/devil.el
@@ -144,7 +144,7 @@ occurrence `devil-key' is inserted into the buffer."
   (dolist (key (split-string key))
 (if (string= key "%k") (insert devil-key) (execute-kbd-macro (kbd key)
 
-(defvar devil--saved-keys
+(defvar devil--saved-keys nil
   "Original key bindings saved by Devil.")
 
 (defun devil-add-extra-keys ()



[nongnu] elpa/devil 98064ffed4 49/49: Remove superfluous exclamation mark

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 98064ffed40a86def0049d87d8412a5049d14c31
Author: Susam Pal 
Commit: Susam Pal 

Remove superfluous exclamation mark
---
 MANUAL.org | 2 +-
 README.org | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/MANUAL.org b/MANUAL.org
index bcab28f294..2c326b83c4 100644
--- a/MANUAL.org
+++ b/MANUAL.org
@@ -10,7 +10,7 @@
 #+texinfo: @insertcopying
 
 Devil mode trades your comma key in exchange for a modifier-free
-editing experience in Emacs!  Yes, the comma key!  The key you would
+editing experience in Emacs.  Yes, the comma key!  The key you would
 normally wield for punctuation in nearly every corner of text.  Yes,
 this is twisted!  It would not be called the Devil otherwise, would
 it?  If it were any more rational, we might call it something divine,
diff --git a/README.org b/README.org
index e292326487..07a42234c9 100644
--- a/README.org
+++ b/README.org
@@ -5,7 +5,7 @@
 
[[https://mastodon.social/@susam][file:https://img.shields.io/badge/mastodon-%40susam-%2355f.svg]]
 
 Devil mode trades your comma key in exchange for a modifier-free
-editing experience in Emacs!  Yes, the comma key!  The key you would
+editing experience in Emacs.  Yes, the comma key!  The key you would
 normally wield for punctuation in nearly every corner of text.  Yes,
 this is twisted!  It would not be called the Devil otherwise, would
 it?  If it were any more rational, we might call it something divine,



[nongnu] elpa/devil 2fe542cbc6 46/49: Mention Emacs at the beginning of documentation

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 2fe542cbc6964a67f2132a01333404182ff2d3d6
Author: Susam Pal 
Commit: Susam Pal 

Mention Emacs at the beginning of documentation
---
 MANUAL.org | 20 ++--
 README.org | 20 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/MANUAL.org b/MANUAL.org
index 55b110114a..12d928ad9f 100644
--- a/MANUAL.org
+++ b/MANUAL.org
@@ -10,16 +10,16 @@
 #+texinfo: @insertcopying
 
 Devil mode trades your comma key in exchange for a modifier-free
-editing experience!  Yes, the comma key!  The key you would normally
-wield for punctuation in nearly every corner of text.  Yes, this is
-twisted!  It would not be called the Devil otherwise, would it?  If it
-were any more rational, we might call it something divine, like, uh,
-the God mode?  But alas, there is nothing divine to be found here.
-Welcome, instead, to the realm of the Devil!  You will be granted the
-occasional use of the comma key for punctuation, but only if you can
-charm the Devil!  But beware, for in this sinister domain, you must
-relinquish your comma key and embrace an editing experience that
-whispers wicked secrets into your fingertips!
+editing experience in Emacs!  Yes, the comma key!  The key you would
+normally wield for punctuation in nearly every corner of text.  Yes,
+this is twisted!  It would not be called the Devil otherwise, would
+it?  If it were any more rational, we might call it something divine,
+like, uh, the God mode?  But alas, there is nothing divine to be found
+here.  Welcome, instead, to the realm of the Devil!  You will be
+granted the occasional use of the comma key for punctuation, but only
+if you can charm the Devil!  But beware, for in this sinister domain,
+you must relinquish your comma key and embrace an editing experience
+that whispers wicked secrets into your fingertips!
 
 * Introduction
 :PROPERTIES:
diff --git a/README.org b/README.org
index 1aeda7c43a..df7332343a 100644
--- a/README.org
+++ b/README.org
@@ -5,16 +5,16 @@
 
[[https://mastodon.social/@susam][file:https://img.shields.io/badge/mastodon-%40susam-%2355f.svg]]
 
 Devil mode trades your comma key in exchange for a modifier-free
-editing experience!  Yes, the comma key!  The key you would normally
-wield for punctuation in nearly every corner of text.  Yes, this is
-twisted!  It would not be called the Devil otherwise, would it?  If it
-were any more rational, we might call it something divine, like, uh,
-the God mode?  But alas, there is nothing divine to be found here.
-Welcome, instead, to the realm of the Devil!  You will be granted the
-occasional use of the comma key for punctuation, but only if you can
-charm the Devil!  But beware, for in this sinister domain, you must
-relinquish your comma key and embrace an editing experience that
-whispers wicked secrets into your fingertips!
+editing experience in Emacs!  Yes, the comma key!  The key you would
+normally wield for punctuation in nearly every corner of text.  Yes,
+this is twisted!  It would not be called the Devil otherwise, would
+it?  If it were any more rational, we might call it something divine,
+like, uh, the God mode?  But alas, there is nothing divine to be found
+here.  Welcome, instead, to the realm of the Devil!  You will be
+granted the occasional use of the comma key for punctuation, but only
+if you can charm the Devil!  But beware, for in this sinister domain,
+you must relinquish your comma key and embrace an editing experience
+that whispers wicked secrets into your fingertips!
 
 Read the [[./MANUAL.org][manual]] for more details on how to use Devil.
 



[nongnu] elpa/devil a42a778ec3 43/49: Add devil-all-keys-repeatable to changelog

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit a42a778ec3922ad886927a5996aea96a6100a39a
Author: Susam Pal 
Commit: Susam Pal 

Add devil-all-keys-repeatable to changelog
---
 CHANGES.org | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/CHANGES.org b/CHANGES.org
index 260c80ab9e..66d2c6c820 100644
--- a/CHANGES.org
+++ b/CHANGES.org
@@ -1,5 +1,15 @@
 * Changelog
 
+** 0.4.0 (UNRELEASED)
+:PROPERTIES:
+:CUSTOM_ID: 0.4.0
+:END:
+
+*** Added
+
+- Add customisable variable =devil-all-keys-repeatable=.
+
+
 ** 0.3.0 (2023-05-11)
 :PROPERTIES:
 :CUSTOM_ID: 0.3.0
@@ -7,7 +17,7 @@
 
 *** Added
 
-- Add customization group.
+- Add customisation group =devil=.
 
 *** Changed
 



[nongnu] elpa/devil 2cc21ac252 26/49: Set version to 0.2.0

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 2cc21ac252b74c24858ca7b670e5574058b2643d
Author: Susam Pal 
Commit: Susam Pal 

Set version to 0.2.0
---
 CHANGES.md | 2 +-
 devil.el   | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index d59500f14f..f3bac5a46b 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,7 +1,7 @@
 Changelog
 =
 
-0.2.0 (UNRELEASED)
+0.2.0 (2023-05-09)
 --
 
 ### Added
diff --git a/devil.el b/devil.el
index c26b77b5ee..7c5d4ca00e 100644
--- a/devil.el
+++ b/devil.el
@@ -3,7 +3,7 @@
 ;; Copyright (c) 2022-2023 Susam Pal
 
 ;; Author: Susam Pal
-;; Version: 0.2.0pre2
+;; Version: 0.2.0
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: convenience
 ;; URL: https://github.com/susam/devil
@@ -36,7 +36,7 @@
 ;; key sequences without using modifier keys.
 
 ;;; Code:
-(defconst devil-version "0.2.0.pre2"
+(defconst devil-version "0.2.0"
   "Devil version number.")
 
 (defun devil-show-version ()



[nongnu] elpa/devil b3ad615c76 30/49: Fix spacing in documentation strings

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit b3ad615c7623525153a707d21c6aef3f43354e9d
Author: Philip Kaludercic 
Commit: Susam Pal 

Fix spacing in documentation strings
---
 devil.el | 54 --
 1 file changed, 28 insertions(+), 26 deletions(-)

diff --git a/devil.el b/devil.el
index d4fb39e987..9ddf2a97c6 100644
--- a/devil.el
+++ b/devil.el
@@ -47,7 +47,7 @@
   "The key sequence that begins Devil input.
 
 The key sequence must be specified in the format returned by `C-h
-k' (`describe-key'). This variable should be set before enabling
+k' (`describe-key').  This variable should be set before enabling
 Devil mode for it to take effect."
   :type 'key-sequence)
 
@@ -62,9 +62,9 @@ Devil mode for it to take effect."
   "Keymap to wake up Devil when `devil-key' is typed.
 
 By default, only `devil-key' is added to this keymap so that
-Devil can be activated using it. To support multiple activation
+Devil can be activated using it.  To support multiple activation
 keys, this variable may be modified to a new keymap that defines
-multiple different keys to activate Devil. This variable should
+multiple different keys to activate Devil.  This variable should
 be modified before loading Devil for it to take effect.")
 
 ;;;###autoload
@@ -93,9 +93,9 @@ be modified before loading Devil for it to take effect.")
   "Special Devil keys that are executed as soon as they are typed.
 
 The value of this variable is an alist where each key represents
-a Devil key sequence. If a Devil key sequence matches any key in
+a Devil key sequence.  If a Devil key sequence matches any key in
 this alist, the function or lambda in the corresponding value is
-invoked. The format control specifier `%k' may be used to
+invoked.  The format control specifier `%k' may be used to
 represent `devil-key' in the keys.")
 
 (defcustom devil-translations
@@ -110,9 +110,9 @@ The value of this variable is an alist where each item 
represents
 a translation rule that is applied on the Devil key sequence read
 from the user to obtain the Emacs key sequence to be executed.
 The translation rules are applied in the sequence they occur in
-the alist. For each rule, if the key occurs anywhere in the Devil
+the alist.  For each rule, if the key occurs anywhere in the Devil
 key sequence, it is replaced with the corresponding value in the
-translation rule. The format control specifier `%k' may be used
+translation rule.  The format control specifier `%k' may be used
 to represent `devil-key' in the keys."
   :type '(alist :key-type string :value-type string))
 
@@ -131,7 +131,7 @@ to represent `devil-key' in the keys."
 
 The value of this variable is a list where each item represents a
 key sequence that may be repeated merely by typing the last
-character in the key sequence. The format control specified `%k'
+character in the key sequence.  The format control specified `%k'
 may be used to represent `devil-key' in the keys."
   :type '(repeat string))
 
@@ -182,11 +182,11 @@ translation to Emacs key sequence, or an undefined key 
sequence
 after translation to Emacs key sequence.
 
 The argument KEY is a vector that represents the key sequence
-read so far. This function reads a new key from the user, appends
+read so far.  This function reads a new key from the user, appends
 it to KEY, and then checks if the result is a valid key sequence
-or an undefined key sequence. If the result is a valid key
+or an undefined key sequence.  If the result is a valid key
 sequence for a special key command or an Emacs command, then the
-command is executed. Otherwise, this function calls itself
+command is executed.  Otherwise, this function calls itself
 recursively to read yet another key from the user."
   (setq key (vconcat key (vector (read-key (devil--make-prompt key)
   (unless (devil--run-command key)
@@ -204,6 +204,8 @@ The following format control sequences are supported:
 
 (defun devil--make-prompt (key)
   "Create Devil prompt based on the given KEY."
+  ;; If you are interested in adding Compat as a dependency, you can
+  ;; make use of `format-spec' without raining the minimum version.
   (let ((result devil-prompt)
 (controls (list (cons "%k" (key-description key))
 (cons "%t" (devil-translate key))
@@ -215,16 +217,16 @@ The following format control sequences are supported:
 (defun devil--run-command (key)
   "Try running the command bound to the key sequence in KEY.
 
-KEY is a vector that represents a sequence of keystrokes. If KEY
+KEY is a vector that represents a sequence of keystrokes.  If KEY
 is found to be a special key in `devil-special-keys', the
 corresponding special command is executed immediately and t is
 returned.
 
 Otherwise, it is translated to an Emacs key sequence using
-`devil-translations'. If the resulting Emacs key sequence is
+`devil-translations'.  If the resulting Emacs key sequence is
 found to be a complete key sequence, the command it is boun

[nongnu] elpa/devil eb38e94a8a 47/49: Do not duplicate support section in the manual

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit eb38e94a8aead909275ecdb186533dd907b1afeb
Author: Susam Pal 
Commit: Susam Pal 

Do not duplicate support section in the manual
---
 MANUAL.org | 6 --
 1 file changed, 6 deletions(-)

diff --git a/MANUAL.org b/MANUAL.org
index 12d928ad9f..bcab28f294 100644
--- a/MANUAL.org
+++ b/MANUAL.org
@@ -651,9 +651,3 @@ differently:
 These differences could make Devil easier to use than God mode for
 some people but clumsy for other people.  It depends on one's tastes
 and preferences.
-
-* Support
-:PROPERTIES:
-:CUSTOM_ID: support
-:END:
-To report bugs, suggest improvements, or ask questions, 
[[https://github.com/susam/devil/issues][create issues]].



[nongnu] elpa/devil 92b95191ca 25/49: Remove demo files

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 92b95191ca5c11335c3254d4bcac2a361c0ca531
Author: Susam Pal 
Commit: Susam Pal 

Remove demo files
---
 meta/Makefile   |  9 -
 meta/README.md  | 34 --
 meta/example.el | 22 --
 meta/example.md | 27 ---
 meta/global.el  |  4 
 meta/god.el |  4 
 meta/left.el|  6 --
 meta/local.el   |  4 
 meta/smiley.el  | 46 --
 9 files changed, 156 deletions(-)

diff --git a/meta/Makefile b/meta/Makefile
deleted file mode 100644
index bd1bb42357..00
--- a/meta/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-checks:
-   cd ~/git/melpa/ && make clean && rm -rf packages/devil* working/devil/
-   cd ~/git/melpa/ && make recipes/devil
-   -cd ~/git/melpa/ && STABLE=t make recipes/devil
-   cd ~/git/melpa/ && make sandbox INSTALL=devil
-   cd ~/git/melpa/ && ls -l packages/ packages-stable/ sandbox/elpa/
-
-smiley:
-   emacs -q -l smiley.el example.md
diff --git a/meta/README.md b/meta/README.md
deleted file mode 100644
index e57f4347c9..00
--- a/meta/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-Developer Notes
-===
-
-Release Checklist
--
-
-Perform the following tasks for every release:
-
-  - Update version in devil.el.
-  - Update copyright notice in devil.el.
-  - Update copyright notice in LICENSE.md.
-  - Update CHANGES.md.
-  - Run checks:
-
-```sh
-make checks
-```
-
-  - Commit changes:
-
-```sh
-git add -p
-git status
-```
-
-  - Tag the release:
-
-```
-VERSION=
-
-git commit -em "Set version to $VERSION"
-git tag $VERSION -m "Devil $VERSION"
-git push origin main $VERSION
-```
diff --git a/meta/example.el b/meta/example.el
deleted file mode 100644
index 7ba5f4c9ac..00
--- a/meta/example.el
+++ /dev/null
@@ -1,22 +0,0 @@
-;;; Emacs Lisp Examples.
-
-(defun hello-world ()
-  "Show 'hello, world' message."
-  (interactive)
-  (message "hello, world"))
-
-(defun show-current-time ()
-  "Show current time."
-  (interactive)
-  (message (current-time-string)))
-
-(defun fibonacci (n)
-  "Compute nth Fibonacci number."
-  (cond ((= n 0) 0)
-((= n 1) 1)
-(t (+ (fibonacci (- n 1))
-  (fibonacci (- n 2))
-
-(global-set-key (kbd "C-c h") 'hello-world)
-(global-set-key (kbd "C-c t") 'show-current-time)
-(global-set-key (kbd "C-c d") 'delete-trailing-whitespace)
diff --git a/meta/example.md b/meta/example.md
deleted file mode 100644
index 374b092f11..00
--- a/meta/example.md
+++ /dev/null
@@ -1,27 +0,0 @@
-Emacs Lisp
-==
-
-Emacs Lisp is a dialect of the Lisp programming language. Most
-of the GNU Emacs text editor is written in this programming
-language. The Emacs Lisp manual describes the usefulness of
-Emacs Lisp as follows:
-
-> You can write new code in Emacs Lisp and install it as an
-> extension to the editor. However, Emacs Lisp is more than a
-> mere extension language; it is a full computer programming
-> language in its own right. You can use it as you would any
-> other programming language.
-
-Here is a simple Emacs Lisp example that prints the string
-"hello, world" in the echo area:
-
-```
-(message "hello, world")
-```
-
-Emacs Lisp supports both imperative and functional programming
-paradigms. The extension `.el` is used by convention to name
-files that contain Emacs Lisp programs.
-
-The GNU Emacs Lisp manual is available in various formats at
-.
diff --git a/meta/global.el b/meta/global.el
deleted file mode 100644
index e93114c099..00
--- a/meta/global.el
+++ /dev/null
@@ -1,4 +0,0 @@
-(add-to-list 'load-path "~/git/devil/")
-(require 'devil)
-(global-devil-mode)
-(global-set-key (kbd "C-,") 'global-devil-mode)
diff --git a/meta/god.el b/meta/god.el
deleted file mode 100644
index 75d2e21271..00
--- a/meta/god.el
+++ /dev/null
@@ -1,4 +0,0 @@
-(add-to-list 'load-path "~/git/god-mode/")
-(require 'god-mode)
-(god-mode)
-(global-set-key (kbd "") 'god-mode-all)
diff --git a/meta/left.el b/meta/left.el
deleted file mode 100644
index ef519930f2..00
--- a/meta/left.el
+++ /dev/null
@@ -1,6 +0,0 @@
-(add-to-list 'load-path "~/git/devil/")
-(setq devil-logging t)
-(setq devil-key "")
-(require 'devil)
-(global-devil-mode)
-(global-set-key (kbd "C-") 'global-devil-mode)
diff --git a/meta/local.el b/meta/local.el
deleted file mode 100644
index aeaf9ca915..00
--- a/meta/local.el
+++ /dev/null
@@ -1,4 +0,0 @@
-(add-to-list 'load-path "~/git/devil/")
-(require 'devil)
-(add-hook 'text-mode-hook 'devil-mode)
-(global-set-key (kbd "C-,") 'devil-mode)
diff --git a/meta/smiley.el b/meta/smiley.el
deleted file mode 100644
index c3c83b92ef..00
--- a/meta/smiley.el
+++ /dev/null
@@ -1,46 +0,0 @@
-;; Customize user interface.
-(when (display-graphic-p)
-  (tool-bar-mode 0)
-  (scroll-bar-mode 0)

[nongnu] elpa/devil 02464b7516 18/49: Explain why a single activation key is the default

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 02464b751624cd51d29c4e983f4f23db37156574
Author: Susam Pal 
Commit: Susam Pal 

Explain why a single activation key is the default
---
 README.md | 31 +++
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/README.md b/README.md
index e504fd3fb0..da62961073 100644
--- a/README.md
+++ b/README.md
@@ -392,12 +392,12 @@ see the variables `devil-special-keys`, 
`devil-translations`, and
 Multiple Devil Keys
 ---
 
-While this package provides the comma as the default and the only
-Devil key, nothing stops you from extending the mode map to support
-multiple Devil keys. Say, you decide that in addition to activating
-Devil with `,` which also plays the role of `C-`, you also want to
-activate Devil with `.` which must now play the role of `M-`. To
-achieve such a result, you could tuse this initialization code as a
+While this package provides the comma (`,`) as the default and the
+only Devil key, nothing stops you from extending the mode map to
+support multiple Devil keys. Say, you decide that in addition to
+activating Devil with `,` which also plays the role of `C-`, you also
+want to activate Devil with `.` which must now play the role of `M-`.
+To achieve such a result, you could use this initialization code as a
 starting point and then customise it further based on your
 requirements:
 
@@ -420,6 +420,14 @@ before. But now we can also type `. x` for `M-x`. 
Similarly, we can
 type `, . s` for `C-M-s` and so on. Further, `, ,` inserts a literal
 comma and `. .` inserts a literal dot.
 
+Note that by default, Devil configures only one activation key, i.e.,
+the comma (`,`) because the more activation keys we add, the more
+intrusive Devil becomes during regular editing tasks. Each key we
+reserve to activate Devil key loses its default function and then we
+need workarounds to somehow invoke the default function associated
+with that key (like repeating `.` twice to type a single `.` in the
+above example).
+
 
 Why?
 
@@ -429,12 +437,11 @@ not just remap caps lock to ctrl 
like every
 other sane person does? Or if it is so important to avoid modifier
 keys, why not use something like God mode?
 
-Well, this minor mode began as a tiny little experiment just for fun.
-From the outset, it was clear that using something as crucial as the
-comma for specifying the modifier key is asking for trouble. However,
-I still wanted to see how far I could go with it. It turned out that
-in a matter of days, I was using it full-time for all of my Emacs
-usage.
+Well, this minor mode began as a fun little tiny experiment. From the
+outset, it was clear that using something as crucial as the comma for
+specifying the modifier key is asking for trouble. However, I still
+wanted to see how far I could go with it. It turned out that in a
+matter of days, I was using it full-time for all of my Emacs usage.
 
 This experiment was partly motivated by Macbook keyboards which do not
 have a right ctrl key. Being a touch-typist myself, I found



[nongnu] elpa/devil aaee73457d 23/49: Remove load calls in configuration examples

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit aaee73457dd34970ab35982c22dbac6bbc802f88
Author: Susam Pal 
Commit: Susam Pal 

Remove load calls in configuration examples
---
 README.md | 49 +
 1 file changed, 25 insertions(+), 24 deletions(-)

diff --git a/README.md b/README.md
index 9fd1962280..749508cc33 100644
--- a/README.md
+++ b/README.md
@@ -390,11 +390,11 @@ Custom Configuration Examples
 -
 
 In the examples presented below, the `(require 'devil)` calls may be
-safely omitted if Devil has been installed from MELPA. There are
-appropriate autoloads in place in the Devil package that would ensure
-that it is loaded automatically on enabling Devil mode. However, the
-`require` calls have been included in the examples below for the sake
-of completeness.
+omitted if Devil has been installed from MELPA. There are appropriate
+autoloads in place in the Devil package that would ensure that it is
+loaded automatically on enabling Devil mode. However, the `require`
+calls have been included in the examples below for the sake of
+completeness.
 
 
 ### Local Mode
@@ -405,7 +405,6 @@ Here is an example initialization code that enables Devil 
locally only
 in text buffers.
 
 ```elisp
-(add-to-list 'load-path "/path/to/devil/")
 (require 'devil)
 (add-hook 'text-mode-hook 'devil-mode)
 (global-set-key (kbd "C-,") 'devil-mode)
@@ -425,7 +424,6 @@ The following initialization code shows how we can 
customise Devil to
 show a Devil smiley (😈) in the modeline and the echo area.
 
 ```elisp
-(add-to-list 'load-path "/path/to/devil/")
 (require 'devil)
 (setq devil-lighter " \U0001F608")
 (setq devil-prompt "\U0001F608 %t")
@@ -446,8 +444,8 @@ The following initialization code shows how we can 
customise Devil to
 use a different Devil key.
 
 ```elisp
-(add-to-list 'load-path "/path/to/devil/")
-(setq devil-key "")
+(defvar devil-key "")
+(defvar devil-special-keys '(("%k %k" . (lambda () (interactive) 
(devil-run-key "%k")
 (require 'devil)
 (global-devil-mode)
 (global-set-key (kbd "C-") 'global-devil-mode)
@@ -457,9 +455,12 @@ The above example sets the Devil key to the left arrow 
key, perhaps
 another dubious choice for the Devil key. With this configuration, we
 can use ` x  f` and have Devil translate it to `C-x C-f`.
 
-To customise the special keys, translation rules, and repeatable keys,
-see the variables `devil-special-keys`, `devil-translations`, and
-`devil-repeatable-keys`, respectively.
+Additionally, the above example defines the `devil-special-keys`
+variable to have a single entry that allows typing ` ` to
+produce the same effect as the original ``. It removes the other
+entries, so that ` SPC` is no longer reserved as a special key.
+Thus ` SPC` can now be used to set a mark like one would
+normally expect.
 
 
 ### Multiple Devil Keys
@@ -479,12 +480,12 @@ requirements:
 (define-key map (kbd ",") #'devil)
 (define-key map (kbd ".") #'devil)
 map))
+(defvar devil-special-keys '((", ," . (lambda () (insert ",")))
+ (". ." . (lambda () (insert ".")
+(defvar devil-translations '(("," . "C-")
+ ("." . "M-")))
 (require 'devil)
 (global-devil-mode)
-(setq devil-special-keys '((", ," . (lambda () (insert ",")))
-   (". ." . (lambda () (insert ".")
-(setq devil-translations '(("," . "C-")
-   ("." . "M-")))
 ```
 
 With this configuration, we can type `, x , f` for `C-x C-f` like
@@ -492,14 +493,14 @@ before. But now we can also type `. x` for `M-x`. 
Similarly, we can
 type `, . s` for `C-M-s` and so on. Further, `, ,` inserts a literal
 comma and `. .` inserts a literal dot.
 
-Note that by default, Devil configures only one activation key, i.e.,
-the comma (`,`) because the more activation keys we add, the more
-intrusive Devil becomes during regular editing tasks. Each key we
-reserve to activate Devil key loses its default function and then we
-need workarounds to somehow invoke the default function associated
-with that key (like repeating `.` twice to type a single `.` in the
-above example). Therefore, it is a good idea to keep the number of
-Devil keys to be as small as possible.
+Note that by default Devil configures only one activation key (`,`)
+because the more activation keys we add, the more intrusive Devil
+becomes during regular editing tasks. Every key that we reserve for
+activating Devil loses its default function and then we need
+workarounds to somehow invoke the default function associated with
+that key (like repeating `.` twice to insert a single `.` in the above
+example). Therefore, it is a good idea to keep the number of Devil
+keys as small as possible.
 
 
 Why?



[nongnu] elpa/devil 4b1eba8a1c 24/49: Add stricter validation of translated key sequence

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 4b1eba8a1ca2b6f79a5f2db0f675f96ec870f73a
Author: Susam Pal 
Commit: Susam Pal 

Add stricter validation of translated key sequence

Prior to this change, there was a translation issue that caused
invalid Emacs key sequences on mapping `-`. For example, mapping `-`
to `C-x` and typing `- C-f` produced `C-x CC-xf`. This has been
fixed so that `- C-f` is now translated to `C-x C-f`.
---
 CHANGES.md |  5 +
 devil.el   | 32 
 2 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index 5d9a355d44..d59500f14f 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -21,6 +21,11 @@ Changelog
 ### Fixed
 
 - Remove a stray `message` call.
+- Make the function `dev--tests` non-interactive.
+- Translation issue that caused invalid Emacs key sequences on mapping
+  `-`. For example, mapping `-` to `C-x` and typing `- C-f` produced
+  `C-x CC-xf`. This has been fixed so that `- C-f` is now translated
+  to `C-x C-f`.
 
 
 0.1.0 (2023-05-07)
diff --git a/devil.el b/devil.el
index 1f3812327b..c26b77b5ee 100644
--- a/devil.el
+++ b/devil.el
@@ -254,7 +254,7 @@ sequences should be read from the user."
  (translated-key (devil-translate key))
  (parsed-key (condition-case nil (kbd translated-key) (error nil)))
  (binding (when parsed-key (key-binding parsed-key
-(cond ((string-match "[ACHMsS]-$" translated-key)
+(cond ((string-match "[ACHMSs]-$" translated-key)
(devil--log "Ignoring incomplete key: %s => %s"
described-key translated-key)
nil)
@@ -293,7 +293,7 @@ read so far."
  (try-key))
 (when (string-prefix-p from-key in-key)
   (setq try-key (devil--clean-key (concat result to-key)))
-  (when (devil--valid-key-p try-key)
+  (unless (devil--invalid-key-p try-key)
 (setq result try-key)
 (setq index (+ index (length from-key)))
 (throw 'break t)
@@ -359,13 +359,16 @@ the original Emacs key sequence."
 
 (defun devil--clean-key (translated-key)
   "Clean up TRANSLATED-KEY to properly formatted Emacs key sequence."
-  (replace-regexp-in-string "\\([ACHMsS]\\)- " "\\1-" translated-key))
+  (replace-regexp-in-string "\\([ACHMSs]\\)- " "\\1-" translated-key))
 
-(defun devil--valid-key-p (translated-key)
-  "Return nil iff TRANSLATED-KEY is an invalid Emacs key sequence."
-  (not (string-match-p (concat "A-[^ ]*A-\\|" "C-[^ ]*C-\\|" "H-[^ ]*H-\\|"
-   "M-[^ ]*M-\\|" "s-[^ ]*s-\\|" "S-[^ ]*S-")
-   translated-key)))
+(defun devil--invalid-key-p (translated-key)
+  "Return t iff TRANSLATED-KEY is an invalid Emacs key sequence."
+  (catch 'break
+(dolist (chunk (split-string translated-key " "))
+  (when (or (string= chunk "")
+(not (string-match-p "^\\(?:[ACHMSs]-\\)*[^ ]?$" chunk))
+(string-match-p "\\([ACHMSs]-\\)[^ ]*\\1" chunk))
+(throw 'break t)
 
 (defun devil-format (string)
   "Replace %k in STRING with `devil-key'."
@@ -383,16 +386,21 @@ the original Emacs key sequence."
 
 (defun devil--tests ()
   "Test Devil functions assuming Devil has not been customized."
+  (devil--assert (devil--invalid-key-p ""))
+  (devil--assert (devil--invalid-key-p "C-x-C-f"))
+  (devil--assert (devil--invalid-key-p "C-x CC-f"))
+  (devil--assert (not (devil--invalid-key-p "C-x C-f")))
+  (devil--assert (not (devil--invalid-key-p "C-M-x")))
   (devil--assert (string= (devil-translate (vconcat ",")) "C-"))
   (devil--assert (string= (devil-translate (vconcat ",x")) "C-x"))
   (devil--assert (string= (devil-translate (vconcat ",x,")) "C-x C-"))
   (devil--assert (string= (devil-translate (vconcat ",x,f")) "C-x C-f"))
-  (devil--assert (string= (devil-translate (vconcat ",,")) "C-,"))
-  (devil--assert (string= (devil-translate (vconcat "")) "C-, C-,"))
+  (devil--assert (string= (devil-translate (vconcat ",,")) ","))
+  (devil--assert (string= (devil-translate (vconcat "")) ", ,"))
   (devil--assert (string= (devil-translate (vconcat ",mx")) "C-M-x"))
-  (devil--assert (string= (devil-translate (vconcat ",,mx")) "M-x"))
+  (devil--assert (string= (devil-translate (vconcat ",mmx")) "M-x"))
   (devil--assert (string= (devil-translate (vconcat ",mmm")) "M-m"))
-  (devil--log "Tests completed"))
+  (message "Done"))
 
 (provide 'devil)
 



[nongnu] elpa/devil ef7a7d4c74 29/49: Add 'devil' customisation group

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit ef7a7d4c7448a90f4785537b8d8d60eac2acc46a
Author: Philip Kaludercic 
Commit: Susam Pal 

Add 'devil' customisation group

* devil.el (devil-key, devil-translations, devil-repeatable-keys,
devil-prompt): Convert to user options.
(global-devil-mode): Remove unnecessary :group tag.
---
 devil.el | 38 --
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/devil.el b/devil.el
index fa08c5f381..d4fb39e987 100644
--- a/devil.el
+++ b/devil.el
@@ -38,20 +38,26 @@
 
 ;;; Code:
 
+(defgroup devil '()
+  "Minor mode for Devil-like command entering."
+  :prefix "devil-"
+  :group 'editing)
 
-(defvar devil-key ","
+(defcustom devil-key ","
   "The key sequence that begins Devil input.
 
 The key sequence must be specified in the format returned by `C-h
 k' (`describe-key'). This variable should be set before enabling
-Devil mode for it to take effect.")
+Devil mode for it to take effect."
+  :type 'key-sequence)
 
-(defvar devil-lighter " Devil"
-  "String displayed on the mode line when Devil mode is enabled.")
+(defcustom devil-lighter " Devil"
+  "String displayed on the mode line when Devil mode is enabled."
+  :type 'string)
 
 (defvar devil-mode-map
   (let ((map (make-sparse-keymap)))
-(define-key map (kbd devil-key) #'devil)
+(define-key map devil-key #'devil)
 map)
   "Keymap to wake up Devil when `devil-key' is typed.
 
@@ -69,15 +75,16 @@ be modified before loading Devil for it to take effect.")
 
 ;;;###autoload
 (define-globalized-minor-mode
-  global-devil-mode devil-mode devil--on :group 'devil
+  global-devil-mode devil-mode devil--on
   (if global-devil-mode (devil-add-extra-keys) (devil-remove-extra-keys)))
 
 (defun devil--on ()
   "Turn Devil mode on."
   (devil-mode 1))
 
-(defvar devil-logging nil
-  "Non-nil if and only if Devil should print log messages.")
+(defcustom devil-logging nil
+  "Non-nil if and only if Devil should print log messages."
+  :type 'boolean)
 
 (defvar devil-special-keys
   (list (cons "%k %k" (lambda () (interactive) (devil-run-key "%k")))
@@ -91,7 +98,7 @@ this alist, the function or lambda in the corresponding value 
is
 invoked. The format control specifier `%k' may be used to
 represent `devil-key' in the keys.")
 
-(defvar devil-translations
+(defcustom devil-translations
   (list (cons "%k z" "C-")
 (cons "%k %k" "%k")
 (cons "%k m m" "M-")
@@ -106,9 +113,10 @@ The translation rules are applied in the sequence they 
occur in
 the alist. For each rule, if the key occurs anywhere in the Devil
 key sequence, it is replaced with the corresponding value in the
 translation rule. The format control specifier `%k' may be used
-to represent `devil-key' in the keys.")
+to represent `devil-key' in the keys."
+  :type '(alist :key-type string :value-type string))
 
-(defvar devil-repeatable-keys
+(defcustom devil-repeatable-keys
   (list "%k p"
 "%k n"
 "%k f"
@@ -124,7 +132,8 @@ to represent `devil-key' in the keys.")
 The value of this variable is a list where each item represents a
 key sequence that may be repeated merely by typing the last
 character in the key sequence. The format control specified `%k'
-may be used to represent `devil-key' in the keys.")
+may be used to represent `devil-key' in the keys."
+  :type '(repeat string))
 
 (defun devil-run-key (key)
   "Execute the given key sequence KEY.
@@ -183,14 +192,15 @@ recursively to read yet another key from the user."
   (unless (devil--run-command key)
 (devil--read-key key)))
 
-(defvar devil-prompt "Devil: %t"
+(defcustom devil-prompt "Devil: %t"
   "A format control string that determines the Devil prompt.
 
 The following format control sequences are supported:
 
 %k - Devil key sequence read by Devil so far.
 %t - Emacs key sequence translated from Devil key sequence read so far.
-%% - The percent sign.")
+%% - The percent sign."
+  :type 'string)
 
 (defun devil--make-prompt (key)
   "Create Devil prompt based on the given KEY."



[nongnu] elpa/devil 79fd50fe22 36/49: Set version to 0.3.0

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 79fd50fe22ce45968779f0e176247ab7988f0905
Author: Susam Pal 
Commit: Susam Pal 

Set version to 0.3.0
---
 CHANGES.org | 16 
 devil.el|  2 +-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/CHANGES.org b/CHANGES.org
index 0fabb788e1..85a7d6322e 100644
--- a/CHANGES.org
+++ b/CHANGES.org
@@ -1,5 +1,20 @@
 * Changelog
 
+** 0.3.0 (2023-05-11)
+
+*** Added
+
+- Add customization group.
+
+*** Changed
+
+- Move tests out to a separate file.
+
+*** Fixed
+
+- Fix spacing in documentation strings.
+- Remove =devil-version= and =devil-show-version=.
+
 ** 0.2.0 (2023-05-09)
 
 *** Added
@@ -23,6 +38,7 @@
   =C-x CC-xf=. This has been fixed so that =- C-f= is now translated to
   =C-x C-f=.
 
+
 ** 0.1.0 (2023-05-07)
 
 *** Added
diff --git a/devil.el b/devil.el
index afe1336613..6dde9d4bfa 100644
--- a/devil.el
+++ b/devil.el
@@ -4,7 +4,7 @@
 
 ;; Author: Susam Pal 
 ;; Maintainer: Susam Pal 
-;; Version: 0.2.0
+;; Version: 0.3.0
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: convenience, abbrev
 ;; URL: https://github.com/susam/devil



[nongnu] elpa/devil f6ddd7cac1 38/49: Fix undefined error for RET, , etc.

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit f6ddd7cac1efad6c23c9a6839996edf894f1a633
Author: Susam Pal 
Commit: Susam Pal 

Fix undefined error for RET, , etc.

When the translated key sequence contains multiple letters for the
non-modifier part, e.g., "RET", "", the translation is considered
undefined and it is ignored. This change fixes this issue and now
supports such translations.
---
 devil.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/devil.el b/devil.el
index 24c20a4cec..a50b503e19 100644
--- a/devil.el
+++ b/devil.el
@@ -281,6 +281,7 @@ sequences should be read from the user."
  (devil--set-transient-map (substring described-key -1) binding))
t)
   (t
+   (devil--log "Undefined key: %s => %s" described-key translated-key)
(message "Devil: %s is undefined" translated-key)
t
 
@@ -376,7 +377,7 @@ this-command: %s; last-command: %s; 
last-repeatable-command: %s"
   (catch 'break
 (dolist (chunk (split-string translated-key " "))
   (when (or (string= chunk "")
-(not (string-match-p "^\\(?:[ACHMSs]-\\)*[^ ]?$" chunk))
+(not (string-match-p "^\\(?:[ACHMSs]-\\)*[^ ]*$" chunk))
 (string-match-p "\\([ACHMSs]-\\)[^ ]*\\1" chunk))
 (throw 'break t)
 



[nongnu] elpa/devil 355bcc9c14 34/49: Extract most of the README into a separate manual

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 355bcc9c14efb14d174ca39c2efe958c6843c4ba
Author: Philip Kaludercic 
Commit: Susam Pal 

Extract most of the README into a separate manual
---
 MANUAL.org | 564 +
 README.md  | 594 +
 2 files changed, 565 insertions(+), 593 deletions(-)

diff --git a/MANUAL.org b/MANUAL.org
new file mode 100644
index 00..3cd3ca982b
--- /dev/null
+++ b/MANUAL.org
@@ -0,0 +1,564 @@
+#+title:Devil Mode
+#+author:   Susam Pal
+#+email:su...@susam.net
+#+language: en
+#+options:  ':t toc:nil author:t email:t num:t
+#+texinfo_dir_category: Emacs misc features
+#+texinfo_dir_title:Devil: (devil-mode)
+#+texinfo_dir_desc: Minor mode for Devil-like command entering
+
+#+texinfo: @insertcopying
+
+Devil mode intercepts our keystrokes and translates them to Emacs key
+sequences according to a configurable set of translation rules. For
+example, with the default translation rules, when we type =, x , f=,
+Devil translates it to =C-x C-f=.
+
+The choice of the comma key (=,=) to mean the control modifier key
+(=C-=) may seem outrageous. After all, the comma is a very important
+punctuation both in prose as well as in code. Can we really get away
+with using =,= to mean the =C-= modifier? It turns out, this terrible
+idea can be made to work without too much of a hassle. At least it works
+for me! It might work for you too. If it does not, Devil can be
+configured to use another key instead of =,= to mean the =C-= modifier.
+See the section [[#custom-devil-key][Custom Devil Key]] for an example.
+
+A sceptical reader may rightfully ask: If =,= is translated to =C-=, how
+on earth are we going to insert a literal =,= into the text when we need
+to? The section [[#typing-commas][Typing Commas]] answers this. But
+before we get there, we have some fundamentals to cover. Take the plunge
+and see what unfolds! Maybe you will like this! Maybe you will not! If
+you do not like this, you can always retreat to God mode, Evil mode, the
+vanilla key bindings, or whatever piques your fancy!
+
+* Notation
+:PROPERTIES:
+:CUSTOM_ID: notation
+:END:
+A quick note about the notation used in the document: The previous
+example shows that =, x , f= is translated to =C-x C-f=. What this
+really means is that the key sequence ,x,f is translated to ctrl+x
+ctrl+f. We do not really type any space after the commas. The key , is
+directly followed by the key x. However, the key sequence notation used
+in this document contains spaces between each keystroke. This is
+consistent with how key sequences are represented in Emacs in general
+and how Emacs functions like =key-description=, =describe-key=, etc.
+represent key sequences. When we really need to type a space, it is
+represented as =SPC=.
+
+* Install
+:PROPERTIES:
+:CUSTOM_ID: install
+:END:
+** Install Interactively from MELPA
+:PROPERTIES:
+:CUSTOM_ID: install-interactively-from-melpa
+:END:
+Devil is available via [[https://melpa.org/][MELPA]]. You may already
+have a preferred way of installing packages from MELPA. If so, install
+the package named =devil= to get Devil. For the sake of completeness,
+here is a very basic way of installing Devil from MELPA:
+
+1. Add the following to the Emacs initialization file (i.e., =~/.emacs=
+   or =~/.emacs.d/init.el= or =~/.config/emacs/init.el=):
+
+   #+begin_src sh
+ (require 'package)
+ (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/";) 
t)
+ (package-initialize)
+   #+end_src
+
+2. Start Emacs with the updated initialization file and then type these
+   commands:
+
+   #+begin_example
+   M-x package-refresh-contents RET
+   M-x package-install RET devil RET
+   #+end_example
+
+3. Confirm that Devil is installed successfully with this command:
+
+   #+begin_example
+   M-x devil-show-version RET
+   #+end_example
+
+4. Enable Devil mode with this command:
+
+   #+begin_example
+   M-x global-devil-mode RET
+   #+end_example
+
+5. Type =, x , f= and watch Devil translate it to =C-x C-f= and invoke
+   the corresponding command.
+
+** Install Automatically from MELPA
+:PROPERTIES:
+:CUSTOM_ID: install-automatically-from-melpa
+:END:
+Here is yet another basic way to install and enable Devil using Elisp:
+
+#+begin_example
+(require 'package)
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/";) t)
+(package-initialize)
+(unless package-archive-contents
+  (package-refresh-contents))
+(unless (package-installed-p 'devil)
+  (package-install 'devil))
+(global-devil-mode)
+(global-set-key (kbd "C-,") 'global-devil-mode)
+#+end_example
+
+Now type =, x , f= and watch Devil translate it to =C-x C-f= and invoke
+the corresponding command. Type =C-,= to disable Devil mode. Type =C-,=
+again to enable it.
+
+** Install from Git Source
+:PROPERTIES:
+:CUSTOM_ID: install-from-git-sour

[nongnu] elpa/devil 305a41dc55 45/49: Add MELPA badges

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 305a41dc5510b38846a28a46891d1031244edfba
Author: Susam Pal 
Commit: Susam Pal 

Add MELPA badges
---
 README.org | 4 
 1 file changed, 4 insertions(+)

diff --git a/README.org b/README.org
index 1e00f9c587..1aeda7c43a 100644
--- a/README.org
+++ b/README.org
@@ -1,5 +1,9 @@
 * Devil Mode
 
+[[https://melpa.org/#/devil][file:https://melpa.org/packages/devil-badge.svg]]
+[[https://stable.melpa.org/#/devil][file:https://stable.melpa.org/packages/devil-badge.svg]]
+[[https://mastodon.social/@susam][file:https://img.shields.io/badge/mastodon-%40susam-%2355f.svg]]
+
 Devil mode trades your comma key in exchange for a modifier-free
 editing experience!  Yes, the comma key!  The key you would normally
 wield for punctuation in nearly every corner of text.  Yes, this is



[nongnu] elpa/devil 72ce585e59 42/49: Document devil-all-keys-repeatable in the manual

2023-05-15 Thread ELPA Syncer
branch: elpa/devil
commit 72ce585e5919b1adab42cfb297ba4657b3fb345a
Author: Susam Pal 
Commit: Susam Pal 

Document devil-all-keys-repeatable in the manual
---
 MANUAL.org | 35 +++
 1 file changed, 35 insertions(+)

diff --git a/MANUAL.org b/MANUAL.org
index 2bdcc2b11d..bad0ed5f76 100644
--- a/MANUAL.org
+++ b/MANUAL.org
@@ -524,6 +524,41 @@ that key (like repeating =.= twice to insert a single =.= 
in the above
 example).  Therefore, it is a good idea to keep the number of Devil
 keys as small as possible.
 
+** Make All Keys Repeatable
+:PROPERTIES:
+:CUSTOM_ID: make-all-keys-repeatable
+:END:
+By default Devil has a small list of key sequences that are considered
+repeatable.  This list is defined in the variable
+=devil-repeatable-keys=.  Type =C-h v devil-repeatable-keys RET= to
+view this list.  For example, consider the repeatable key sequence =%k
+p= in this list.  Assuming that the default Devil and Emacs key
+bindings have not been changed, this means that after we type =C-p=
+and move the cursor to the previous line, we can repeat this operation
+by typing =p= over and over again.  The repetition occurs as long as
+the last character of the repeatable key sequence is typed over and
+over again.  Typing any other key stops the repetition and the default
+behaviour of the other key is then observed.
+
+It is possible to make all key sequences repeatable by setting the
+variable =devil-all-keys-repeatable= to =t=.  Here is an example
+configuration:
+
+#+begin_src elisp
+  (require 'devil)
+  (setq devil-all-keys-repeatable t)
+  (global-devil-mode)
+#+end_src
+
+Now all every Devil key sequence that ends up executing an Emacs
+command can be repeated by merely repeating the last character of the
+key sequence.  The list in =devil-repeatable-keys= is ignored.
+
+Note that only Devil key sequences that get translated to a regular
+Emacs key sequence and result in the execution of an Emacs command can
+be repeatable.  The special keys defined in =devil-special-keys= are
+never repeatable.
+
 * Why?
 :PROPERTIES:
 :CUSTOM_ID: why



[elpa] externals/modus-themes b31b6f7999: Use modus-related symbol names in some code samples

2023-05-15 Thread ELPA Syncer
branch: externals/modus-themes
commit b31b6f7999d17dd181ee6e4727e849d10c0aeb85
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Use modus-related symbol names in some code samples
---
 doc/modus-themes.info | 98 +--
 doc/modus-themes.org  |  8 ++---
 2 files changed, 53 insertions(+), 53 deletions(-)

diff --git a/doc/modus-themes.info b/doc/modus-themes.info
index 88a0f7f85f..bd27668842 100644
--- a/doc/modus-themes.info
+++ b/doc/modus-themes.info
@@ -3762,7 +3762,7 @@ loadā€ phase of a theme, thus applying the new background 
value
 (otherwise you keep the old background, which likely means that the
 faces will no longer be invisible).
 
- (defun prot-emacs-invisible-dividers ()
+ (defun my-modus-themes-invisible-dividers ()
"Make window dividers invisible.
  Add this to the `modus-themes-post-load-hook'."
(let ((bg (face-background 'default)))
@@ -3772,7 +3772,7 @@ faces will no longer be invisible).
   `(window-divider-first-pixel ((t :background ,bg :foreground ,bg)))
   `(window-divider-last-pixel ((t :background ,bg :foreground ,bg))
 
- (add-hook 'modus-themes-post-load-hook #'prot-emacs-invisible-dividers)
+ (add-hook 'modus-themes-post-load-hook 
#'my-modus-themes-invisible-dividers)
 
The above will work only for themes that belong to the Modus family.
 For users of Emacs version 29 or higher, there exists a theme-agnostic
@@ -3780,7 +3780,7 @@ hook that takes a function with one argument—that of the 
theme—and calls
 in the the ā€œpost enableā€ phase of theme loading.  Here is the above
 snippet, with the necessary tweaks:
 
- (defun prot-emacs-invisible-dividers (_theme)
+ (defun my-modus-themes-invisible-dividers (_theme)
"Make window dividers for THEME invisible."
(let ((bg (face-background 'default)))
  (custom-set-faces
@@ -3789,7 +3789,7 @@ snippet, with the necessary tweaks:
   `(window-divider-first-pixel ((t :background ,bg :foreground ,bg)))
   `(window-divider-last-pixel ((t :background ,bg :foreground ,bg))
 
- (add-hook 'enable-theme-functions #'prot-emacs-invisible-dividers)
+ (add-hook 'enable-theme-functions #'my-modus-themes-invisible-dividers)
 
Users of older versions of Emacs can read the entry herein about
 defining their own theme-agnostic hook (*note A theme-agnostic hook for
@@ -6195,51 +6195,51 @@ Node: Backdrop for pdf-tools149263
 Node: Toggle themes without reloading them152162
 Node: A theme-agnostic hook for theme loading153438
 Node: Use more spacious margins or padding in Emacs frames155891
-Node: Custom hl-todo colors159757
-Node: Add support for solaire-mode161295
-Node: Face coverage164206
-Node: Supported packages164658
-Node: Indirectly covered packages170171
-Node: Notes on individual packages171524
-Node: Note on calendarel weekday and weekend colors172624
-Node: Note on git-gutter in Doom Emacs173772
-Node: Note on php-mode multiline comments176113
-Node: Note on underlines in compilation buffers176866
-Node: Note on inline Latex in Org buffers177703
-Node: Note on dimmerel178313
-Node: Note on display-fill-column-indicator-mode179798
-Node: Note on highlight-parenthesesel181197
-Node: Note on mmm-modeel background colors187175
-Node: Note for prism189475
-Node: Note on company-mode overlay pop-up192643
-Ref: Note on company-mode overlay pop-up-Footnote-1193373
-Ref: Note on company-mode overlay pop-up-Footnote-2193440
-Node: Note on ERC escaped color sequences193495
-Ref: Note on ERC escaped color sequences-Footnote-1194923
-Node: Note on powerline or spaceline195033
-Node: Note on SHR colors195447
-Node: Note on SHR fonts195871
-Node: Note on Ement colors and fonts196510
-Node: Note on pdf-tools link hints198020
-Node: Note on the Notmuch logo200480
-Node: Note on goto-address-mode faces201018
-Node: Frequently Asked Questions202130
-Node: Is the contrast ratio about adjacent colors?202761
-Node: What does it mean to avoid exaggerations?204268
-Node: Why are colors mostly variants of blue magenta cyan?206118
-Node: What is the best setup for legibility?210424
-Node: Are these color schemes?213069
-Node: Port the Modus themes to other platforms?216751
-Node: Contributing219523
-Node: Sources of the themes219920
-Node: Issues you can help with220814
-Node: Patches require copyright assignment to the FSF05
-Node: Acknowledgements224425
-Node: GNU Free Documentation License228483
-Node: Indices253847
-Node: Function index254026
-Node: Variable index255209
-Node: Concept index257388
+Node: Custom hl-todo colors159777
+Node: Add support for solaire-mode161315
+Node: Face coverage164226
+Node: Supported packages164678
+Node: Indirectly covered packages170191
+Node: Notes on individual packages171544
+Node: Note on calendarel weekday and weekend colors172644
+Node: Note on git-gutter in Doom Emacs173792
+Node: Note on php

[elpa] externals/tempel 7a6a95825d: Minor simplification

2023-05-15 Thread ELPA Syncer
branch: externals/tempel
commit 7a6a95825d55df868a869cbbc80412fb44f6520b
Author: Daniel Mendler 
Commit: Daniel Mendler 

Minor simplification
---
 tempel.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tempel.el b/tempel.el
index ecac41ec6d..5c5f09de0c 100644
--- a/tempel.el
+++ b/tempel.el
@@ -356,9 +356,9 @@ Return the added field."
 ((or 'p `(,(or 'p 'P) . ,rest)) (apply #'tempel--placeholder st rest))
 ((or 'r 'r> `(,(or 'r 'r>) . ,rest))
  (if (not region)
- (when-let (ov (apply #'tempel--placeholder st rest))
-   (unless rest
- (overlay-put ov 'tempel--enter #'tempel--done)))
+ (when-let ((ov (apply #'tempel--placeholder st rest))
+((not rest)))
+   (overlay-put ov 'tempel--enter #'tempel--done))
(goto-char (cdr region))
(when (eq (or (car-safe elt) elt) 'r>)
  (indent-region (car region) (cdr region) nil



[elpa] externals/modus-themes 7b58110d84: Add support for end-of-line flymake faces (Emacs 29)

2023-05-15 Thread ELPA Syncer
branch: externals/modus-themes
commit 7b58110d84ed2b754bc754389d770eed60714182
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add support for end-of-line flymake faces (Emacs 29)
---
 modus-themes.el | 4 
 1 file changed, 4 insertions(+)

diff --git a/modus-themes.el b/modus-themes.el
index 272fcc98e4..caf071d729 100644
--- a/modus-themes.el
+++ b/modus-themes.el
@@ -2448,12 +2448,16 @@ FG and BG are the main colors."
 `(flycheck-indicator-success ((,c :inherit success)))
 `(flycheck-indicator-warning ((,c :inherit warning)))
 ; flymake
+`(flymake-end-of-line-diagnostics-face ((,c :inherit modus-themes-slant 
:height 0.85 :box ,border)))
 `(flymake-error ((,c :inherit modus-themes-lang-error)))
 `(flymake-error-echo ((,c :inherit error)))
+`(flymake-error-echo-at-eol ((,c :inherit 
flymake-end-of-line-diagnostics-face :foreground ,err)))
 `(flymake-note ((,c :inherit modus-themes-lang-note)))
 `(flymake-note-echo ((,c :inherit success)))
+`(flymake-note-echo-at-eol ((,c :inherit 
flymake-end-of-line-diagnostics-face :foreground ,info)))
 `(flymake-warning ((,c :inherit modus-themes-lang-warning)))
 `(flymake-warning-echo ((,c :inherit warning)))
+`(flymake-note-echo-at-eol ((,c :inherit 
flymake-end-of-line-diagnostics-face :foreground ,warning)))
 ; flyspell
 `(flyspell-duplicate ((,c :inherit modus-themes-lang-warning)))
 `(flyspell-incorrect ((,c :inherit modus-themes-lang-error)))



[elpa] externals/ef-themes 97e45a59b2: Add support for end-of-line flymake faces (Emacs 29)

2023-05-15 Thread ELPA Syncer
branch: externals/ef-themes
commit 97e45a59b27cb0844269c3e026e35a03d306cd86
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add support for end-of-line flymake faces (Emacs 29)
---
 ef-themes.el | 4 
 1 file changed, 4 insertions(+)

diff --git a/ef-themes.el b/ef-themes.el
index aed2ba3f2a..330eaad408 100644
--- a/ef-themes.el
+++ b/ef-themes.el
@@ -1309,12 +1309,16 @@ Optional prefix argument MAPPINGS has the same meaning 
as for
 `(flycheck-info ((,c :inherit ef-themes-underline-info)))
 `(flycheck-warning ((,c :inherit ef-themes-underline-warning)))
  flymake
+`(flymake-end-of-line-diagnostics-face ((,c :inherit italic :height 0.85 
:box ,border)))
 `(flymake-error ((,c :inherit ef-themes-underline-error)))
 `(flymake-error-echo ((,c :inherit error)))
+`(flymake-error-echo-at-eol ((,c :inherit 
flymake-end-of-line-diagnostics-face :foreground ,err)))
 `(flymake-note ((,c :inherit ef-themes-underline-info)))
 `(flymake-note-echo ((,c :inherit success)))
+`(flymake-note-echo-at-eol ((,c :inherit 
flymake-end-of-line-diagnostics-face :foreground ,info)))
 `(flymake-warning ((,c :inherit ef-themes-underline-warning)))
 `(flymake-warning-echo ((,c :inherit warning)))
+`(flymake-note-echo-at-eol ((,c :inherit 
flymake-end-of-line-diagnostics-face :foreground ,warning)))
  flyspell
 `(flyspell-duplicate ((,c :inherit ef-themes-underline-warning)))
 `(flyspell-incorrect ((,c :inherit ef-themes-underline-error)))



[elpa] externals/standard-themes fceeeca444: Add support for end-of-line flymake faces (Emacs 29)

2023-05-15 Thread ELPA Syncer
branch: externals/standard-themes
commit fceeeca4440f896c917a8658f862eaea108d5e6c
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add support for end-of-line flymake faces (Emacs 29)
---
 standard-themes.el | 4 
 1 file changed, 4 insertions(+)

diff --git a/standard-themes.el b/standard-themes.el
index 9e938df4d6..f8acda575f 100644
--- a/standard-themes.el
+++ b/standard-themes.el
@@ -1339,12 +1339,16 @@ Optional prefix argument MAPPINGS has the same meaning 
as for
 `(flycheck-info ((,c :inherit standard-themes-underline-info)))
 `(flycheck-warning ((,c :inherit standard-themes-underline-warning)))
  flymake
+`(flymake-end-of-line-diagnostics-face ((,c :inherit italic :height 0.85 
:box ,border)))
 `(flymake-error ((,c :inherit standard-themes-underline-error)))
 `(flymake-error-echo ((,c :inherit error)))
+`(flymake-error-echo-at-eol ((,c :inherit 
flymake-end-of-line-diagnostics-face :foreground ,err)))
 `(flymake-note ((,c :inherit standard-themes-underline-info)))
 `(flymake-note-echo ((,c :inherit success)))
+`(flymake-note-echo-at-eol ((,c :inherit 
flymake-end-of-line-diagnostics-face :foreground ,info)))
 `(flymake-warning ((,c :inherit standard-themes-underline-warning)))
 `(flymake-warning-echo ((,c :inherit warning)))
+`(flymake-note-echo-at-eol ((,c :inherit 
flymake-end-of-line-diagnostics-face :foreground ,warning)))
  flyspell
 `(flyspell-duplicate ((,c :inherit standard-themes-underline-warning)))
 `(flyspell-incorrect ((,c :inherit standard-themes-underline-error)))



[elpa] externals-release/ement updated (dc3514e5c6 -> 7f39fa5694)

2023-05-15 Thread ELPA Syncer
elpasync pushed a change to branch externals-release/ement.

  from  dc3514e5c6 Release: v0.9.1
   new  8027cdd091 Meta: v0.9.2-pre
   new  8b295133ff Fix: (ement-room-list) Restore point on refresh
   new  896ad5311d Fix: Completion in minibuffer
   new  7f39fa5694 Release: v0.9.2


Summary of changes:
 README.org |  6 ++
 ement-room-list.el |  4 ++--
 ement-room.el  | 10 +++---
 ement.el   |  2 +-
 4 files changed, 16 insertions(+), 6 deletions(-)



[elpa] externals-release/ement 8027cdd091 1/4: Meta: v0.9.2-pre

2023-05-15 Thread ELPA Syncer
branch: externals-release/ement
commit 8027cdd09199d71513af94d26d1b7bf56613b39b
Author: Adam Porter 
Commit: Adam Porter 

Meta: v0.9.2-pre
---
 README.org | 4 
 ement.el   | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index c7c75ee741..2f607bcd4b 100644
--- a/README.org
+++ b/README.org
@@ -296,6 +296,10 @@ Note that, while ~matrix-client~ remains usable, and 
probably will for some time
 :TOC:  :depth 0
 :END:
 
+** 0.9.2-pre
+
+Nothing new yet.
+
 ** 0.9.1
 
 *Fixes*
diff --git a/ement.el b/ement.el
index ae759448a1..fa2c21d5fe 100644
--- a/ement.el
+++ b/ement.el
@@ -5,7 +5,7 @@
 ;; Author: Adam Porter 
 ;; Maintainer: Adam Porter 
 ;; URL: https://github.com/alphapapa/ement.el
-;; Version: 0.9.1
+;; Version: 0.9.2-pre
 ;; Package-Requires: ((emacs "27.1") (map "2.1") (persist "0.5") (plz "0.2") 
(taxy "0.10") (taxy-magit-section "0.12.1") (svg-lib "0.2.5") (transient 
"0.3.7"))
 ;; Keywords: comm
 



[elpa] externals/ement updated (4d44ea274c -> 218cd1de07)

2023-05-15 Thread ELPA Syncer
elpasync pushed a change to branch externals/ement.

  from  4d44ea274c Docs: Improve export settings
   new  8027cdd091 Meta: v0.9.2-pre
   new  8b295133ff Fix: (ement-room-list) Restore point on refresh
   new  896ad5311d Fix: Completion in minibuffer
   new  7f39fa5694 Release: v0.9.2
   new  218cd1de07 Merge: v0.9.2


Summary of changes:
 README.org |  6 ++
 ement-room-list.el |  4 ++--
 ement-room.el  | 10 +++---
 3 files changed, 15 insertions(+), 5 deletions(-)



[elpa] externals-release/ement 896ad5311d 3/4: Fix: Completion in minibuffer

2023-05-15 Thread ELPA Syncer
branch: externals-release/ement
commit 896ad5311de5b999a95c26ddfc12cb2fadb085d0
Author: Adam Porter 
Commit: Adam Porter 

Fix: Completion in minibuffer

I've no idea why adding one to the point is necessary in the
minibuffer, and only in the minibuffer, but it seems to be.
---
 README.org|  1 +
 ement-room.el | 10 +++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/README.org b/README.org
index 3e0d69c367..93f518cbca 100644
--- a/README.org
+++ b/README.org
@@ -300,6 +300,7 @@ Note that, while ~matrix-client~ remains usable, and 
probably will for some time
 
 *Fixes*
 + Restore position in room list when refreshing.
++ Completion in minibuffer.
 
 ** 0.9.1
 
diff --git a/ement-room.el b/ement-room.el
index 2436167c86..c01190dd65 100644
--- a/ement-room.el
+++ b/ement-room.el
@@ -4275,8 +4275,10 @@ Web-compatible HTML output, using HTML like:
 Uses members in the current buffer's room.  For use in
 `completion-at-point-functions'."
   (let ((beg (save-excursion
-   (when (re-search-backward (rx (or bol bos blank) "@") nil t)
- (point
+   (when (re-search-backward (rx (or bol bos blank)) nil t)
+ (if (minibufferp)
+ (1+ (point))
+   (point)
 (end (point))
 (collection-fn (completion-table-dynamic
 ;; The manual seems to show the FUN ignoring any
@@ -4292,7 +4294,9 @@ Uses members in the current buffer's room.  For use in
 For use in `completion-at-point-functions'."
   (let ((beg (save-excursion
(when (re-search-backward (rx (or bol bos blank) (or "!" "#")) 
nil t)
- (point
+ (if (minibufferp)
+ (1+ (point))
+   (point)
 (end (point))
 (collection-fn (completion-table-dynamic
 ;; The manual seems to show the FUN ignoring any



[elpa] externals-release/ement 7f39fa5694 4/4: Release: v0.9.2

2023-05-15 Thread ELPA Syncer
branch: externals-release/ement
commit 7f39fa5694232fa3f0a32b2104187fe1e886c202
Author: Adam Porter 
Commit: Adam Porter 

Release: v0.9.2
---
 README.org | 2 +-
 ement.el   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.org b/README.org
index 93f518cbca..9df95a9b31 100644
--- a/README.org
+++ b/README.org
@@ -296,7 +296,7 @@ Note that, while ~matrix-client~ remains usable, and 
probably will for some time
 :TOC:  :depth 0
 :END:
 
-** 0.9.2-pre
+** 0.9.2
 
 *Fixes*
 + Restore position in room list when refreshing.
diff --git a/ement.el b/ement.el
index fa2c21d5fe..8a1983f8e7 100644
--- a/ement.el
+++ b/ement.el
@@ -5,7 +5,7 @@
 ;; Author: Adam Porter 
 ;; Maintainer: Adam Porter 
 ;; URL: https://github.com/alphapapa/ement.el
-;; Version: 0.9.2-pre
+;; Version: 0.9.2
 ;; Package-Requires: ((emacs "27.1") (map "2.1") (persist "0.5") (plz "0.2") 
(taxy "0.10") (taxy-magit-section "0.12.1") (svg-lib "0.2.5") (transient 
"0.3.7"))
 ;; Keywords: comm
 



[elpa] externals/ement 218cd1de07: Merge: v0.9.2

2023-05-15 Thread ELPA Syncer
branch: externals/ement
commit 218cd1de07fc2e7bd2d8e541cfc33f31b1a282ac
Merge: 4d44ea274c 7f39fa5694
Author: Adam Porter 
Commit: Adam Porter 

Merge: v0.9.2
---
 README.org |  6 ++
 ement-room-list.el |  4 ++--
 ement-room.el  | 10 +++---
 3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/README.org b/README.org
index 5995436ea2..ec7fc9c4b9 100644
--- a/README.org
+++ b/README.org
@@ -302,6 +302,12 @@ Note that, while ~matrix-client~ remains usable, and 
probably will for some time
 
 + Improve readme export settings.
 
+** 0.9.2
+
+*Fixes*
++ Restore position in room list when refreshing.
++ Completion in minibuffer.
+
 ** 0.9.1
 
 *Fixes*
diff --git a/ement-room-list.el b/ement-room-list.el
index bbdbfa69c8..49a8d9ddde 100644
--- a/ement-room-list.el
+++ b/ement-room-list.el
@@ -548,7 +548,7 @@ BUFFER-NAME and is shown with DISPLAY-BUFFER-ACTION; or if
 DISPLAY-BUFFER-ACTION is nil, the buffer is not displayed."
   (interactive)
   (let ((inhibit-read-only t)
-format-table column-sizes window-start room-session-vectors)
+pos format-table column-sizes window-start room-session-vectors)
 (cl-labels (;; (heading-face
 ;;  (depth) (list :inherit (list 'bufler-group 
(bufler-level-face depth
 (format-item (item) (gethash item format-table))
@@ -621,6 +621,7 @@ DISPLAY-BUFFER-ACTION is nil, the buffer is not displayed."
  append (cl-loop for room in (ement-session-rooms session)
  collect (vector room session
   (with-current-buffer (get-buffer-create buffer-name)
+(setf pos (point))
 (ement-room-list-mode)
 (delete-all-overlays)
 (erase-buffer)
@@ -660,7 +661,6 @@ DISPLAY-BUFFER-ACTION is nil, the buffer is not displayed."
  (taxy-magit-section-insert-indent-items nil)
  (format-cons (taxy-magit-section-format-items
ement-room-list-columns 
ement-room-list-column-formatters taxy))
- (pos (point))
  (section-ident (when (magit-current-section)
   (magit-section-ident 
(magit-current-section)
 (setf format-table (car format-cons)
diff --git a/ement-room.el b/ement-room.el
index 2436167c86..c01190dd65 100644
--- a/ement-room.el
+++ b/ement-room.el
@@ -4275,8 +4275,10 @@ Web-compatible HTML output, using HTML like:
 Uses members in the current buffer's room.  For use in
 `completion-at-point-functions'."
   (let ((beg (save-excursion
-   (when (re-search-backward (rx (or bol bos blank) "@") nil t)
- (point
+   (when (re-search-backward (rx (or bol bos blank)) nil t)
+ (if (minibufferp)
+ (1+ (point))
+   (point)
 (end (point))
 (collection-fn (completion-table-dynamic
 ;; The manual seems to show the FUN ignoring any
@@ -4292,7 +4294,9 @@ Uses members in the current buffer's room.  For use in
 For use in `completion-at-point-functions'."
   (let ((beg (save-excursion
(when (re-search-backward (rx (or bol bos blank) (or "!" "#")) 
nil t)
- (point
+ (if (minibufferp)
+ (1+ (point))
+   (point)
 (end (point))
 (collection-fn (completion-table-dynamic
 ;; The manual seems to show the FUN ignoring any



[elpa] externals-release/ement 8b295133ff 2/4: Fix: (ement-room-list) Restore point on refresh

2023-05-15 Thread ELPA Syncer
branch: externals-release/ement
commit 8b295133ff4729864329a13a11091c9b0c61a42d
Author: Adam Porter 
Commit: Adam Porter 

Fix: (ement-room-list) Restore point on refresh
---
 README.org | 3 ++-
 ement-room-list.el | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/README.org b/README.org
index 2f607bcd4b..3e0d69c367 100644
--- a/README.org
+++ b/README.org
@@ -298,7 +298,8 @@ Note that, while ~matrix-client~ remains usable, and 
probably will for some time
 
 ** 0.9.2-pre
 
-Nothing new yet.
+*Fixes*
++ Restore position in room list when refreshing.
 
 ** 0.9.1
 
diff --git a/ement-room-list.el b/ement-room-list.el
index bbdbfa69c8..49a8d9ddde 100644
--- a/ement-room-list.el
+++ b/ement-room-list.el
@@ -548,7 +548,7 @@ BUFFER-NAME and is shown with DISPLAY-BUFFER-ACTION; or if
 DISPLAY-BUFFER-ACTION is nil, the buffer is not displayed."
   (interactive)
   (let ((inhibit-read-only t)
-format-table column-sizes window-start room-session-vectors)
+pos format-table column-sizes window-start room-session-vectors)
 (cl-labels (;; (heading-face
 ;;  (depth) (list :inherit (list 'bufler-group 
(bufler-level-face depth
 (format-item (item) (gethash item format-table))
@@ -621,6 +621,7 @@ DISPLAY-BUFFER-ACTION is nil, the buffer is not displayed."
  append (cl-loop for room in (ement-session-rooms session)
  collect (vector room session
   (with-current-buffer (get-buffer-create buffer-name)
+(setf pos (point))
 (ement-room-list-mode)
 (delete-all-overlays)
 (erase-buffer)
@@ -660,7 +661,6 @@ DISPLAY-BUFFER-ACTION is nil, the buffer is not displayed."
  (taxy-magit-section-insert-indent-items nil)
  (format-cons (taxy-magit-section-format-items
ement-room-list-columns 
ement-room-list-column-formatters taxy))
- (pos (point))
  (section-ident (when (magit-current-section)
   (magit-section-ident 
(magit-current-section)
 (setf format-table (car format-cons)