subpar *what is subpar? Subpar is a paragraph reformatter similar to Adam Costello's "par" program. As the name suggests, its formatting is not quite as advanced as par's and it doesn't have as many options. However it has some features JED's internal reformatter does not have: - leaves two-space sentence separators intact - can reformat newline-terminated comments and [email] quotes - does not move comment and bullet characters to the beginning of a line. For instance in this outline the '*' and the '-' are bullet characters, which happens to be the default value of [Par_Bullets]. **what is par? Par is a paragraph reformatter similar to fmt. It goes through a number of dynamic programming routines to maximize the minimum line length, minimize the difference between the longest and shortest line, and minimize the sum of squares of differences between line lengths and the maximum line length. Subpar, being a slow script, only does the last step. *what is a paragraph? Right now it depends on whether the mode has a comment_info setting. - If it does not have one, subpar simply calls backward_paragraph and forward_paragraph to find the paragraph. - If it does have one, subpar will select as much text as has the same prefix as the current line, where the prefix is any whitespace or character in comment_info.cbeg (in C++ it would be " /"). *sentence ends Subpar will not break a line at a double space. However it will not insert a double space when a word + period that was at the end of the line ends up in the middle of a line through reformatting and it will break lines after a period followed by a single space. Most formatters work the other way around, keeping the sequence ". " together but breaking ". ", and inserting two spaces when necessary. The thing is, in Europe sentences are usually not separated by double spaces and I sometimes use them, sometimes I don't. A formatter that inserts double spaces will be wrong if you don't use double spaces, and a formatter that does not, but keeps double spaces together should work reasonably well if you do. Anyway JED's wrap hooks are sub-par as well. *Par_Bullets Customvariable to define your bullet characters. If you use numbered lists a lot, set it to "1-9". It's used in a regexp character list, so if you use lists bulleted with '-' set it to "\\-". Note that setting this does not change the way subpar selects paragraphs. You have to set a parsep_hook to change that, or add the bullet chars to the comment_info for your mode. If the mode has a comment_info, and you write a bulleted changelog item, you'll probably indent the text under the bullet and there's no need to change anything, however the bulleted line will not be reformatted with the rest of the paragraph. JED makes no distinction between a 'paragraph-separate' regexp, which would be '^\\*' in this outline, and a 'paragraph-start', which would be '^ *-'. Maybe the next version will be more like Emacs' fill.el. *email You can reformat quoted text with subpar. Add the following lines to your .jedrc: define email_mode_hook() { set_comment_info ("email", ">:| ", "", 0); } However email.sl's reformatting function works just as well and is much faster.