Commit Graph

99 Commits

Author SHA1 Message Date
JP Simard c66c5c8df0 formatting fixes
found running `swiftlint autocorrect --format`
2016-05-29 14:58:28 -07:00
Craig Siemens c3a5e33a59 Add autocorrect for ReturnArrowWhitespaceRule 2016-04-23 23:56:40 -06:00
Norio Nomura 2c19f759b2 Add File.assertHandler for testing
Because XCTest does not have functions that expecting assert happens.
That will be used only when sourcekitd failed, so performance regression by this is ignorable.
2016-04-13 18:40:25 +09:00
Norio Nomura e4a161132e Change File.sourcekitdFailed to settable and internal
settable is for testing.
2016-04-13 18:40:25 +09:00
Norio Nomura 43f75642f8 Change Cache<T> to working for file without path 2016-04-13 18:40:25 +09:00
Norio Nomura 350a85a3cb Request.sendMayThrow() has been changed to Request.failableSend() 2016-04-13 18:40:25 +09:00
Norio Nomura 3ae3bfef71 Add early returns by checking File.sourcekitdFailed 2016-04-13 18:40:25 +09:00
Norio Nomura b0cda17c4c Move calling queueForRebuild.append(structure) to structureCache's factory closure
Because Swift does not allow `as? Structure?`.
2016-04-13 18:40:25 +09:00
Norio Nomura d92b2d6037 Use Request.sendMayThrow() in SourceKittenFramework
For gaining advantage of using `sourcekitd_set_notification_handler()`,
we need to vacate main thread to `dispatch_main()`.
2016-04-13 18:40:25 +09:00
Erik Aigner 2c5b7a61d6 Accept variable names starting with more than one capital letter
The rule was modified to allow for names that start with multiple uppercase letters like XMLString or MIMEType.

Closes #566
2016-03-13 12:08:32 +01:00
JP Simard 0979aa3b64 Merge pull request #552 from realm/nn-rewrite-force-unwrapping-rule
Rewrite `ForceUnwrappingRule`
2016-03-09 19:53:44 -08:00
JP Simard 1166b697c2 fix docs typos 2016-03-09 19:43:52 -08:00
Neil Gall 1b4cf0c574 Do not overwrite files whose contents have not changed 2016-03-02 14:23:33 +00:00
Norio Nomura c042258ac3 Add Structure.kindsFor(_:)
That returns array of tupple containing "key.kind" and "byteRange" from Structure that containing the byte offset.
2016-02-21 22:35:56 +09:00
Norio Nomura 7c2c4ac270 Apply workaround for false positive of valid_docs
```
 SwiftLintFrameworkTests.IntegrationTests
  testSwiftLintLints, failed - Documented declarations should be valid.
```
That has been fixed on locally by https://github.com/jpsim/SourceKitten/pull/175
2016-02-19 18:17:20 +09:00
Norio Nomura 67be11ac92 Improve performance of SyntaxMap.tokensIn(_:)
On linting Carthage 0.14, the duration of `SyntaxMap.tokensIn(_:)` reduced from 145ms to 51ms.
2016-02-19 17:55:44 +09:00
Norio Nomura 704e7bde1d Add SyntaxMap.tokensIn(_:)
That returns array of SyntaxTokens intersecting with byte range.
2016-02-19 17:30:54 +09:00
Norio Nomura be8f2ce63d Remove surplus map calls in rangesAndTokensMatching(_:) 2016-02-17 11:11:47 +09:00
Norio Nomura 669fbf09d0 Refine ForceUnwrappingRule
Fix #535
The duration of `ForceUnwrappingRule` on linting Carthage 0.14 is reduced from 1415ms to 339ms by Instruments.
2016-02-14 23:07:18 +09:00
JP Simard 1866edae77 adjust access control levels for many APIs in SwiftLintFramework
this is done in an effort to stabilize the API for SwiftLint 1.0.
2016-02-10 17:26:06 -08:00
JP Simard 7d0afb190b rename matchAndTokensPattern to rangesAndTokensMatching
also align regex pattern comments & fix indentation
2016-02-10 15:42:07 -08:00
Norio Nomura 83c008507b Improve performance of ColonRule
The duration of `ColonRule` on linting Carthage 0.13 is reduced from 1673ms to 515ms by Instruments.
2016-02-10 15:16:21 -08:00
Norio Nomura 94fabdd11d Add fflush(stdout) before fputs(…, stderr)
`Swift.print()` uses buffered stdout by calling `putchar(_:)`.
This avoids mixing strings from stdout and stderr.

fix #432
2016-02-08 10:26:49 +09:00
Scott Hoyt d17f5b9d92 Modified access level of matchPattern(_, excludingSyntaxKinds:, excludingPattern:) 2016-02-02 17:15:00 -08:00
Scott Hoyt 2a623e926e Eliminated unneeded local variable. 2016-02-02 17:15:00 -08:00
Scott Hoyt ebaa6ec871 Increase performance by early return if matches isEmpty. 2016-02-02 17:15:00 -08:00
Scott Hoyt 0ee04c3fa3 Added exclusion pattern for matching patterns in a file. Added Array and NSRange extensions to support. Used this in OpeningBraceRule. 2016-02-02 17:15:00 -08:00
Norio Nomura cd307cfe5a Improve performance of syntaxKindsByLine
This depends on https://github.com/jpsim/SourceKitten/pull/152
The duration of linting Carthage 0.11 is reduced from 17sec to 16sec
SwiftLint(32b325b) with SourceKitten(0f54e19):
```
swiftlint lint --config ~/.swiftlint-test.yml  17.48s user 1.12s system 83% cpu 22.182 total
```
SwiftLint(this) with SourceKitten(d7f9266):
```
swiftlint lint --config ~/.swiftlint-test.yml  16.05s user 1.05s system 85% cpu 20.051 total
```
2016-01-31 13:47:48 -08:00
Norio Nomura 28ae84600c Add missing calls responseCache.clear() to File.clearCaches() 2016-01-30 15:35:49 +09:00
Norio Nomura 01e3da0dd3 Add File.invalidateCache() that invalidate cache entry of the file 2016-01-30 15:34:22 +09:00
Norio Nomura 97392bdc94 Add NSRegularExpression.cached(pattern:)
All rules enabled linting Carthage 0.11 with this commit:
- Persistent Bytes on termination is reduced from 584.67MB to 556.62MB.
- Duration is reduced from 22sec to 21sec.

Related: #394
2016-01-27 14:33:19 +09:00
Scott Hoyt 2f60e0b8f1 Removed unneeded rule disable. 2016-01-25 10:02:55 -08:00
Scott Hoyt c1406e10ce Added convenience initializer to NSRegularExpression for SwiftLint defaults. 2016-01-25 07:26:31 -08:00
Scott Hoyt b76a3d2ae6 Added tests. 2016-01-25 07:26:31 -08:00
Scott Hoyt 2974a81c54 Switched out SyntaxKind(shortName:) implementation for something simpler. 2016-01-25 07:26:31 -08:00
Scott Hoyt 0a4602b3e6 Refactored matchPattern to expose a method for supplying pre-initialized regex. 2016-01-25 07:26:31 -08:00
Scott Hoyt 615873adc2 Added to SyntaxKind+SwiftLint. RegexConfig now defaults to allKinds(). 2016-01-25 07:26:31 -08:00
Norio Nomura 5933e31228 Optimize File.allDeclarationsByType
It rebuilds `_allDeclarationsByType` incrementally.
By applying this, the duration of linting Carthage is reduced from:
```
swiftlint lint --config ~/.swiftlint-test.yml  23.05s user 1.85s system 82% cpu 30.338 total
```
to:
```
swiftlint lint --config ~/.swiftlint-test.yml  20.09s user 1.34s system 84% cpu 25.329 total
```
2016-01-25 22:45:22 +09:00
JP Simard d5598d4eae add missing imports needed by SPM 2016-01-22 21:09:28 -08:00
JP Simard ace0999154 update SourceKitten to 0.8.0 2016-01-22 19:19:15 -08:00
Marcelo Fabri b17b0f6e7d Minor refactoring 2016-01-21 22:33:21 -08:00
Marcelo Fabri d68161da96 Renaming functions to make clear that whitespace only lines are ignored too 2016-01-21 22:29:38 -08:00
Marcelo Fabri 3416217927 TypeBodyLengthRule should not count comment and whitespace lines 2016-01-21 22:29:38 -08:00
Marcelo Fabri 579872cd30 Handling multiline comments and correcting line count on violation reason 2016-01-14 20:26:20 -08:00
Marcelo Fabri 811cfd152e Clearing syntaxKindsByLinesCache 2016-01-14 20:25:51 -08:00
Marcelo Fabri ea33640296 Caching 2016-01-14 20:25:51 -08:00
Marcelo Fabri 72f401497d Refactoring 2016-01-14 20:25:51 -08:00
Marcelo Fabri 08ad3d333b Fix comparision when startLine or endLine is nil 2016-01-14 20:24:47 -08:00
Marcelo Fabri 07c076689b Address performance issues 2016-01-14 20:24:47 -08:00
Marcelo Fabri 57cf38a388 Fix identation 2016-01-14 20:24:47 -08:00