diff options
| -rw-r--r-- | paredit.el | 49 | 
1 files changed, 21 insertions, 28 deletions
| @@ -1065,35 +1065,28 @@ This is expected to be called only in `paredit-comment-dwim'; do not          (code-before-p           (save-excursion (paredit-skip-whitespace nil (point-at-bol))                           (not (bolp))))) -    (if (and (bolp) -             ;; We have to use EQ 0 here and not ZEROP because ZEROP -             ;; signals an error if its argument is non-numeric, but -             ;; CALCULATE-LISP-INDENT may return nil. -             (eq (let ((indent (calculate-lisp-indent))) -                   (if (consp indent) -                       (car indent) -                     indent)) -                 0)) -        ;; Top-level comment -        (progn (if code-after-p (save-excursion (newline))) -               (insert ";;; ")) -      (if code-after-p -          ;; Code comment -          (progn (if code-before-p -                     ;++ Why NEWLINE-AND-INDENT here and not just -                     ;++ NEWLINE, or PAREDIT-NEWLINE? -                     (newline-and-indent)) +    (cond ((and (bolp) +                (let ((indent +                       (let ((indent (calculate-lisp-indent))) +                         (if (consp indent) (car indent) indent)))) +                  (and indent (zerop indent)))) +           ;; Top-level comment +           (if code-after-p (save-excursion (newline))) +           (insert ";;; ")) +          ((or code-after-p (not code-before-p)) +           ;; Code comment +           (if code-before-p (newline)) +           (lisp-indent-line) +           (insert ";; ") +           (if code-after-p +               (save-excursion +                 (newline)                   (lisp-indent-line) -                 (insert ";; ") -                 ;; Move the following code.  (NEWLINE-AND-INDENT will -                 ;; delete whitespace after the comment, though, so use -                 ;; NEWLINE & LISP-INDENT-LINE manually here.) -                 (save-excursion (newline) -                                 (lisp-indent-line))) -          ;; Margin comment -          (progn (indent-to comment-column -                            1)          ; 1 -> force one leading space -                 (insert ?\; )))))) +                 (indent-sexp)))) +          (t +           ;; Margin comment +           (indent-to comment-column 1) ; 1 -> force one leading space +           (insert ?\; )))))  ;;;; Character Deletion | 
