~pkal/setup

Do not require 'elisp-mode' before using it
Regard byte compilation warnings as errors
383f184a — Earl Hyatt 2 months ago
Add `append*`, `prepend*`, and `remove*` to doc string of `:local-set`.
Update copyright line
Fix broken keyword :with-feature

Fix typo in :with-feature definition, as per
https://lists.sr.ht/~pkal/public-inbox/%3Cm0edq8dqj7.fsf%40disroot.org%3E
ec2f0e3f — Earl Hyatt 6 months ago
Suggested changes to use new repeatability.
4d3a967b — Earl Hyatt 6 months ago
Add way to repeat the first N arguments.

Instead of just numbers or `t` for `:repeatable`, one can also use
a dotted pair of numbers or of a number and `t`.

This allows the first arguments to be repeated in the body,
if we only want repeat a few arguments while using the
`:ensure` keyword.

For example,

    (setup-define :example-local-hook
      (lambda (hook function)
        `(add-hook ',(setup-get 'hook)
                   (lambda ()
                     (add-hook ',hook ,function nil t))))
      :documentation "Add FUNCTION to HOOK only in buffers of the current mode."
      :debug '(symbolp sexp)
      :ensure '(nil func)
      :repeatable '(1 . 1))

lets us write it as `(:example-local-hook hook f1 f2 f3 f4 ...)`
without needing to repeat `hook` in the local macro.
4d7312c4 — Earl Hyatt 6 months ago
Add `&rest` to `:ensure`.
3a4740bc — Earl Hyatt 6 months ago
Move `ensure`-ing to a separate function.
Fix "SourceHut" link in README
a3c1e11b — Earl Hyatt 8 months ago
Add forms to `setup-make-setter` for working on lists.

Similar to `prepend`, `append`, and `remove`, add the forms `prepend*`,
`append*`, and `remove*`.  Instead of the values being single items, they are
list of items.

For example,

    (setup test
      (:option (remove* my-list) some-list))

would remove all of the items in `some-list` from the user option `my-list`.

Discussed https://lists.sr.ht/~pkal/public-inbox/%3Cd78121f9-a854-7efe-5b2d-5ee8cf3cdd3a%40protonmail.com%3E.
Bump version to 1.3.2
Fix :and when last expression is a symbol
Bump version to 1.3.1
Make 'setup-bind' non-destructive

As discussed in [0], there appears to be a subtle bug in the previous
implementation, whereas this non-destructive variant doesn't.

[0] https://lists.sr.ht/~pkal/public-inbox/%3CCAE-yPnk9O0pz7a%2BZsE2iV7s02kiBbckgMzi%3D1eWAKg0aNQjoTQ%40mail.gmail.com%3E
Fix typo in the first README paragraph
Partially revert previous commit

We don't want to quit a body just because the last form might evaluate
to nil.
Fix :and implementation

The body was more complicated than is necessary, and the shorthand did
not behave the way one would intuitively have assumed.
Restructure README.md

These changes make the README more consistent with Compat's README.
Drop obsolete code section
Next