diff options
| -rw-r--r-- | lisp/progmodes/c-ts-common.el | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lisp/progmodes/c-ts-common.el b/lisp/progmodes/c-ts-common.el index 298fb3cd074..732b61bdd8f 100644 --- a/lisp/progmodes/c-ts-common.el +++ b/lisp/progmodes/c-ts-common.el | |||
| @@ -292,27 +292,31 @@ and /* */ comments. SOFT works the same as in | |||
| 292 | ;; line is in a /* comment, insert a newline and a * prefix. No | 292 | ;; line is in a /* comment, insert a newline and a * prefix. No |
| 293 | ;; auto-fill or other smart features. | 293 | ;; auto-fill or other smart features. |
| 294 | (cond | 294 | (cond |
| 295 | ;; Line starts with // | ||
| 295 | ((save-excursion | 296 | ((save-excursion |
| 296 | (beginning-of-line) | 297 | (beginning-of-line) |
| 297 | (looking-at (rx "//" (group (* " "))))) | 298 | (looking-at (rx "//" (group (* " "))))) |
| 298 | (let ((whitespaces (match-string 1))) | 299 | (let ((whitespaces (match-string 1))) |
| 299 | (if soft (insert-and-inherit ?\n) (newline 1)) | 300 | (if soft (insert-and-inherit ?\n) (newline 1)) |
| 300 | (delete-region (point) (line-end-position)) | 301 | (delete-region (line-beginning-position) (point)) |
| 301 | (insert "//" whitespaces))) | 302 | (insert "//" whitespaces))) |
| 302 | 303 | ||
| 304 | ;; Line starts with /* or /** | ||
| 303 | ((save-excursion | 305 | ((save-excursion |
| 304 | (beginning-of-line) | 306 | (beginning-of-line) |
| 305 | (looking-at (rx "/*"))) | 307 | (looking-at (rx "/*" (group (? "*") (* " "))))) |
| 306 | (if soft (insert-and-inherit ?\n) (newline 1)) | 308 | (let ((whitespace-and-star-len (length (match-string 1)))) |
| 307 | (delete-region (point) (line-end-position)) | 309 | (if soft (insert-and-inherit ?\n) (newline 1)) |
| 308 | (insert " *")) | 310 | (delete-region (line-beginning-position) (point)) |
| 311 | (insert " *" (make-string whitespace-and-star-len ?\s)))) | ||
| 309 | 312 | ||
| 313 | ;; Line starts with * | ||
| 310 | ((save-excursion | 314 | ((save-excursion |
| 311 | (beginning-of-line) | 315 | (beginning-of-line) |
| 312 | (looking-at (rx (group (* " ") (or "*" "|") (* " "))))) | 316 | (looking-at (rx (group (* " ") (or "*" "|") (* " "))))) |
| 313 | (let ((prefix (match-string 1))) | 317 | (let ((prefix (match-string 1))) |
| 314 | (if soft (insert-and-inherit ?\n) (newline 1)) | 318 | (if soft (insert-and-inherit ?\n) (newline 1)) |
| 315 | (delete-region (point) (line-end-position)) | 319 | (delete-region (line-beginning-position) (point)) |
| 316 | (insert prefix))))) | 320 | (insert prefix))))) |
| 317 | 321 | ||
| 318 | ;;; Statement indent | 322 | ;;; Statement indent |