mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-13 17:00:09 -04:00
feat: add swift indents (#4756)
This commit is contained in:
parent
b231afbad1
commit
864b4171de
5 changed files with 210 additions and 0 deletions
51
tests/indent/swift/declarations.swift
Normal file
51
tests/indent/swift/declarations.swift
Normal file
|
|
@ -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
|
||||
}
|
||||
}
|
||||
17
tests/indent/swift/expressions.swift
Normal file
17
tests/indent/swift/expressions.swift
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
func Test() {
|
||||
(1 + 2)
|
||||
|
||||
[
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5
|
||||
].split()
|
||||
|
||||
let x = [
|
||||
1: 2,
|
||||
3: 4,
|
||||
]
|
||||
|
||||
}
|
||||
34
tests/indent/swift/statements.swift
Normal file
34
tests/indent/swift/statements.swift
Normal file
|
|
@ -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
|
||||
)
|
||||
}
|
||||
21
tests/indent/swift_spec.lua
Normal file
21
tests/indent/swift_spec.lua
Normal file
|
|
@ -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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue