(kill-line arg)
(skip-syntax-forward " -")
(while (and (condition-case nil
- (progn (forward-sexp) t)
+ (progn
+ (forward-sexp)
+ (skip-syntax-forward " -")
+ t)
(scan-error nil))
- (< (point) eol)))
+ ;; We've skipped one sexp.
+ ;; Are we still on the same line?
+ (< (point) eol)
+ ;; Does the line end with a comment?
+ (or (not (equal (char-after) ?\;))
+ ;; It does. Stop after the comment.
+ (prog1 nil (goto-char eol)))))
(kill-region beg (point)))))))
(defun lisp-tidy-sexp ()