mirror of
https://github.com/nicklockwood/SwiftFormat.git
synced 2026-05-17 10:30:35 +00:00
46 lines
1.3 KiB
Swift
46 lines
1.3 KiB
Swift
//
|
|
// TrailingSpace.swift
|
|
// SwiftFormat
|
|
//
|
|
// Created by Nick Lockwood on 11/24/16.
|
|
// Copyright © 2024 Nick Lockwood. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public extension FormatRule {
|
|
/// Remove trailing space from the end of lines, as it has no semantic
|
|
/// meaning and leads to noise in commits.
|
|
static let trailingSpace = FormatRule(
|
|
help: "Remove trailing space at end of a line.",
|
|
orderAfter: [.wrap, .wrapArguments],
|
|
options: ["trim-whitespace"]
|
|
) { formatter in
|
|
formatter.forEach(.space) { i, _ in
|
|
switch formatter.token(at: i + 1) {
|
|
case nil, .linebreak:
|
|
if formatter.options.truncateBlankLines || formatter.token(at: i - 1)?.isLinebreak == false {
|
|
formatter.removeToken(at: i)
|
|
}
|
|
case .stringBody("") where formatter.options.truncateBlankLines:
|
|
formatter.removeTokens(in: i ... i + 1)
|
|
default:
|
|
break
|
|
}
|
|
}
|
|
} examples: {
|
|
"""
|
|
```diff
|
|
- let foo: Foo␣
|
|
+ let foo: Foo
|
|
- ␣␣␣␣
|
|
+
|
|
- func bar() {␣␣
|
|
+ func bar() {
|
|
␣␣␣␣print("foo")
|
|
}
|
|
```
|
|
"""
|
|
}
|
|
}
|