From: Yuan Fu Date: Wed, 22 Mar 2023 05:50:03 +0000 (-0700) Subject: Only fill the current paragraph in c-ts-common--fill-block-comment X-Git-Tag: emacs-29.0.90~114 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f856468e457b76254fa3706a5ec1c8c1d4b49da3;p=emacs.git Only fill the current paragraph in c-ts-common--fill-block-comment * lisp/progmodes/c-ts-common.el: (c-ts-common--fill-block-comment): Shrink the filled region to the paragraph at point. --- diff --git a/lisp/progmodes/c-ts-common.el b/lisp/progmodes/c-ts-common.el index 85db39aaeae..e0a7c46508e 100644 --- a/lisp/progmodes/c-ts-common.el +++ b/lisp/progmodes/c-ts-common.el @@ -156,10 +156,12 @@ comment." (goto-char (match-beginning 1)) (move-marker start-marker (point)) (replace-match " " nil nil nil 1)) + ;; Include whitespaces before /*. (goto-char start) (beginning-of-line) (setq start (point)) + ;; Mask spaces before "*/" if it is attached at the end ;; of a sentence rather than on its own line. (goto-char end) @@ -172,6 +174,7 @@ comment." (setq end-len (- (match-end 1) (match-beginning 1))) (replace-match (make-string end-len ?x) nil nil nil 1)) + ;; If "*/" is on its own line, don't included it in the ;; filling region. (when (not end-marker) @@ -180,13 +183,21 @@ comment." (backward-char 2) (skip-syntax-backward "-") (setq end (point)))) + ;; Let `fill-paragraph' do its thing. (goto-char orig-point) (narrow-to-region start end) - ;; We don't want to fill the region between START and - ;; START-MARKER, otherwise the filling function might delete - ;; some spaces there. - (fill-region start-marker end arg) + (let (para-start para-end) + (forward-paragraph 1) + (setq para-end (point)) + (forward-paragraph -1) + (setq para-start (point)) + ;; We don't want to fill the region between START and + ;; START-MARKER, otherwise the filling function might delete + ;; some spaces there. Also, we only fill the current + ;; paragraph. + (fill-region (max start-marker para-start) (min end para-end) arg)) + ;; Unmask. (when start-marker (goto-char start-marker)