Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit a2ab8ff

Browse filesBrowse files
committed
Tweak indentation of multiline comments
1 parent ee6e9ce commit a2ab8ff
Copy full SHA for a2ab8ff

File tree

Expand file treeCollapse file tree

1 file changed

+37
-37
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+37
-37
lines changed
Open diff view settings
Collapse file

‎swift-mode-indent.el‎

Copy file name to clipboardExpand all lines: swift-mode-indent.el
+37-37Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -174,54 +174,54 @@ declaration and its offset is `swift-mode:basic-offset'."
174174
(defun swift-mode:calculate-indent-of-multiline-comment ()
175175
"Return the indentation of the current line inside a multiline comment."
176176
(back-to-indentation)
177-
(let ((comment-beginning-position (nth 8 (syntax-ppss)))
177+
(let ((pos (point))
178+
(comment-beginning-position (nth 8 (syntax-ppss)))
178179
(starts-with-asterisk (eq (char-after) ?*)))
179-
(forward-line -1)
180-
(back-to-indentation)
181180
(cond
182-
((<= (point) comment-beginning-position)
183-
;; The cursor was on the 2nd line of the comment.
181+
;; Before the closing delimiter.
182+
((and (looking-at "\\*+/")
183+
(= pos
184+
(save-excursion
185+
(goto-char comment-beginning-position)
186+
(if (forward-comment 1)
187+
(progn
188+
(backward-char)
189+
(skip-chars-backward "*")
190+
(point))
191+
-1))))
192+
;; Aligns with the first asterisk of the opening delimiter.
184193
(goto-char comment-beginning-position)
185194
(forward-char)
186-
;; If there are extra characters or spaces after asterisks, aligns with
187-
;; the first non-space character or end of line. Otherwise, aligns with
188-
;; the first asterisk.
189-
(when (and
190-
(looking-at "\\**[^*\n]+")
191-
(not (and swift-mode:prepend-asterisk-to-comment-line
192-
starts-with-asterisk)))
193-
(skip-chars-forward "*")
194-
(skip-syntax-forward " "))
195195
(swift-mode:indentation (point) 0))
196196

197-
;; The cursor was on the 3rd or following lines of the comment.
198-
199-
((= (save-excursion
200-
(forward-line)
201-
(back-to-indentation)
202-
(point))
203-
(save-excursion
204-
(goto-char comment-beginning-position)
205-
(if (forward-comment 1)
206-
(progn
207-
(backward-char)
208-
(skip-chars-backward "*")
209-
(point))
210-
-1)))
211-
;; Before the closing delimiter. Aligns with the first asterisk of the
212-
;; opening delimiter.
197+
;; The cursor was on the 2nd line of the comment (excluding empty lines).
198+
((progn
199+
(forward-line -1)
200+
(while (and (bolp) (eolp) (< comment-beginning-position (point)))
201+
(forward-line -1))
202+
(back-to-indentation)
203+
(<= (point) comment-beginning-position))
213204
(goto-char comment-beginning-position)
214205
(forward-char)
206+
;; If the line starts with a decoration asterisk, align with the first
207+
;; asterisk of the opening delimiter.
208+
;;
209+
;; Otherwise, if there are extra characters or spaces after asterisks,
210+
;; aligns with the first non-space character or end of line.
211+
;;
212+
;; Otherwise, aligns with the first asterisk of the opening delimiter.
213+
(when (and
214+
(not (and swift-mode:prepend-asterisk-to-comment-line
215+
starts-with-asterisk))
216+
(looking-at "\\**[^*\n]+"))
217+
(skip-chars-forward "*")
218+
(skip-syntax-forward " "))
215219
(swift-mode:indentation (point) 0))
216220

217-
;; Otherwise, aligns with a non-empty preceding line.
218-
219-
((and (bolp) (eolp))
220-
;; The previous line is empty, so seeks a non-empty-line.
221-
(swift-mode:calculate-indent-of-multiline-comment))
222-
221+
;; The cursor was on the 3rd or following line of the comment, and found a
222+
;; non-empty preceding line.
223223
(t
224-
;; The previous line is not empty, so aligns to this line.
224+
;; Aligns to this line.
225225
(swift-mode:indentation (point) 0)))))
226226

227227
(defun swift-mode:calculate-indent-of-multiline-string ()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.