2016-12-29 5 views
0

Я использую 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 
+0

Вы можете показать свой swiftlint.yml? Как вы создали свой файл? Белый список, Opt-In? Проверьте наличие пустых строк или если путь установлен в правый файл. Swiftlint.yml - очень хрупкий файл –

+0

Я добавил содержимое файла в исходное сообщение. Однако: поскольку этот проект уже завершен, мне больше не нужно решение, хотя я его еще не нашел. Если вы найдете что-то, что я с удовольствием проведу, если он исправляет ненужные предупреждения. –

ответ

0

Проверьте .swiftlint.yml путь к файлу. Он должен быть добавлен в корневой каталог проекта.