branch: elpa/swift-mode
commit 5c3163614333f8a46faca3c1aa63dbde8694620a
Author: ap4y <[email protected]>
Commit: ap4y <[email protected]>
Treat default token as case token
---
swift-mode.el | 13 +++++++++----
test/indentation-tests.el | 21 +++++++++++++++++++++
2 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/swift-mode.el b/swift-mode.el
index 8b68c54..6e5498f 100644
--- a/swift-mode.el
+++ b/swift-mode.el
@@ -152,9 +152,8 @@
(enum-body (enum-cases) (insts))
(case-exps (exp) (guard-exp))
- (cases (case-exps ":" insts)
- (cases "case" cases))
- (switch-body (cases) (cases "default:" insts))
+ (case (case-exps ":" insts))
+ (switch-body (case) (case "case" case))
(for-head (in-exp) (op-exp) (for-head ";" for-head))
@@ -252,6 +251,9 @@
((looking-at swift-smie--access-modifier-regexp)
(goto-char (match-end 0)) "ACCESSMOD")
+ ((looking-at "default")
+ (goto-char (match-end 0)) "case")
+
(t (let ((tok (smie-default-forward-token)))
(cond
((equal tok "case")
@@ -292,6 +294,9 @@
((looking-back swift-smie--access-modifier-regexp (- (point) 8) t)
(goto-char (match-beginning 0)) "ACCESSMOD")
+ ((looking-back "default" (- (point) 7) t)
+ (goto-char (match-beginning 0)) "case")
+
(t (let ((tok (smie-default-backward-token)))
(cond
((equal tok "case")
@@ -321,7 +326,7 @@
(if (smie-rule-parent-p "switch")
(smie-rule-parent swift-indent-switch-case-offset)))
(`(:before . ";")
- (if (smie-rule-parent-p "case" "default:")
+ (if (smie-rule-parent-p "case")
(smie-rule-parent swift-indent-offset)))
;; Apply swift-indent-multiline-statement-offset only if
diff --git a/test/indentation-tests.el b/test/indentation-tests.el
index f048d14..6508ae0 100644
--- a/test/indentation-tests.el
+++ b/test/indentation-tests.el
@@ -388,6 +388,27 @@ case y:
}
")
+(check-indentation indents-statements-under-default-case/1
+ "
+{
+ switch true {
+ case y:
+ x
+ default:
+ |z
+ }
+}
+" "
+{
+ switch true {
+ case y:
+ x
+ default:
+ |z
+ }
+}
+")
+
(check-indentation indents-case-statements-with-destucturing/1
"
switch true {