[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/swift-mode f03db1a 331/496: Fix indentation of switch.
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/swift-mode f03db1a 331/496: Fix indentation of switch. |
Date: |
Sun, 29 Aug 2021 11:34:01 -0400 (EDT) |
branch: elpa/swift-mode
commit f03db1a91cff6cbf2ec471481eccaea27af20010
Author: taku0 <mxxouy6x3m_github@tatapa.org>
Commit: taku0 <mxxouy6x3m_github@tatapa.org>
Fix indentation of switch.
Close #134.
---
swift-mode-indent.el | 22 ++++++++++++++++++----
test/swift-files/statements.swift | 12 ++++++++++++
2 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/swift-mode-indent.el b/swift-mode-indent.el
index c9c1ef0..2a6c377 100644
--- a/swift-mode-indent.el
+++ b/swift-mode-indent.el
@@ -262,10 +262,24 @@ declaration and its offset is `swift-mode:basic-offset'."
next-is-on-same-line
(member next-text '("case" "default"))
(save-excursion
- (equal (swift-mode:token:text
- (swift-mode:backward-sexps-until
- '("switch" "enum" "for" "while" "if" "guard")))
- "switch")))
+ (let ((head
+ (swift-mode:backward-sexps-until
+ '(implicit-\; \; "switch" "enum" "for" "while" "if"
"guard"))))
+ (or
+ (equal (swift-mode:token:text head) "switch")
+ (and
+ ;; If we got a semicolon, the statement is either switch or enum:
+ ;;
+ ;; switch foo {
+ ;; case 1:
+ ;; if aaa {
+ ;; }; // implicit semicolon
+ ;; case 2:
+ ;; }
+ (memq (swift-mode:token:type head) '(implicit-\; \;))
+ (equal (swift-mode:token:text
+ (swift-mode:backward-sexps-until '("switch" "enum")))
+ "switch"))))))
;; "case" is used for "switch", "enum", "for", "while", "if", and
"guard".
;; Only switch statement has special indentation rule.
;;
diff --git a/test/swift-files/statements.swift
b/test/swift-files/statements.swift
index f1c9851..79947ad 100644
--- a/test/swift-files/statements.swift
+++ b/test/swift-files/statements.swift
@@ -885,6 +885,18 @@ case let AAA
.bar:
}
+switch foo {
+case 1:
+ if aaa {
+ }
+case 2:
+ if bbb {
+ }
+default:
+ if ccc {
+ }
+}
+
// swift-mode:test:eval (setq-local swift-mode:switch-case-offset 2)
switch foo {
- [nongnu] elpa/swift-mode 3931734 283/496: fix multi-line expressions, (continued)
- [nongnu] elpa/swift-mode 3931734 283/496: fix multi-line expressions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode e5b569e 284/496: Add keyword for attribute, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode d614017 298/496: Update copyright years, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 174bccc 309/496: Tweak .travis.yml, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode f9f4bc5 311/496: Fix `beginning/end-of-defun`, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode c659c45 329/496: Highlight anchor point for debugging., ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode b6512fa 325/496: Fix indentation of attributes, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 1d43501 330/496: Fix indentation of attributes at begging of the buffer., ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 193de68 327/496: Fix end-of-defun at eob, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode a07be7a 335/496: Fix `swift-mode:beginning-of-defun`, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode f03db1a 331/496: Fix indentation of switch.,
ELPA Syncer <=
- [nongnu] elpa/swift-mode a489024 344/496: indent-new-comment-line: Inherit slashes from the previous line, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 75cbae2 345/496: Bump version to 2.2.3, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 42669da 343/496: Fix indentation for keywords used as parameter names, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 0cab4b2 346/496: Fix indentation for catch blocks without patterns, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 92f8eba 349/496: Update README.md, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 2cd111f 351/496: Fix indentation of multiline strings, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 3bcdf32 353/496: Add more keywords with number sign, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 030b1b8 356/496: Update documentations and wordings, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode d68af3c 365/496: Update copyright, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 359efc0 379/496: Fix indentation of function parameter clauses, ELPA Syncer, 2021/08/29