使用 SwiftLint 切换大小写格式问题

问题描述 投票:0回答:3

当我执行 Cntrl + i 时,我的 switch case 会自动格式化,如下所示

switch someBool {
    ↓case true:
        print("success")
    ↓case false:
        print("failed")
}

但它会抛出一个绒毛警告

Switch and Case Statement Alignment Violation: Case statements should vertically align with their enclosing switch statement. (switch_case_alignment)

我已经手动格式化如下

switch someBool {
case true:
    print('red')
case false:
    print('blue')
}

但是一旦我这样做,这就会改变

Cntrl+I

欢迎任何建议。谢谢你。

swift switch-statement swiftlint
3个回答
14
投票

您可以使用以下复选框在 Xcode 上调整该设置。我认为默认情况下它是未选中的,这应该符合 SwiftLint 的默认规则。


0
投票

当您遇到 SwiftLint 规则违规时,您可以随时访问此页面以获取更多信息:https://realm.github.io/SwiftLint/switch_case_alignment.html

这向您展示了如何修复它。如果您认为无法轻松修复它,您可以设置豁免以告诉 SwiftLint 忽略。

因此,您只需将此注释放在 switch 语句上方的行中即可:

// swiftlint:disable switch_case_alignment

0
投票

对于使用表达式遇到此问题的人来说,这是 swiftlint 的已知问题

// This triggers a violation:
let color: UIColor = switch state {
case [.highlighted]:
    .gray
case .selected, [.selected, .highlighted]:
    .white
case .disabled:
    .lightGray
default:
    .clear
}

撰写本文时唯一的解决方法是禁用 lint 检查,如 另一个答案中所述

© www.soinside.com 2019 - 2024. All rights reserved.