emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/swift-mode 5c31636 200/496: Treat default token as case to


From: ELPA Syncer
Subject: [nongnu] elpa/swift-mode 5c31636 200/496: Treat default token as case token
Date: Sun, 29 Aug 2021 11:33:35 -0400 (EDT)

branch: elpa/swift-mode
commit 5c3163614333f8a46faca3c1aa63dbde8694620a
Author: ap4y <lod@pisem.net>
Commit: ap4y <lod@pisem.net>

    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 {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]