Supercite will automatically fill newly cited text from the original
message unless the variable sc-auto-fill-region-p
has a
nil
value. Supercite will also re-fill paragraphs when you
manually cite or re-cite text.
However, during normal editing, Supercite itself cannot be used to fill
paragraphs. This is a change from version 2. There are other add-on
lisp packages which do filling much better than Supercite ever did. The
two best known are filladapt and gin-mode. Both work well
with Supercite and both are available at the normal Emacs Lisp archive
sites. gin-mode works pretty well out of the box, but if you use
filladapt, you may want to run the function
sc-setup-filladapt
after loading supercite
(e.g., using with-eval-after-load
). This simply
makes filladapt a little more Supercite savvy than its default
setup.
Also, Supercite will collapse leading whitespace between the citation
string and the text on a line when the variable
sc-fixup-whitespace-p
is non-nil
. The default value for
this variable is nil
.
Its important to understand that Supercite’s automatic filling (during
the initial citation of the reply) is very fragile. That is because
figuring out the fill-prefix
for a particular paragraph is a
really hard thing to do automatically. This is especially the case when
the original message contains code or some other text where leading
whitespace is important to preserve. For this reason, many Supercite
users typically run with sc-auto-fill-region-p
(and possibly also
sc-fixup-whitespace-p
) set to nil
. They then manually
fill each cited paragraph in the reply buffer.
I usually run with both these variables containing their default values. When Supercite’s automatic filling breaks on a particular message, I will use Emacs’s undo feature to undo back before the citation was applied to the original message. Then I’ll toggle the variables and manually cite those paragraphs that I don’t want to fill or collapse whitespace on. See Variable Toggling Shortcuts.
If you find that Supercite’s automatic filling is just too fragile for
your tastes, you might consider one of these alternate approaches.
Also, to make life easier, a shortcut function to toggle the state of
both of these variables is provided on the key binding
C-c C-p C-p (with the default value of sc-mode-map-prefix
;
see Post-yank Formatting Commands).
You will noticed that the minor mode string will
show the state of these variables as qualifier characters. When both
variables are nil
, the Supercite minor mode string will display
‘SC’. When just sc-auto-fill-region-p
is non-nil
, the
string will display ‘SC:f’, and when just
sc-fixup-whitespace-p
is non-nil
, the string will display
‘SC:w’. When both variables are non-nil
, the string will
display ‘SC:fw’. Note that the qualifiers chosen are mnemonics for
the default bindings of the toggling function for each respective
variable.
See Variable Toggling Shortcuts.
Why are these variables not set to nil
by default? It is because
many users won’t manually fill paragraphs that are Supercited, and there
have been widespread complaints on the net about mail and news messages
containing lines greater than about 72 characters. So the default is to
fill cited text.