dotfiles/emacs/.emacs.d/elpa/spinner-1.7.4/README-elpa

96 lines
3.3 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

━━━━━━━━━━━━
SPINNER.EL
━━━━━━━━━━━━
Add spinners and progress-bars to the mode-line for ongoing operations.
<file:some-spinners.gif>
<file:all-spinners.gif>
1 Usage
═══════
First of all, don’t forget to add `(spinner "VERSION")' to your
package’s dependencies.
1.1 Major-modes
───────────────
1. Just call `(spinner-start)' and a spinner will be added to the
mode-line.
2. Call `(spinner-stop)' on the same buffer when you want to remove
it.
The default spinner is a line drawing that rotates. You can pass an
argument to `spinner-start' to specify which spinner you want. All
possibilities are listed in the `spinner-types' variable, but here are
a few examples for you to try:
• `(spinner-start 'vertical-breathing 10)'
• `(spinner-start 'minibox)'
• `(spinner-start 'moon)'
• `(spinner-start 'triangle)'
You can also define your own as a vector of strings (see the examples
in `spinner-types').
1.2 Minor-modes
───────────────
Minor-modes can create a spinner with `spinner-create' and then add it
to their mode-line lighter. They can then start the spinner by setting
a variable and calling `spinner-start-timer'. Finally, they can stop
the spinner (and the timer) by just setting the same variable to nil.
Here’s an example for a minor-mode named `foo'. Assuming that
`foo--lighter' is used as the mode-line lighter, the following code
will add an *inactive* global spinner to the mode-line.
┌────
│ (defvar foo--spinner (spinner-create 'rotating-line))
│ (defconst foo--lighter
│ '(" foo" (:eval (spinner-print foo--spinner))))
└────
1. To activate the spinner, just call `(spinner-start foo--spinner)'.
It will show up on the mode-line and start animating.
2. To get rid of it, call `(spinner-stop foo--spinner)'. It will then
disappear again.
Some minor-modes will need spinners to be buffer-local. To achieve
that, just make the `foo--spinner' variable buffer-local and use the
third argument of the `spinner-create' function. The snippet below is
an example.
┌────
│ (defvar-local foo--spinner nil)
│ (defconst foo--lighter
│ '(" foo" (:eval (spinner-print foo--spinner))))
│ (defun foo--start-spinner ()
│ "Create and start a spinner on this buffer."
│ (unless foo--spinner
│ (setq foo--spinner (spinner-create 'moon t)))
│ (spinner-start foo--spinner))
└────
1. To activate the spinner, just call `(foo--start-spinner)'.
2. To get rid of it, call `(spinner-stop foo--spinner)'.
This will use the `moon' spinner, but you can use any of the names
defined in the `spinner-types' variable or even define your own.
2 Extra options
═══════════════
Both `spinner-start' and `spinner-create' take extra options to
configure the spinner, these are:
• `FPS': The number of frames to display per second. Defaults to
`spinner-frames-per-second'.
• `DELAY': After starting a spinner, it still won’t be displayed for
this many seconds.