| Age | Commit message (Collapse) | Author | 
 | 
*** Style and Bugs
- Corrected terminal arrow key sequences *again*.  M-left and M-right
  were backwards.
- Put the save-excursion back in paredit-recentre-on-sexp.  I don't
  remember why it was taken out in version 13.
- Fixed HTML output to stop producing spurious <tr> tags.
- Corrected a number of paredit command examples.
- Aesthetic changes to the code:
  . Regularized some aspects of code style.
  . Repaginated so that all pages are at most 80 lines long, and most
    are at least 40 lines.
  . Formatted headings for an outline regexp to match so that
    outline-minor-mode works nicely on paredit.el.
*** Altered Behaviour and New Functionality
- Implemented paredit-forward-kill-word & paredit-backward-kill-word,
  or M-d & M-DEL, which are like kill-word & backward-kill-word, but
  they will not kill parenthesis, string, or comment delimiters; they
  will preserve the structure of S-expressions, while the built-in
  Emacs word killing commands would destroy it.
- M-" is now bound to paredit-meta-doublequote, which has the old
  behaviour of paredit-close-string-and-newline if within a string,
  but which wraps the following S-expression (or N S-expressions) in
  double-quotes if without a string; paredit-doublequote does the
  same, but the default argument is 0, not 1.
- M-S (paredit-split-sexp) no longer deletes horizontal space in
  strings before splitting them into two.  The rationale, as
  suggested by Zbigniew Szadkowski, is that whitespace is usually
  significant in strings, while not in lists, and you can type M-\
  M-S if you really do want the horizontal space deleted anyway.
- Reintroduced paredit-join-sexps as M-J.  The implementation is now
  more robust: it ensures that the two S-expressions to join match --
  i.e. they are both lists, or they are both strings, or they are
  both symbols --, and it correctly handles the atom case now as
  well.
- Extended paredit command examples to allow multiple steps in
  succession of a single example.
darcs-hash:20080928134213-00fcc-6ad0986678483423b9db18258e129b7824e33a01
 | 
 | 
*** Style and Bugs
- Rewrote all documentation strings to be in the imperative mood, per
  GNU Emacs's guidelines.  Some documentation strings may have been
  corrected, too, but I can't be bothered to grovel through the diff
  to pick out all changes to all documentation strings.
- Forced parenthesis flashing even with show-paren-mode enabled.
- Fixed bug in forward deletion within strings so that the empty
  string can be deleted.
- Simplified determination of whether the point is in a comment.
*** Altered Behaviour and New Functionality
- Eliminated paredit-terminal-mode.  All key bindings it had are now
  incorporated into paredit-mode's keymap.  I may have changed some
  keybindings, too, but I don't remember what they were if I did.  I
  think I fixed some of the keybindings in the terminal.
- Added examples to documentation of all paredit commands, as well as
  code to generate an HTML file containing the examples in nicely
  formatted tables (sorry, web purists).
- Made paredit-mode refuse to be enabled in a buffer with imbalanced
  parentheses.
- Updated documentary heading.  It now explains how to customize keys
  while still autoloading and how to make paredit's RET work nicely
  with SLIME's REPL.
- Improved semicolon insertion: (a) to accept a numeric prefix
  argument dictating a number of semicolons to insert, instead of a
  prefix argument that forces the insertion of a semicolon without a
  trailing newline, which can be effected with C-q anyway; and (b) to
  allow insertion of semicolons before existing comments without
  inserting a superfluous leading newline.  To comment out code, you
  must still use M-; or M-x comment-region.
darcs-hash:20080928134133-00fcc-8b43de19c101c35bdc2972ba2d6304468710367f
 | 
 | 
- Introduced M-S (paredit-split-sexp) to split lists or strings from
  the middle.
- Fixed the definition of M-; to use (kbd "M-;") to correctly
  identify the key sequence meta-semicolon, not "M-;" for M hyphen
  semicolon.
darcs-hash:20080928134120-00fcc-f3d0c5f1318c5cc1c4de78c69666bbc126f305fd
 | 
 | 
- Rewrote comment insertion code.
- Implemented M-; (paredit-comment-dwim), which is like comment-dwim
  but inserts comments more appropriately with respect to paredit.
darcs-hash:20080928134053-00fcc-89725dbfcfd855de4a0e07e0ffa1e133229c0482
 | 
 | 
- paredit-close-list-and-newline now refuses to move a margin comment
  to another line; instead it will help to preserve the column of the
  comment.
- The semicolon key is now bound to a command that will automatically
  move any code following the point onto the next line, so that you
  do not inadvertently comment out half expressions.  You can still
  use M-; (comment-dwim) to comment out specific regions that are not
  meant to be code (e.g., old comments that were accidentally
  uncommented) or whole S-expressions, usually in conjunction with
  C-M-SPC (mark-sexp).
darcs-hash:20080928133903-00fcc-0f07413273679feeca677ed9d8e5464876c7f772
 | 
 | 
- Removed M-\ (paredit-join-sexps), whose key binding conflicts with
  delete-horizontal-space and whose implementation was inadequate and
  led to general uselessness of the command.
- Improved RET (paredit-newline) so that it does not do anything
  fancy within strings and first tests whether the point is in a
  comment before checking whether it is in a character.
- Changed paredit-skip-whitespace from skip-syntax-{forward,backward}
  to skip-chars-{forward,backward}, because in the Lisp syntax table
  newlines are not considered whitespace -- rather, they are comment
  ends --, but we want to skip them nevertheless.
- Corrected paredit-kill in a way I don't understand.
- Minor code improvements, including:
  . Changed call to previous-line to use forward-line instead.
  . Removed unnecessary save-excursion in paredit-recentre-on-sexp.
  . IF indentation changes.
darcs-hash:20080928133822-00fcc-703d3e78cd56715f9f46966923349ba2561d8a72
 | 
 | 
- Implemented M-r (paredit-raise-sexp), which raises a single
  S-expression up the tree, deleting all of its siblings and its
  enclosing list.
- Rearranged some arrow key bindings again.
- Made paredit-forward-delete and paredit-backward-delete check for
  buffer bounds and also matching of the delimiters of empty lists.
- Added a buffer bounds check to paredit-kill.
- Made backward barfing signal an error, not just a message.
darcs-hash:20080928133744-00fcc-b6843f09a351f97bd75c8f768399e66f8e49a697
 | 
 | 
- Changed the key for paredit-splice-sexp from M-/, which is by
  default the popular dabbrev-expand, to M-s, which I was surprised
  to find no existing binding for.
- Added a prefix argument to paredit-splice-sexp; see the command's
  documentation for details.  M-up is now equivalent to C-u M-s;
  M-down, to C-u C-u M-s.
- Fixed a lot of the terminal key sequences for the arrow key
  bindings in paredit-terminal-mode.
- Modified the behaviour of paredit-forward and paredit-backward to
  change only one level of nesting depth, not to repeat until there
  is a sibling S-expression to move across.
- Changed a lot of code to use character syntax, instead of exact
  character comparisons, for better generality.
- Rewrote much of paredit-kill, again.
darcs-hash:20080928133658-00fcc-6f28a122f0471a40b9f80ce8e60303ebf196f42f
 | 
 | 
- Introduced paredit-forward and paredit-backward, which are like
  forward-sexp and backward-sexp but which will also go up a nesting
  level if at the end of a list.
- Introduced C-c C-M-l (paredit-recentre-on-sexp), whose name is
  self-explanatory.
- Added support for numeric prefix arguments to paredit-open-list.
- Fixed paredit-kill so that it would correctly kill whitespace
  between parentheses, as in (   ).
- Changed suggestion of what to put in your .emacs from require to
  autoload.
darcs-hash:20080928133616-00fcc-1983846a129d64ac4b85e04df49fe9f4b6e36416
 | 
 | 
- Introduced enable-paredit-mode and disable-paredit-mode to better
  choose which one to enable.
- Forced blinkage of matching parentheses in paredit-close-list and
  paredit-close-list-and-newline, even if show-paren-mode is enabled.
darcs-hash:20080928133359-00fcc-e05f09d8e69fcaa6077e1bd3610dccc46a6dc441
 | 
 | 
- Added paredit-terminal-mode, which is like paredit-mode but which
  provides key bindings that work in terminals, while paredit-mode
  contains many (such as controlled brackets) that do not work in
  terminals.  Thanks to Jorgen Schaefer for suggesting many of the
  terminal key bindings.
- Exchanged RET and C-j: RET now inserts the fancy newline with auto-
  indentation, while C-j inserts a literal line feed.  While this
  defies convention, and some people prefer not to do this, I have
  found that it is more convenient for RET to have the behaviour of
  the common case, where auto-indentation is desired, and for C-j to
  insert the uncommon exact, literal line feed.  You can always
  customize the key bindings yourself, of course.
- Rearranged arrow key bindings.
- Implemented paredit-close-list-and-newline, which is like
  paredit-close-list followed by RET (paredit-newline); and M-"
  (paredit-close-string-and-newline), which is similar but for
  strings.
  The closing round bracket character now inserts the newline, while
  the meta modifier inhibits this.
- Overhauled paredit-kill.
- Extended slurpage and barfage to permit their operation across
  arbitrary depth changes.
- Fixed bizarre bug with backward barfage.  I apologize for the
  alliteration.
- Fixed a number of other small bugs.
- Prefixed `paredit-' to the remaining functions defined in the file
  that did not already have the prefix.
- Defined backward-down-list, which for some reason is not provided
  by lisp.el, although up-list, down-list, & backward-up-list all
  are.  (This is the sole exception to the above item.  It deserves
  no prefix because it ought to be defined in lisp.el with this name
  anyway.)
darcs-hash:20080928133248-00fcc-cff6c6ab1db5bb274d4b53bf702b99804dc33ebd
 | 
 | 
- Changed paredit-open-list and paredit-close-list so that they will
  refuse to insert parentheses inside character literals.
- Substituted new code for GNU Emacs's move-past-close-and-reindent.
  I do not remember why now, and I no longer understand either code
  well enough to discern differences, other than that Emacs's
  m-p-c-a-r is probably faster because it incrementally parses each
  step of the way.  All I can see is that paredit.el's code now
  inserts indentation before the closing parenthesis while Emacs's
  m-p-c-a-r does not.
- Fixed bugs in deletion within character literals and strings.
darcs-hash:20080928133142-00fcc-9a9fb3492e906d5e09da1f1ccb68bd1944ab8269
 | 
 | 
- Flushed M-" (paredit-insert-doublequote), which was rather useless
  and which " (paredit-doublequote) now subsumes the functionality of.
- Added instrumented forward deletion as well as backward deletion,
  which now behave well inside strings.
- Flushed unnecessary individual round bracket insertion keys; use
  C-q instead.
- Added C-left & C-right: backward-sexp & forward-sexp, respectively.
- Fixed the test of whether the point is in a character literal.
- Modified " (paredit-doublequote) to insert escaped double-quote if
  in the middle of the string, rather than to jump past the string's
  closing delimiter.
- Introduced bogus backslash escaping mechanism.
- Introduced new command for breaking the line and indenting, and
  bound C-j, rather than RET, to it, according to convention.
- Improved C-k (paredit-kill), particularly in strings where it will
  no longer kill the closing delimiter of the string.
- Changed the splicage, joinage, slurpage, and barfage commands so
  that they will reindent only the modified list, not the whole
  definition.
darcs-hash:20080928133010-00fcc-90a9f6931a49b99f633def9bc51157b3bc40a6bf
 | 
 | 
darcs-hash:20080928131127-00fcc-7af7487ee9835f4f8a88b30a93ef8fe43a60e59c
 |