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
Marcelo Fabri
04b2510926
FunctionBodyLengthRule should not count comment lines
2016-01-14 20:24:47 -08:00
JP Simard
78ec5244f7
combine guards in rebuildAllDeclarationsByType
2016-01-13 16:54:30 -08:00
JP Simard
12c510c605
don't parse class declarations in rebuildAllDeclarationsByType
...
because this is only used in the missing docs rule which handles class
declarations by checking the "override" keyword
2016-01-13 16:44:14 -08:00
JP Simard
270fa90f3a
make File.allDeclarationsByType lazier
2016-01-13 16:41:09 -08:00
JP Simard
a5eb7c64fb
[MissingDocsRule] skip inherited members when checking for missing docs
2016-01-13 16:41:08 -08:00
JP Simard
4c52163a70
add rule to encourage checking isEmpty over comparing count to zero
2016-01-13 15:41:25 -08:00
JP Simard
e13907ead3
fix infinite regex search & 'where' false positive in ConditionalBindingCascadeRule
2016-01-12 18:35:31 -08:00
JP Simard
7268d373cc
minor tweaks from #314
2016-01-12 11:41:33 -08:00
Scott Hoyt
647371517e
Extracted arrayOf to Array extension and used to simplify VariableNameMinLengthRule.init?(config:).
2016-01-11 13:10:17 -08:00