aboutsummaryrefslogtreecommitdiffstats
path: root/tests/indent
diff options
context:
space:
mode:
authorPham Huy Hoang <hoangtun0810@gmail.com>2023-05-08 14:53:31 +0900
committerGitHub <noreply@github.com>2023-05-08 14:53:31 +0900
commit864b4171de82772323ab97d1fd9a9dbfcf53c002 (patch)
tree29f3ce195fbd0b8908cf555a544e8e4d4145515b /tests/indent
parentUpdate parsers: astro, c, haskell, t32 (#4769) (diff)
downloadnvim-treesitter-864b4171de82772323ab97d1fd9a9dbfcf53c002.tar
nvim-treesitter-864b4171de82772323ab97d1fd9a9dbfcf53c002.tar.gz
nvim-treesitter-864b4171de82772323ab97d1fd9a9dbfcf53c002.tar.bz2
nvim-treesitter-864b4171de82772323ab97d1fd9a9dbfcf53c002.tar.lz
nvim-treesitter-864b4171de82772323ab97d1fd9a9dbfcf53c002.tar.xz
nvim-treesitter-864b4171de82772323ab97d1fd9a9dbfcf53c002.tar.zst
nvim-treesitter-864b4171de82772323ab97d1fd9a9dbfcf53c002.zip
feat: add swift indents (#4756)
Diffstat (limited to 'tests/indent')
-rw-r--r--tests/indent/swift/declarations.swift51
-rw-r--r--tests/indent/swift/expressions.swift17
-rw-r--r--tests/indent/swift/statements.swift34
-rw-r--r--tests/indent/swift_spec.lua21
4 files changed, 123 insertions, 0 deletions
diff --git a/tests/indent/swift/declarations.swift b/tests/indent/swift/declarations.swift
new file mode 100644
index 000000000..a6f576ef2
--- /dev/null
+++ b/tests/indent/swift/declarations.swift
@@ -0,0 +1,51 @@
+@wrapper
+@modifier(
+ *
+)
+class EquilateralTriangle: NamedShape {
+ var sideLength: Double = 0.0
+
+ @attr
+ init(
+ sideLength: Double,
+ name: String
+ ) {
+ self.sideLength = sideLength
+ }
+
+ var perimeter: Double {
+ willSet {
+ }
+ }
+
+ @funcattr
+ override func simpleDescription(a: int, b: int) -> String {
+ return "An equilateral triangle with sides of length \(sideLength)."
+ }
+}
+
+@attr
+protocol ExampleProtocol {
+ var simpleDescription: String { get }
+ mutating func adjust()
+}
+
+@available(*)
+func test() {
+
+}
+
+@attr(*)
+typealias Foo = Bar
+
+@attr
+struct Foo<
+ Bar
+> {
+ @Provider
+ var test = 1
+
+ subscript(index: Int) -> Int {
+ var foo = 2
+ }
+}
diff --git a/tests/indent/swift/expressions.swift b/tests/indent/swift/expressions.swift
new file mode 100644
index 000000000..4f7292a69
--- /dev/null
+++ b/tests/indent/swift/expressions.swift
@@ -0,0 +1,17 @@
+func Test() {
+ (1 + 2)
+
+ [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ].split()
+
+ let x = [
+ 1: 2,
+ 3: 4,
+ ]
+
+}
diff --git a/tests/indent/swift/statements.swift b/tests/indent/swift/statements.swift
new file mode 100644
index 000000000..df6e46c94
--- /dev/null
+++ b/tests/indent/swift/statements.swift
@@ -0,0 +1,34 @@
+func Test() {
+ if true {
+ return
+ } else if true {
+ return
+ }
+
+ switch x {
+ case "1":
+ print("x")
+ default:
+ print("y")
+ @unknown default:
+ print("z")
+ }
+
+ for a in b {
+ }
+
+ while true{
+ }
+
+ repeat {
+
+ } while (true)
+
+ guard let name = person["name"] else {
+ return
+ }
+
+ return (
+ x + 1
+ )
+}
diff --git a/tests/indent/swift_spec.lua b/tests/indent/swift_spec.lua
new file mode 100644
index 000000000..6ba0d2cf0
--- /dev/null
+++ b/tests/indent/swift_spec.lua
@@ -0,0 +1,21 @@
+local Runner = require("tests.indent.common").Runner
+
+local run = Runner:new(it, "tests/indent/swift", {
+ tabstop = 2,
+ shiftwidth = 2,
+ softtabstop = 2,
+ expandtab = true,
+})
+
+describe("indent Swift:", function()
+ describe("whole file:", function()
+ run:whole_file(".", {})
+ end)
+ describe("new line:", function()
+ run:new_line("declarations.swift", { on_line = 6, text = "var x = 1", indent = 2 })
+ run:new_line("declarations.swift", { on_line = 12, text = "var textInsideInit = true", indent = 4 })
+ run:new_line("declarations.swift", { on_line = 17, text = "var textInsideWillSet = 1", indent = 6 })
+ run:new_line("declarations.swift", { on_line = 22, text = "var textInsideOverrideFunc", indent = 4 })
+ run:new_line("declarations.swift", { on_line = 28, text = "var InsideProtocol: String { get }", indent = 2 })
+ end)
+end)