Make comment-indent-new-line conform better to CC Mode (bug#71225)

* lisp/progmodes/c-ts-common.el: (c-ts-common-comment-indent-new-line):
Single line comment and block comment now behave more like the
c-indent-new-comment-line.
This commit is contained in:
Vincenzo Pupillo 2024-05-26 21:07:50 +02:00 committed by Theodor Thornhill
parent 48bb25c0e3
commit 1ea398e8f1
No known key found for this signature in database
GPG key ID: 2B8CF6039F079DA3

View file

@ -303,20 +303,31 @@ and /* */ comments. SOFT works the same as in
;; Or //! (used in rust).
((save-excursion
(beginning-of-line)
(looking-at (rx "//" (group (* (any "/!")) (* " ")))))
(let ((whitespaces (match-string 1)))
(re-search-forward
(rx "//" (group (* (any "/!")) (* " ")))
(line-end-position)
t nil))
(let ((offset (- (match-beginning 0) (line-beginning-position)))
(whitespaces (match-string 1)))
(if soft (insert-and-inherit ?\n) (newline 1))
(delete-region (line-beginning-position) (point))
(insert "//" whitespaces)))
(insert (make-string offset ?\s) "//" whitespaces)))
;; Line starts with /* or /**.
((save-excursion
(beginning-of-line)
(looking-at (rx "/*" (group (? "*") (* " ")))))
(let ((whitespace-and-star-len (length (match-string 1))))
(re-search-forward
(rx "/*" (group (? "*") (* " ")))
(line-end-position)
t nil))
(let ((offset (- (match-beginning 0) (line-beginning-position)))
(whitespace-and-star-len (length (match-string 1))))
(if soft (insert-and-inherit ?\n) (newline 1))
(delete-region (line-beginning-position) (point))
(insert " *" (make-string whitespace-and-star-len ?\s))))
(insert
(make-string offset ?\s)
" *"
(make-string whitespace-and-star-len ?\s))))
;; Line starts with *.
((save-excursion