* Added 'file_name_no_space' rule
* Removed unused var, and added to changelog
* Remove custom suffix from 'file-name-no-space' rule
* Fixed LinuxMain
* Switched to use a CharacterSet over Regex
* Add expiring todos rule
* Fix default dateFormat
* Fix date regex to handle 2-4 at beginning/end of string
* Clean up/improve clarity
* Add tests for ExpiringTodoRule
* Add output from make sourcery
* Add output from make sourcery
* Update documentation
* Enable updating of all configuration properties
* Add back Foundation import
* Add changelog entry
* Add 2 spaces after changelog entry
* Add return for legacy swift compatibility
* Add unwrapping to switch statement
* Use disable:next
* Add default values to severity config init; Add public delimiter init
* Add tests for various custom configurations
* Remove unused funcs
* Add extra tests to LinuxMain file
* Update File type -> SwiftLintFile
* Move Changelog entry
* Shorten changelog entry line length
* Fix changelog
* Add Mark rule for triple slash Mark comments
* Move changelog entry to appropriate section
* Re-add Package.resolved
* Fix trailing comma
* Rebuild Rules.md using Xcode 10.3
* Combine two regexes into one
This PR adds a new `unused_declaration` analyzer rule to lint for unused declarations.
By default, detects unused `fileprivate`, `private` and `internal` declarations.
Configure the rule with `include_public_and_open: true` to also detect unused `public` and `open` declarations.
Completely remove the `unused_private_declaration` rule.
This is built on the work enabling collecting rule infrastructure in https://github.com/realm/SwiftLint/pull/2714.
* [reduce_boolean] Implement rule
* [reduce_boolean] Improve reason text
* [reduce_boolean] Fix new violations
* [reduce_boolean] Add CHANGELOG.md entry
* [reduce_boolean] Shorten rule name
* [reduce_boolean] Use regular map instead of compactMap
* [reduce_boolean] Match only possible syntax kinds
Classes are required to have a deinit method.
This is a style to help debugging memory issues, when it is common to want to set a breakpoint at the point of deallocation. Most classes don't have a deinit, so the developer ends up having to quit, add a deinit and rebuild to proceed. If all classes have a deinit, debugging is much smoother.
Ref: https://github.com/realm/SwiftLint/issues/2620
* Add VerticalWhitespaceOpening/ClosingBraces rules with description
* Implement validate, correct & add rules to lists
* Fix minor issues & update docs
* Fix copy & paste issue
* Improve autocorrection + Cleanup triggering examples
* Update changelog with new rule entries
* Add more validation examples
* [CHANGELOG.md] Mark new rules as opt-in
* Point to exact location of violation + update tests
* Make rules severity configurable
* Fix issues after rebasing
* Fix issue with CHANGELOG.md
* Add more violating examples, improve pattern to catch more cases
* Move changelog entries to new version
* Fix issues after rebase
* Move Changelog entry to current master
* Fix failing tests
* Fixes after refactoring
* Fix changelog entry position
* Make range unicode-safe (as suggested by @jpsim)
* Share duplicate Dictionary extension code
* Add new multiline_literal_brackets rule with examples
* Implement rule
* Add changelog entry
* Fix CHANGELOG and rule name
* Fix tests + Update stuff after rebasing
* Add more examples & fix whitespace issue
* Address feedback from @ornithocoder
* Add multiline rules for arguments and parameters
* Fix false positives in rule multiline_parameters_brackets
* Fix false positive for trailing closures in multiline_arguments_brackets
* Add nested examples to rule multiline_arguments_brackets
* Fix more false positives in multiline_arguments_brackets rule
* Use guard where appropriate instead of if
* Update generated artifacts after rebase
* Add CHANGELOG entry for all three new rules
* Move changelog entries to new version
* Fix changelog entries position
* Move new rules to correct subfolder
* Update Rules.md file contents
* Fixup changelog
* Refactor rules