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

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

[nongnu] elpa/swift-mode 1c4253b 191/496: Improve indentation for nested


From: ELPA Syncer
Subject: [nongnu] elpa/swift-mode 1c4253b 191/496: Improve indentation for nested hash/array statements
Date: Sun, 29 Aug 2021 11:33:34 -0400 (EDT)

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

    Improve indentation for nested hash/array statements
---
 swift-mode.el             |  6 ++++--
 test/indentation-tests.el | 48 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/swift-mode.el b/swift-mode.el
index 3626fc6..9425fce 100644
--- a/swift-mode.el
+++ b/swift-mode.el
@@ -343,8 +343,10 @@
     (`(:before . "(")
      (if (smie-rule-next-p "[") (smie-rule-parent)))
     (`(:before . "[")
-     (if (smie-rule-prev-p "->") swift-indent-offset
-       (smie-rule-parent)))
+     (cond
+      ((smie-rule-prev-p "->") swift-indent-offset)
+      ((smie-rule-parent-p "[") swift-indent-offset)
+      (t (smie-rule-parent))))
     (`(:after . "->") swift-indent-offset)
 
     ;; Normalize behaviour with and without declaration specifier
diff --git a/test/indentation-tests.el b/test/indentation-tests.el
index c6a493d..03cbdd5 100644
--- a/test/indentation-tests.el
+++ b/test/indentation-tests.el
@@ -914,6 +914,54 @@ var result = Dictionary<String, V>()
 var result = Dictionary<String, V>()
 |foo
 ")
+(check-indentation indents-declaration/8
+  "
+let foo =
+|bar
+" "
+let foo =
+    |bar
+")
+
+(check-indentation indents-declaration/9
+  "
+let foo: Foo? =
+|bar
+" "
+let foo: Foo? =
+    |bar
+")
+
+(check-indentation indents-declaration/10
+  "
+let foo: Foo<A> =
+|bar
+" "
+let foo: Foo<A> =
+    |bar
+")
+
+(check-indentation indents-declaration/11
+  "
+let foo = [
+    foo:
+|bar
+]
+" "
+let foo = [
+    foo:
+    |bar
+]
+")
+
+(check-indentation indents-declaration/12
+  "
+let foo = [
+|[
+" "
+let foo = [
+    |[
+")
 
 (check-indentation indents-multiline-expressions/1
 "



reply via email to

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