summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorYuan Fu <casouri@gmail.com>2022-12-28 15:47:14 -0800
committerYuan Fu <casouri@gmail.com>2022-12-28 15:47:14 -0800
commit398ed75c276d7e4de583a9de750a777173252e77 (patch)
treee9701b6896f014c91cb30ccaa9c7c10ea69d0f62 /lisp
parent19b8733aa27719e0aa60fad23a45a7f89d68b88d (diff)
downloademacs-398ed75c276d7e4de583a9de750a777173252e77.tar.gz
; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/progmodes/c-ts-mode.el15
1 files changed, 13 insertions, 2 deletions
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index 83b0459c230..8ba6cdee42d 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -590,6 +590,10 @@ ARG is passed to `fill-paragraph'."
(goto-char (match-beginning 1))
(setq start-marker (point-marker))
(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)
@@ -661,11 +665,18 @@ Set up:
(concat (rx (* (syntax whitespace))
(group (or (seq "/" (+ "/")) (* "*"))))
adaptive-fill-regexp))
- ;; Same as `adaptive-fill-regexp'.
+ ;; Note the missing * comparing to `adaptive-fill-regexp'. The
+ ;; reason for its absence is a bit convoluted to explain. Suffice
+ ;; to say that without it, filling a single line paragraph that
+ ;; starts with /* doesn't insert * at the beginning of each
+ ;; following line, and filling a multi-line paragraph whose first
+ ;; two lines start with * does insert * at the beginning of each
+ ;; following line. If you know how does adaptive filling works, you
+ ;; know what I mean.
(setq-local adaptive-fill-first-line-regexp
(rx bos
(seq (* (syntax whitespace))
- (group (or (seq "/" (+ "/")) (* "*")))
+ (group (seq "/" (+ "/")))
(* (syntax whitespace)))
eos))
;; Same as `adaptive-fill-regexp'.