Changelog
═════════

Version 0.7.0 (2023-08-12)
──────────────────────────

Added
╌╌╌╌╌

  • Repeatable key sequence `, m e'.
  • Repeatable key sequence `, x u'.
  • Repeatable key sequence group for `, m @' and `, m h'.
  • Repeatable key sequence group for `, x [' and `, x ]'.
  • Repeatable key sequence group for `, x ^' and `, x {' and `, x }'.
  • Repeatable key sequences `, a' and `, e' added to group for `, p'.
  • Repeatable key sequences `, m a' and `, m e' added to group for `, m
    b'.
  • Customisable variable `devil-global-sets-buffer-default' that, when
    set to `t', makes enabling `global-devil-mode' also enable Devil in
    all new buffers.


Changed
╌╌╌╌╌╌╌

  • Support for repeatable key groups.  When a Devil key sequence in a
    repeatable group is typed, then that key sequence or any another key
    sequence in the same group can be executed and repeated merely by
    typing the last character of that key sequence.
  • Repeatable key groups defined in `devil-repeatable-keys' is not
    ignored anymore when `devil-all-keys-repeatable' is set to non-nil.
  • Devil key sequences `, p' and `, n' and `, b' and `, f' have been
    grouped together into a repeatable key group.
  • Devil key sequences `, m f' and `, m b' have been grouped together
    into a repeatable key group.


Fixed
╌╌╌╌╌

  • Prevent special key sequences from being repeatable.


Version 0.6.0 (2023-07-30)
──────────────────────────

Changed
╌╌╌╌╌╌╌

  • Devil key sequence `, m' now translates to `M-' instead of `C-M-'.
  • Devil key sequence `, m z' now translates to `M-' instead of `C-M-'.
  • Devil key sequence `, m ,' now translates to `M-,' instead of
    `C-M-,'.
  • Devil key sequence `, m m' now translates to `C-M-' instead of `M-'.
  • Repeatable key sequence `, m m f' changed to `, m f'.
  • Repeatable key sequence `, m m b' changed to `, m b'.
  • Repeatable key sequence `, m m y' changed to `, m y'.
  • Repeatable key sequence `, m m ^' changed to `, m ^'.


Removed
╌╌╌╌╌╌╌

  • Devil key translation from `m z' to `M-'.
  • Devil key translation from `m m' to `m'.
  • Devil key translation from `m' to `M-'.


Version 0.5.0 (2023-06-15)
──────────────────────────

Added
╌╌╌╌╌

  • Function `devil-set-key' to set a new Devil key and update the
    mode's keymap.
  • Reinstate variable `devil-version' since it is useful in determining
    the source version conveniently.  It helps during troubleshooting
    the package when installed from MELPA which sets the package version
    to a version derived from the current date and time.
  • Command `devil-describe-key' to describe Devil key sequences.
  • Command `devil-toggle-logging' to toggle logging.
  • Special key `, h , k' to execute `devil-describe-key'.
  • Special key `, h , l' to execute `devil-toggle-logging'.


Changed
╌╌╌╌╌╌╌

  • Customising `devil-key' also updates the mode's keymap.
  • When no binding exists for the translated key sequence, convert the
    key sequence to a fallback key sequence for terminal Emacs according
    to `local-function-key-map' and execute any command bound to the
    fallback key sequence.  For example, when the Devil key sequence `,
    x <tab>' is converted to `C-x <tab>', since no command is bound to
    this key sequence, it is further translated to `C-x TAB' and the
    command `indent-rigidly' bound to it is executed.
  • Format control sequence to show the Devil key sequence read by Devil
    has changed from `%k' to `%r'.
  • The default special key sequences no longer merely insert literal
    characters into the buffer.  That behaviour was problematic in
    `isearch-mode' because typing special keys like `, ,' and `, SPC' in
    `isearch-mode' inserted the literal characters in the buffer as
    opposed to appending these characters to the search pattern.  The
    default special key sequences now invoke `devil-execute-key' instead
    which carefully look up the current binding for the current special
    key and executes it.  This produces the correct behaviour of special
    keys even in `isearch-mode'.


Fixed
╌╌╌╌╌

  • Fix special key sequence `, <return>' which was broken by the
  …  …
