Commit Graph

43 Commits

Author SHA1 Message Date
Marcelo Fabri d52eb0c64b Migrate ImplicitReturnRule 2019-01-27 18:40:56 -08:00
Marcelo Fabri 7c5c742d36 Migrate ProtocolPropertyAccessorsOrderRule 2019-01-27 18:39:08 -08:00
Marcelo Fabri 1dbd255c52 Migrate RedundantDiscardableLetRule 2019-01-27 18:38:04 -08:00
Marcelo Fabri d147ed43f4 Migrate VoidReturnRule 2019-01-27 18:35:48 -08:00
Marcelo Fabri b309dfd4ee Migrate TrailingCommaRule 2019-01-27 18:35:42 -08:00
Marcelo Fabri 7b84e2bf66 Extract two common operations to extensions 2019-01-24 21:14:10 -08:00
Marcelo Fabri 2b822e8c6d Fix false positives on trailing_closure with anonymous closures
Fixes #2159
2019-01-18 17:43:54 -08:00
Marcelo Fabri f8dda65637 Add only_single_muted_parameter configuration on `trailing_closure 2019-01-17 22:02:47 -08:00
Ben Staveley-Taylor 09c266613d Implement review changes
Add new nonTriggeringExample for testing, with trailing spaces
2019-01-06 16:21:51 +00:00
Ben Staveley-Taylor de3a24008f Fix false positives on vertical_whitespace_between_cases
Fixes #2538
2019-01-05 16:00:32 +00:00
Marcelo Fabri 506e3086ba Enable last_where on SwiftLint 2018-12-25 18:12:26 -08:00
Timofey Solonin 735567dcb4 Make modifier_order rule autocorrectable (#2521)
* #2353 - Move violating modifiers search to a private function

* #2353 - Add offset and length to the ModifierDescription

* #2353 - Make modifier_oder rule correctable

* #2353 - Add modifier_oder rule correction tests

* #2353 - Upadte the changelog

* #2353 - Add missing Foundation import

* #2353 - Fix linux tests

* Small edits to ModifierOrderRule and changelog entry
2018-12-23 19:53:38 -08:00
JP Simard 0e862ca9c4 Enable vertical whitespace rules in SwiftLint
and fix violations
2018-12-02 14:01:23 -08:00
JP Simard 7afd7ccaf8 Rename cleanedKeysDict() to removingViolationMarkers() 2018-12-02 13:52:41 -08:00
Cihat Gündüz 89c88517e1 Vertical whitespace opening & closing braces (#2291)
* 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
2018-12-02 13:41:50 -08:00
Timofey Solonin efa68177b2 #2435 - Make modifier_order rule rely on an explicit set of rules (#2458)
* #2435 - Adjust modifier_order rule to require explicit modifier order specified to conclude a violation

* #2435 - Move modifier order rule examples to a separate file

* #2435 - Add modifier interference tests

* #2435 - Fix whitespaces

* Minor edits

* Add changelog entry
2018-11-28 15:10:49 -08:00
Cihat Gündüz cf034c9dfb Multiline Brackets (#2302)
* 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
2018-11-28 10:30:36 -08:00
Cihat Gündüz 9d47c3471c Vertical whitespace between cases (#2292) 2018-11-28 08:34:10 -08:00
JP Simard 60afab8085 Style nits 2018-11-27 15:27:52 -08:00
Norio Nomura ea171fbbf2 Add SWIFTLINT_DISABLE_SOURCEKIT environment variable (#2473)
This can be used for avoid "Test::Unit::AssertionFailedError" error in `libxpc.dylib` on calling `sourcekitd_send_request_sync` in sandbox environment.
2018-11-21 17:03:42 -08:00
Marcelo Fabri cf0c7b7b21 Use default Equatable and Hashable implementations 2018-11-19 09:51:12 -08:00
JP Simard 5901d3075f Require Swift 4.2 (#2466)
This bumps the minimum version required to build SwiftLint to 4.2. The primary motivating factor to drop support for Swift 4.0-4.1.x is that SwiftLint now uses CryptoSwift, which requires 4.2.

* Add changelog entry

* Remove --allow-warnings flag from CocoaPods commands

* Update CryptoSwift to 0.13.0

* Migrate to Swift 4.2

* Remove CircleCI tests for Swift < 4.2

* Update English and Chinese README

Korean README doesn't yet have a version table like this.

* Update gems

* Add changelog entry for fixed compiler warnings

* Update CocoaPods to 1.6.0.beta.2

To work around https://github.com/CocoaPods/CocoaPods/issues/7708
2018-11-18 17:32:25 -08:00
Marcelo Fabri 1f121b1ef7 Enable static_operator opt-in rule in SwiftLint 2018-09-16 20:33:28 -07:00
Marcelo Fabri dfb447490e Enable collection_alignment on SwiftLint 2018-09-11 09:31:54 -07:00
Dalton Claybrook b20424426c Add updates based on PR feedback 2018-09-10 23:45:56 -04:00
Dalton Claybrook 9f74749473 Add shared non-triggering examples to the tests 2018-09-10 23:45:56 -04:00
Dalton Claybrook 74f7c1481d Update collection alignment rule name 2018-09-10 23:45:56 -04:00
Dalton Claybrook dfa92dc07d Add bridge to NSString to fix linux issue 2018-09-10 23:45:56 -04:00
Dalton Claybrook 81746c6507 Make collection alignment rule opt-in 2018-09-10 23:45:56 -04:00
Dalton Claybrook 4e27bf9f87 Collection alignment rule is no longer an automatic testable 2018-09-10 23:45:56 -04:00
Dalton Claybrook a71bb4dd48 Add more triggering and non-triggering examples 2018-09-10 23:45:56 -04:00
Dalton Claybrook 0597df5b8c Add support for colon alignment 2018-09-10 23:45:56 -04:00
Dalton Claybrook 31995f916f Clean up collection alignment rule to mimic other alignment rules 2018-09-10 23:45:56 -04:00
Dalton Claybrook d8a043f84b Create CollectionAlignmentConfiguration 2018-09-10 23:45:56 -04:00
Dalton Claybrook 45b0881f1d Add Collection Alignment rule and implement basic left-alignment case 2018-09-10 23:45:56 -04:00
JP Simard 8d734366fb Remove unused private declarations (#2386) 2018-09-03 16:45:02 -07:00
JP Simard dcc85fb0f3 Remove unused imports (#2382) 2018-09-02 14:09:04 -07:00
JP Simard 2bcea4b04d Add ability for SwiftLint to lint files with full type-checked AST awareness (#2379)
* Add LintableFilesVisitor

* Move LintCommand logic into LintOrAnalyzeCommand

to prepare for the upcoming analyze command

* Add AnalyzeCommand (not fully implemented yet in SwiftLintFramework)

* Add analyzerRules configuration member

* Add AnalyzerRule protocol

* Pass compiler arguments to validate/correct

* Add requiresFileOnDisk member to RuleDescription

This will be used by AnalyzerRules because they need a file on disk
to pass in the compiler arguments to SourceKit.

* Exclusively run AnalyzerRules when the Linter has compiler arguments

* Enable testing AnalyzerRules in TestHelpers

* Add ExplicitSelfRule

* Update documentation

* Fix `analyze --autocorrect`

* Improve performance of CompilerArgumentsExtractor

* Fix lint command actually running analyze

* Move File operations in TestHelpers into a private extension

* Add analyzer column to rules command and markdown documentation

* Use a Set literal

* Make AnalyzerRule inherit from OptInRule

* Mention analyzer_rules in readme

* Mention that analyzer rules are slow
2018-09-02 00:13:27 -07:00
Marcelo Fabri 881978ea26 Fix crash on multiline_function_chains rule
Fixes #2360
2018-08-23 21:10:56 -07:00
Marcelo Fabri 32164501e1 Merge pull request #2339 from marcelofabri/multiple_closures_with_trailing_closure-performance
Improve performance of multiple_closures_with_trailing_closure
2018-08-08 09:37:38 -07:00
Marcelo Fabri 5b3145a448 Improve performance of multiple_closures_with_trailing_closure 2018-08-08 08:50:23 -07:00
Marcelo Fabri 30fe00890c Fix comma rule false positives on object literals
Fixes #2345
2018-08-08 08:47:17 -07:00
JP Simard 3961d6482b Organize rules by kind in Xcode project (#2341) 2018-08-05 18:54:05 -07:00