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.
This commit is contained in:
Yuan Fu 2023-03-21 22:50:03 -07:00
parent df669c5a11
commit f856468e45
No known key found for this signature in database
GPG key ID: 56E19BC57664A442

View 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)