Я использую SwiftLint в фазе пользовательских сборок в Xcode:SwiftLint не признает изменения .swiftlint.yml
if which swiftlint >/dev/null; then
swiftlint autocorrect --format
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
Xcode должен признать .swiftlint.yml в моей папке проекта по прошлому месяц с тех пор, как я создал его, потому что он предупредил меня о настраиваемых правилах, которые я добавил. Теперь я удалил два пользовательских правила из yml-файла, но Xcode продолжает предупреждать меня об этом.
Я попытался следующие вещи, и я из подсказок, что попробовать:
- Удаление и установка Swiftlint (с помощью Homebrew)
- Добавление удаленных имен правил к
disabled_rules
в .swiftlint.yml - Удаление .swiftlint.yml и добавить его снова
единственный способ решения проблемы я мог придумать добавляет строку // swiftlint:disable <rule1> <rule2> <rule3>
к каждому файлу, но это не может считаться реальным решением, поэтому на данный момент я прокомментировал swiftlint в фазе сборки Xcode. Любые предложения, высоко ценятся ...
EDIT: содержание swiftlint.yml
disabled_rules: # rule identifiers to exclude from running
- colon # exaclty one space after the : >>> let abc: Void\n
- todo # TODO can be written in the code but should be linked to a ticket on JIRA.
- nesting # func nesting max 1 level
- weak_delegate
- empty_parentheses_with_trailing_closure
- empty_commented_line
- missing_brackets_unwrap
excluded: # paths to ignore during linting. overridden by `included`.
- Carthage
- Pods
- External
- Submodules
# rule parameters
cyclomatic_complexity:
- 20 #warning
- 35 #error
file_length:
- 600 #warning
- 800 #error
function_body_length:
- 40 #warning
- 80 #error
line_length:
- 300 #warning
- 350 #error
type_body_length:
- 400 #warning
- 500 #error
variable_name:
min_length: 2 #warning
max_length: #warning or error
warning: 40
error: 50
opt_in_rules:
# - missing_docs
- force_unwrapping
- control_statement
- private_outlet
- vertical_whitespace
custom_rules:
extra_whitespace:
name: "Extra whitespaces"
regex: "([a-zA-Z0-9=?.\(\),><!'\"][ ]{2,}[a-zA-Z0-9?.\(\),><!'\"])"
message: "Remove extra whitespaces"
severity: warning
comments_space:
name: "Space After Comment"
regex: "(^ *//\w+)"
message: "There should be a space after //"
severity: warning
empty_first_line:
name: "Empty First Line"
regex: "(^[ a-zA-Z ]*(?:protocol|extension|class|struct) (?!(?:var|let))[ a-zA-Z:]*\{\n *\S+)"
message: "There should be an empty line after a declaration"
severity: warning
empty_line_after_guard:
name: "Empty Line After Guard"
regex: "(^ *guard[ a-zA-Z0-9=?.\(\),><!]*\{[ a-zA-Z0-9=?.\(\),><!]*\}\n *(?!(?:return|guard))\S+)"
message: "There should be an empty line after a guard"
severity: warning
empty_line_after_super:
name: "Empty Line After Super"
regex: "(^ *super\.[ a-zA-Z0-9=?.\(\)\{\}:,><!]*\n *(?!(?:\}|return))\S+)"
message: "There should be an empty line after super"
severity: warning
multiple_empty_lines:
name: "Multiple Empty Lines"
regex: "((?:\s*\n){3,})"
message: "There are too many empty lines"
severity: warning
unnecessary_leading_void_in:
name: "Unnecessary -> Void in at the end of the line"
regex: "(-> (Void|\(\)) in$)"
message: "Unnecessary '-> Void in' at the end of the line. Use only 'in'"
severity: warning
unnecessary_type:
name: "Unnecessary Type"
regex: "(?sm)[ \ta-zA-Z0-9]?(?:let|var){1} [ \ta-zA-Z0-9]+?:[ \t]+?([a-zA-Z0-9]+?)[\t ]+?=[\t ]?\1"
message: "Type Definition Not Needed"
severity: warning
empty_closure_params:
name: "Empty closure params"
regex: "\{ (\(\) -> Void in)$"
message: "`() -> Void in` should be avoided"
severity: warning
invalid_mark_format:
name: "Invalid MARK Format"
regex: "(?m-s)(\/\/[\s]*?MARK(?!(\:[\s]{1}\-[\s]{1}){1}))"
message: "Use format: MARK: - Your Info"
severity: warning
Вы можете показать свой swiftlint.yml? Как вы создали свой файл? Белый список, Opt-In? Проверьте наличие пустых строк или если путь установлен в правый файл. Swiftlint.yml - очень хрупкий файл –
Я добавил содержимое файла в исходное сообщение. Однако: поскольку этот проект уже завершен, мне больше не нужно решение, хотя я его еще не нашел. Если вы найдете что-то, что я с удовольствием проведу, если он исправляет ненужные предупреждения. –