To reproduce, have emacs built with native compilation and notice the
compilation logs. You can then open the offending file and run `M-x
emacs-lisp-native-compile-and-load` before and after the changes to see
the warning is removed.
```
■ Warning (comp): bind-key.el:150:2: Warning: docstring has wrong
usage of unescaped single quotes (use \= or different quoting)
```
In 4004dde the arguments to `define-minor-mode` were changed
erroneously. Whereas the `override-global-mode` was initially defined
as `(define-minor-mode override-global-mode "..." t "")`, the two
latter arguments where changed to `:global t :lighter ""`. However,
the two original arguments corresponded to the keywords `:init-value`
and `:lighter`, respectively.
With `:init-value t` now missing, the minor mode isn't enabled by
default, and `bind-key*` appears not to work.
Copyright-paperwork-exempt: yes
Back in Emacs-21.1, `define-minor-mode' grew keyword arguments to
replace its old positional arguments. Starting with Emacs-28.1
a warning will be omitted if positional arguments are still used.
to boost startup performance, it is better to avoid invoking
`read-kbd-macro` at run time which requires 'cl-lib.
it takes ~20ms to load cl-lib
Copyright-paperwork-exempt: yes
Purely syntactic sugar, using :continue is the same as not using any
keyword inside :repeat-map at all.
Amend end of function to pass repeat-map value onto next invocation in
recursive uses. This allows for the same repeat map to be used for
:exit and :continue.
Keys bound inside the scope of :exit are bound inside the repeat map,
but do not have their repeat-map property set (so they run a function,
but 'exit' the map).
use-package-normalize/:bind: allow keyword :repeat-map.
bind-keys-form: Add keyword :repeat-map. Specifying a symbol as the
repeat-map defines a keymap with that name (and with the docstring
`repeat-doc', if specified). Symbols for functions bound to keys under
the scope of :repeat-map have their 'repeat-map property set to this
map. Update docstring (and that of `bind-keys') to reflect changes.
Rename `doc' to `prefix-doc' for clarity and consistency with
'repeat-doc'.
Just because a keymap variable is bound at macro-expansion-time
doesn't mean that it must be bound at run-time too.
Change `bind-keys-form', which is used by `bind-keys' and other
macros, to return a form which delays the decision on whether to
wrap the binding forms with `eval-after-load' until run-time.
Fixes https://github.com/jwiegley/use-package/issues/378.
In "use-package.el" prefix headings with ";;;" instead of just
";;". In "bind-key.el" add the missing ";;; Code:" heading.
In both libraries set `outline-regexp' to an appropriate value.
* bind-key.el (bind-keys*): `override-global-map' needs to be quoted so
the symbol is passed to `bind-keys-form' and not the value.
GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/323