gpt4 book ai didi

swiftlint - 要求多行参数和自变量在左括号后另起一行

转载 作者:行者123 更新时间:2023-12-05 04:28:37 24 4
gpt4 key购买 nike

我正在为一个项目配置 SwiftLint,我想强制执行的标准之一是:当一个函数被声明或调用时,它的参数或参数被分成多行,那么第一个参数应该始终在函数名称之后。

换句话说,它应该总是看起来像这样:

func foo(
bar: Int,
baz: Int
...

foo(
bar: 0,
baz: 1

并且从不这样:

func foo(bar: Int
baz: Int
...

foo(bar: 0,
baz: 1
...

我在预定义的规则中寻找这样的规则,但找不到。我真的希望我只是错过了它,因为这似乎是一个可以很容易地自动应用 --fix 的规则。

如果不存在这样的规则,我想创建自定义规则不会太难,但是(据我所知)将其设置为自动应用是不可能的。还是我错了?

最佳答案

回答我自己的问题:

  1. 不,这条规则似乎不受开箱即用的支持。似乎存在的最接近的是 multiline_parameters ,这对我想考虑违规的代码段非常满意
  2. 不,SwiftLint doesn't support autocorrecting custom rules
  3. 我的自定义规则仍然需要很多爱,但这是我到目前为止所得到的,至少似乎不会触发误报:
# Triggered when a multi-line parameter or argument list starts on the same line as the opening bracket
# func foo(x: Int,
# y: Int...
# ---OR---
# foo(x: 1,
# y: 2...
multi_line_args_start_on_same_line:
name: "Multi-line args format"
message: "Multi-line arguments or parameters should start on a new line"
included: ".*\\.swift"
# Line-by-line:
# - start of function with opening bracket; e.g. `foo(`
# - A parameter name, then a colon, and then whitespace; e.g. `x: `
# - A parameter value or type, followed by a comma and newline,
# e.g. `Int,\n` or `10,\n`
# - Anything, to account for subsequent parameters or args
# - A closing bracket at the end
regex: "\
[\\w\\d]+\\(\
[\\w\\d]+:\\s*\
[\\w\\d]+,\\n\
.*\
\\)$"
severity: error

关于swiftlint - 要求多行参数和自变量在左括号后另起一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72557780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com