Only fill the current paragraph in c-ts-common--fill-block-comment
authorYuan Fu <casouri@gmail.com>
Wed, 22 Mar 2023 05:50:03 +0000 (22:50 -0700)
committerYuan Fu <casouri@gmail.com>
Wed, 22 Mar 2023 05:50:03 +0000 (22:50 -0700)
* lisp/progmodes/c-ts-common.el:
(c-ts-common--fill-block-comment): Shrink the filled region to the
paragraph at point.

lisp/progmodes/c-ts-common.el

index 85db39aaeae1d85948c5575cb9d89fb4aee6e7a6..e0a7c46508e4e12c24b0008d7ee41d4de8876050 100644 (file)
@@ -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)