[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/swift-mode adfe341 190/496: Add grammar for the protocol d
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/swift-mode adfe341 190/496: Add grammar for the protocol definitions |
Date: |
Sun, 29 Aug 2021 11:33:34 -0400 (EDT) |
branch: elpa/swift-mode
commit adfe341f8f03b5e00f55d00001150aae38c722dc
Author: ap4y <lod@pisem.net>
Commit: ap4y <lod@pisem.net>
Add grammar for the protocol definitions
---
swift-mode.el | 11 +++++++++-
test/indentation-tests.el | 53 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 1 deletion(-)
diff --git a/swift-mode.el b/swift-mode.el
index 3f638b1..3626fc6 100644
--- a/swift-mode.el
+++ b/swift-mode.el
@@ -99,13 +99,19 @@
(top-level-st
("import" type)
(decl)
- ("ACCESSMOD" "class" class-decl-exp "{" class-level-sts "}"))
+ ("ACCESSMOD" "class" class-decl-exp "{" class-level-sts "}")
+ ("ACCESSMOD" "protocol" class-decl-exp "{" protocol-level-sts "}"))
(class-level-sts (class-level-st) (class-level-st ";" class-level-st))
(class-level-st
(decl)
(func))
+ (protocol-level-sts (protocol-level-st) (protocol-level-st ";"
protocol-level-st))
+ (protocol-level-st
+ (decl)
+ (func))
+
(func ("DECSPEC" "func" func-header) (func "{" insts "}"))
(func-header (id "(" func-params ")") (func-header "->" type))
(func-param (decl-exp) ("..."))
@@ -340,6 +346,9 @@
(if (smie-rule-prev-p "->") swift-indent-offset
(smie-rule-parent)))
(`(:after . "->") swift-indent-offset)
+
+ ;; Normalize behaviour with and without declaration specifier
+ (`(:before . "DECSPEC") swift-indent-offset)
))
;;; Font lock
diff --git a/test/indentation-tests.el b/test/indentation-tests.el
index c0b5d61..c6a493d 100644
--- a/test/indentation-tests.el
+++ b/test/indentation-tests.el
@@ -795,6 +795,59 @@ func foo() ->
func foo() ->
|[A] {}
")
+
+(check-indentation indents-protocol-declaration/1
+ "
+protocol Foo {
+ func foo()
+|func bar()
+}
+" "
+protocol Foo {
+ func foo()
+ |func bar()
+}
+")
+
+(check-indentation indents-protocol-declaration/2
+ "
+protocol Foo {
+ func foo() -> Foo
+|func bar() -> Bar
+}
+" "
+protocol Foo {
+ func foo() -> Foo
+ |func bar() -> Bar
+}
+")
+
+(check-indentation indents-protocol-declaration/3
+ "
+protocol Foo {
+ func foo() -> Foo<A>
+|func bar() -> Bar<A>
+}
+" "
+protocol Foo {
+ func foo() -> Foo<A>
+ |func bar() -> Bar<A>
+}
+")
+
+(check-indentation indents-protocol-declaration/4
+ "
+protocol Foo {
+ func foo() -> [A]
+|func bar() -> [A]
+}
+" "
+protocol Foo {
+ func foo() -> [A]
+ |func bar() -> [A]
+}
+")
+
(check-indentation indents-declaration/1
"
var foo = bar + baz
- [nongnu] elpa/swift-mode a44a755 052/496: Add docstrings for internal indent commands, (continued)
- [nongnu] elpa/swift-mode a44a755 052/496: Add docstrings for internal indent commands, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 62276c3 061/496: Indent cases in enums, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode e168b34 128/496: Don't use implicit semicolon for multi-line dot expressions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode ee83a1d 137/496: Rename swift-indent-multiline-dot-offset to swift-indent-multiline-statement-offset, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode fca914a 165/496: Merge pull request #63 from ckruse/updated_syntax, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 8db040e 166/496: fix: underscores are word characters (Word constituents), ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 2a21e1b 177/496: Add ternary operator smie grammar, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 641681a 182/496: Fix small typo in comment string, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 2b17f71 183/496: Improve grammar and lexer to support access modifier in class definitions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode cac2884 185/496: Add lists to the "type" grammar, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode adfe341 190/496: Add grammar for the protocol definitions,
ELPA Syncer <=
- [nongnu] elpa/swift-mode 20134ed 193/496: Use postive lookahead for declaration specifier lexer rule, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode c2c3c01 199/496: Improve support for optional types, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode d6483e1 207/496: Add ?? to the lexer rule for operators, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 9e6c538 210/496: Correct DECSPEC regex and lexer rule, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 2c67d92 213/496: Fix indentation of the closure arguments inside parentheses, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 5a858c7 218/496: Improve indentation of the array and dictionary expressions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 195d040 227/496: Merge pull request #76 from ap4y/batch_smie_fixes, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode dbf48a1 232/496: Merge pull request #90 from nathankot/flycheck-framework-search-paths, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode e6f1a3c 237/496: More configurability for flycheck, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 3e8befa 238/496: Merge pull request #92 from apiology/more_flycheck_option_vars, ELPA Syncer, 2021/08/29