[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/swift-mode dd8f793 133/496: Make multi-line dot statement
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/swift-mode dd8f793 133/496: Make multi-line dot statement offset customisable value |
Date: |
Sun, 29 Aug 2021 11:33:22 -0400 (EDT) |
branch: elpa/swift-mode
commit dd8f793ee861ae1cf0dc02a98b8858a8fa4c1ab3
Author: ap4y <lod@pisem.net>
Commit: ap4y <lod@pisem.net>
Make multi-line dot statement offset customisable value
---
swift-mode.el | 14 ++++++++++++++
test/indentation-tests.el | 31 +++++++++++++++++++++++++++++++
2 files changed, 45 insertions(+)
diff --git a/swift-mode.el b/swift-mode.el
index adea3e9..d6f2f24 100644
--- a/swift-mode.el
+++ b/swift-mode.el
@@ -53,6 +53,12 @@
:group 'swift
:type 'integerp)
+(defcustom swift-indent-multiline-dot-offset 2
+ "Defines the indentation offset for for multiline dot statement."
+ :group 'swift
+ :type 'integerp
+ :package-version '(swift-mode "0.3.0"))
+
(defcustom swift-repl-executable
"xcrun swift"
"Path to the Swift CLI."
@@ -266,6 +272,14 @@
(if (smie-rule-parent-p "case" "default")
(smie-rule-parent swift-indent-offset)))
+ ;; Apply swift-indent-multiline-dot-offset only if
+ ;; - dot is followed by newline, or
+ ;; - have at least one whitespace character before dot
+ (`(:before . ".")
+ (if (or (looking-at "[.][\n]")
+ (looking-back "[ \t\n]" 1 t))
+ (smie-rule-parent swift-indent-multiline-dot-offset)))
+
(`(:before . "if")
(if (smie-rule-prev-p "else")
(if (smie-rule-parent-p "{")
diff --git a/test/indentation-tests.el b/test/indentation-tests.el
index d5dc4b4..c4c9e2a 100644
--- a/test/indentation-tests.el
+++ b/test/indentation-tests.el
@@ -58,6 +58,7 @@ values of customisable variables."
;; Bind customisable vars to default values for tests.
(swift-indent-offset 4)
(swift-indent-switch-case-offset 0)
+ (swift-indent-multiline-dot-offset 2)
,@var-bindings)
(with-temp-buffer
(insert ,before)
@@ -810,6 +811,36 @@ let json_ary = NSJSONSerialization
|.JSONObjectWithData(data, options: nil, error: &json_err) as
NSArray
")
+(check-indentation indents-multiline-expressions-to-user-defined-offset/1
+ "
+NSNotificationCenter.defaultCenter().
+|postNotificationName(foo, object: nil)
+" "
+NSNotificationCenter.defaultCenter().
+ |postNotificationName(foo, object: nil)
+"
+((swift-indent-multiline-dot-offset 4)))
+
+(check-indentation indents-multiline-expressions-to-user-defined-offset/2
+ "
+NSNotificationCenter.defaultCenter()
+|.postNotificationName(foo, object: nil)
+" "
+NSNotificationCenter.defaultCenter()
+ |.postNotificationName(foo, object: nil)
+"
+((swift-indent-multiline-dot-offset 4)))
+
+(check-indentation indents-multiline-expressions-to-user-defined-offset/3
+ "
+let json_ary = NSJSONSerialization
+ |.JSONObjectWithData(data, options: nil, error: &json_err) as
NSArray
+" "
+let json_ary = NSJSONSerialization
+ |.JSONObjectWithData(data, options: nil, error: &json_err) as
NSArray
+"
+((swift-indent-multiline-dot-offset 4)))
+
(check-indentation indents-type-annotations/1
"
typealias Foo = Bar<Foo.Baz, Foo>
- [nongnu] elpa/swift-mode edec7d5 471/496: Suppress a doccheck warning for old versions, (continued)
- [nongnu] elpa/swift-mode edec7d5 471/496: Suppress a doccheck warning for old versions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode b93b97e 466/496: Bump version to 8.1.1, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 0bc8d8d 477/496: Use isAvailable when reading simctl device JSON, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 800efe2 496/496: Fix tags of customization, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 370caa7 494/496: Update copyright notices, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 69b8934 080/496: Update readme, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 37fb4d0 119/496: Release 0.2.0, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode ca6437a 116/496: Merge pull request #29 from ap4y/master, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 79622d7 123/496: Merge pull request #32 from ap4y/fix_nested_multi_line_comments, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 7826550 124/496: Fix code alignment, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode dd8f793 133/496: Make multi-line dot statement offset customisable value,
ELPA Syncer <=
- [nongnu] elpa/swift-mode 2d478bf 140/496: Merge pull request #46 from ap4y/multiline_op_statemenets, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode e09694f 158/496: Release 0.3.0, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 9b6f599 146/496: Apply swift-indent-offset to multi-line class definitions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 4286ff9 148/496: Merge pull request #52 from ap4y/fix_47, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 0f57a7d 179/496: Add lexer rule for ":" token., ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 2d0194e 184/496: Correct several indentation cases for class defitinion, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode f8190d6 186/496: Extract function into separate grammar and add return typo to the, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode fb2f48e 187/496: Add rule for assignment expression, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 01bcc35 192/496: Improve grammar for functions and contraint protocols grammar to, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode c09229a 198/496: Use semantic hanging-p function instead of custom regex when checking, ELPA Syncer, 2021/08/29