Rev 6222 contains all the old reformat-paragraph unit tests, plus 8 new 
ones.

Please report any actual problems with this command.  I probably won't be 
interested in complex improvements.

I use this command constantly while writing documentation and when creating 
notes pasted from other sources.

The new code treats the following as **single-line paragraphs** (a key 
distinction, it turns out):

    @anything
    """
    '''

Blank lines always terminate paragraphs, but the new code assumes that any 
of the following start a paragraph, thereby terminating the previous 
paragraph:

    1. whatever
    1) whatever
    925. whatever
    2) whatever
    - whatever
    A. whatever
    a) whatever

The last two cases start with a *single* alpha character, not 
a-longer-than-one-charater-word!  Even this restriction could cause problem 
conceivably.  Deal with it...

This is very tricky to have all this work reasonably, but the results are 
worthwhile.

Here is a test sample that I have been using::

    @pagewidth 40
    '''
    docstring.
    more docstring.
    '''
    - Point 1. xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Line 11.
    A. Point 2. xxxxxxxxxxxxxxxxxxxxxxxxxxx
      Line 22.
    1. Point 3. xxxxxxxxxxxxxxxxxxxxxxxxxxx
    Line 32.
    2. Point 4  xxxxxxxxxxxxxxxxxxxxxxxxxxx
            Line 41

The last case will leave the *extra* indentation of Line 41 as it is.  This 
is debatable, but I'm not really interested in the debate ;-)

This works much better on docstrings than the Emacs.  Consider this quote 
from pep 257: http://www.python.org/dev/peps/pep-0257/

    "The BDFL recommends inserting a blank line between the
    last paragraph in a multi-line docstring and its closing quotes,
    placing the closing quotes on a line by themselves.
    This way, Emacs' fill-paragraph command can be used on it."

Imo, this a truly wretched concession.  It's no longer needed in Leo.

Now, Leo formats both the following docstrings reasonably:

    '''
    docstring.
    more docstring.
    '''

and

    '''docstring.
    more docstring.
    '''

We could argue about further improvements, but these are good enough for me.

Edward

P.S. Here is what I did:

- Rewrote c.findBoundParagraph & added helpers:
    - c.starts/endParagraph
    - c.singleLineParagraph.
- Add space adjustments to rp_wrap_all_lines.

The helpers, c.starts/endParagraph and c.singleLineParagraph are actually 
the crucial new code because they create three new distinctions that were 
not previously present in the code.  c.endParagraph is particularly 
trivial, but I wanted to make it an official helper (rather than defining 
it within findBoundParagraph) so that scripts and plugins would have the 
option of monkey-patching it if desired.

EKR

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to