在运行swiftlint
版本0.24.0时,会报告错误。运行autocorrect
表示文件已被更正。然而,在随后的swiftlint
运行中,没有进行任何修改。
请参阅对两个文件Player.swift
和Prize.swift
进行lint和更正的尝试。
MacBook-Pro-5: Developer$ swiftlint
Loading configuration from '.swiftlint.yml'
Linting Swift files in current working directory
Linting 'Prize.swift' (1/2)
Linting 'Player.swift' (2/2)
Player.swift:26:19: warning: Operator Function Whitespace Violation: Operators should be surrounded by a single whitespace when defining them. (operator_whitespace)
Player.swift:27: warning: Line Length Violation: Line should be 120 characters or less: currently 131 characters (line_length)
Player.swift:39: warning: Line Length Violation: Line should be 120 characters or less: currently 147 characters (line_length)
Prize.swift:44:34: warning: Colon Violation: Colons should be next to the identifier when specifying a type and next to the key in dictionary literals. (colon)
Prize.swift:44: error: Line Length Violation: Line should be 120 characters or less: currently 210 characters (line_length)
Done linting! Found 5 violations, 1 serious in 2 files.
MacBook-Pro-5: Developer$ swiftlint autocorrect
Loading configuration from '.swiftlint.yml'
Correcting Swift files in current working directory
Correcting 'Prize.swift' (1/2)
Correcting 'Player.swift' (2/2)
Done correcting 2 files!
MacBook-Pro-5: Developer$ swiftlint
Loading configuration from '.swiftlint.yml'
Linting Swift files in current working directory
Linting 'Prize.swift' (1/2)
Linting 'Player.swift' (2/2)
Prize.swift:44:34: warning: Colon Violation: Colons should be next to the identifier when specifying a type and next to the key in dictionary literals. (colon)
Prize.swift:44: error: Line Length Violation: Line should be 120 characters or less: currently 210 characters (line_length)
Player.swift:26:19: warning: Operator Function Whitespace Violation: Operators should be surrounded by a single whitespace when defining them. (operator_whitespace)
Player.swift:27: warning: Line Length Violation: Line should be 120 characters or less: currently 131 characters (line_length)
Player.swift:39: warning: Line Length Violation: Line should be 120 characters or less: currently 147 characters (line_length)
Done linting! Found 5 violations, 1 serious in 2 files.
MacBook-Pro-5: Developer$
这是另一次运行,但这次有一个文件
Prize.swift
只包含一个可纠正的冲突。同样,autocorrect
不会修改:MacBook-Pro-5:P Developer$ swiftlint
Linting Swift files in current working directory
Linting 'Prize.swift' (1/2)
Linting 'Player.swift' (2/2)
PPrize.swift:44:34: warning: Colon Violation: Colons should be next to the identifier when specifying a type and next to the key in dictionary literals. (colon)
Done linting! Found 1 violation, 0 serious in 2 files.
MacBook-Pro-5:P Developer$ swiftlint autocorrect
Correcting Swift files in current working directory
Correcting 'Prize.swift' (1/2)
Correcting 'Player.swift' (2/2)
Done correcting 2 files!
MacBook-Pro-5:P Developer$ swiftlint
Linting Swift files in current working directory
Linting 'Prize.swift' (1/2)
Linting 'Player.swift' (2/2)
PPrize.swift:44:34: warning: Colon Violation: Colons should be next to the identifier when specifying a type and next to the key in dictionary literals. (colon)
Done linting! Found 1 violation, 0 serious in 2 files.
MacBook-Pro-5:P Developer$
请注意,
.swiftlint.yml
文件的存在与否与此无关。缩写-即,仅显示相关规则-从
swiftlint rules
输出如下所示。注意,在这三种违规行为中,colon
绝对是可以纠正的。MacBook-Pro-5: Developer$ swiftlint rules
+------------------------------------------+--------+-------------+------------------------+-------------+---------------------------------------------------------------------------------------------------------------------------+
| identifier | opt-in | correctable | enabled in your config | kind | configuration |
+------------------------------------------+--------+-------------+------------------------+-------------+---------------------------------------------------------------------------------------------------------------------------+
| colon | no | yes | yes | style | warning, flexible_right_spacing: false, apply_to_dictionaries: true |
| line_length | no | no | yes | metrics | warning: 120, error: 200, ignores urls: false, ignores function declarations: false, ignores comments: false |
| operator_whitespace | no | no | yes | style | warning |
+------------------------------------------+--------+-------------+------------------------+-------------+---------------------------------------------------------------------------------------------------------------------------+
关于
swiftlint autocorrect
如何成功运行有什么想法吗?我可能缺少一些明显的配置或参数吗?我咨询过https://github.com/realm/SwiftLint但没有结果。 最佳答案
并非所有的swiftlint规则都是可纠正的,这意味着它们将在您运行swiftlint autocorrect
之后保留。如果运行swiftlint rules
可以看到一个表,其中显示了哪些规则是可以纠正的。
我不知道你用的是什么版本的swiftlint,但我不认为line_length
或operator_whitespace
是可以纠正的。你得自己处理。
关于swift - Swiftlint自动更正不会修改文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48189186/