From 1a2f002ab809b220e41eaf13dca733a3cb329487 Mon Sep 17 00:00:00 2001
From: "swiftlintbot@jpsim.com" The rule list containing all available rules built into SwiftLint. The rule list containing all available rules built into SwiftLint as well as native custom rules.
A value describing an instance of Swift source code that is considered invalid by a SwiftLint rule.
@@ -619,7 +619,8 @@The justification for this violation.
+The justification for this violation. If not specified the rule’s description will + be used.
All Images that provide context should have an accessibility label. Purely decorative images can be hidden from accessibility.
+Images that provide context should have an accessibility label or should be explicitly hidden from accessibility
All views with tap gestures added should include the .isButton accessibility trait. If a tap opens an external link the .isLink trait should be used instead.
+All views with tap gestures added should include the .isButton or the .isLink accessibility traits
Prefer using AnyObject over class for class-only protocols.
Prefer using AnyObject over class for class-only protocols
Prefer using Array(seq) over seq.map { $0 } to convert a sequence into an Array.
Prefer using Array(seq) over seq.map { $0 } to convert a sequence into an Array
Attributes should be on their own lines in functions and types, but on the same line as variables and imports.
+Attributes should be on their own lines in functions and types, but on the same line as variables and imports
Test classes must implement balanced setUp and tearDown methods.
+Test classes must implement balanced setUp and tearDown methods
Prefer the new block based KVO API with keypaths when using Swift 3.2 or later.
+Prefer the new block based KVO API with keypaths when using Swift 3.2 or later
Non-constant variables should not be listed in a closure’s capture list to avoid confusion about closures capturing variables at creation time.
+Non-constant variables should not be listed in a closure’s capture list to avoid confusion about closures capturing variables at creation time
Delegate protocols should be class-only so they can be weakly referenced.
+Delegate protocols should be class-only so they can be weakly referenced
Closing brace with closing parenthesis should not have any whitespaces in the middle.
+Closing brace with closing parenthesis should not have any whitespaces in the middle
Closure bodies should not span too many lines.
+Closure bodies should not span too many lines
Closure parameters should be on the same line as opening brace.
+Closure parameters should be on the same line as opening brace
Closure expressions should have a single space inside each brace.
+Closure expressions should have a single space inside each brace
Colons should be next to the identifier when specifying a type and next to the key in dictionary literals.
+Colons should be next to the identifier when specifying a type and next to the key in dictionary literals
There should be no space before and one after any comma.
+There should be no space before and one after any comma
Prefer at least one space after slashes for comments.
+Prefer at least one space after slashes for comments
Prefer contains over comparing filter(where:).count to 0.
Prefer contains over comparing filter(where:).count to 0
Prefer contains over range(of:) != nil and range(of:) == nil.
Prefer contains over range(of:) != nil and range(of:) == nil
if, for, guard, switch, while, and catch statements shouldn’t unnecessarily wrap their conditionals or arguments in parentheses.
if, for, guard, switch, while, and catch statements shouldn’t unnecessarily wrap their conditionals or arguments in parentheses
Types used for hosting only static members should be implemented as a caseless enum to avoid instantiation.
+Types used for hosting only static members should be implemented as a caseless enum to avoid instantiation
When registering for a notification using a block, the opaque observer that is returned should be stored so it can be removed later.
+When registering for a notification using a block, the opaque observer that is returned should be stored so it can be removed later
Discouraged direct initialization of types that can be harmful.
+Discouraged direct initialization of types that can be harmful
Discourages name cases/static members none, which can conflict with Optional<T>.none.
Enum cases and static members named none are discouraged as they can conflict with Optional<T>.none.
Prefer initializers over object literals.
+Prefer initializers over object literals
Prefer non-optional booleans over optional booleans.
+Prefer non-optional booleans over optional booleans
Prefer empty collection over optional collection.
+Prefer empty collection over optional collection
The rule list containing all available rules built into SwiftLint.
+The rule list containing all available rules built into SwiftLint as well as native custom rules.
A value describing an instance of Swift source code that is considered invalid by a SwiftLint rule.
@@ -619,7 +619,8 @@The justification for this violation.
+The justification for this violation. If not specified the rule’s description will + be used.
All Images that provide context should have an accessibility label. Purely decorative images can be hidden from accessibility.
+Images that provide context should have an accessibility label or should be explicitly hidden from accessibility
All views with tap gestures added should include the .isButton accessibility trait. If a tap opens an external link the .isLink trait should be used instead.
+All views with tap gestures added should include the .isButton or the .isLink accessibility traits
Prefer using AnyObject over class for class-only protocols.
Prefer using AnyObject over class for class-only protocols
Prefer using Array(seq) over seq.map { $0 } to convert a sequence into an Array.
Prefer using Array(seq) over seq.map { $0 } to convert a sequence into an Array
Attributes should be on their own lines in functions and types, but on the same line as variables and imports.
+Attributes should be on their own lines in functions and types, but on the same line as variables and imports
Test classes must implement balanced setUp and tearDown methods.
+Test classes must implement balanced setUp and tearDown methods
Prefer the new block based KVO API with keypaths when using Swift 3.2 or later.
+Prefer the new block based KVO API with keypaths when using Swift 3.2 or later
Non-constant variables should not be listed in a closure’s capture list to avoid confusion about closures capturing variables at creation time.
+Non-constant variables should not be listed in a closure’s capture list to avoid confusion about closures capturing variables at creation time
Delegate protocols should be class-only so they can be weakly referenced.
+Delegate protocols should be class-only so they can be weakly referenced
Closing brace with closing parenthesis should not have any whitespaces in the middle.
+Closing brace with closing parenthesis should not have any whitespaces in the middle
Closure bodies should not span too many lines.
+Closure bodies should not span too many lines
Closure parameters should be on the same line as opening brace.
+Closure parameters should be on the same line as opening brace
Closure expressions should have a single space inside each brace.
+Closure expressions should have a single space inside each brace
Colons should be next to the identifier when specifying a type and next to the key in dictionary literals.
+Colons should be next to the identifier when specifying a type and next to the key in dictionary literals
There should be no space before and one after any comma.
+There should be no space before and one after any comma
Prefer at least one space after slashes for comments.
+Prefer at least one space after slashes for comments
Prefer contains over comparing filter(where:).count to 0.
Prefer contains over comparing filter(where:).count to 0
Prefer contains over range(of:) != nil and range(of:) == nil.
Prefer contains over range(of:) != nil and range(of:) == nil
if, for, guard, switch, while, and catch statements shouldn’t unnecessarily wrap their conditionals or arguments in parentheses.
if, for, guard, switch, while, and catch statements shouldn’t unnecessarily wrap their conditionals or arguments in parentheses
Types used for hosting only static members should be implemented as a caseless enum to avoid instantiation.
+Types used for hosting only static members should be implemented as a caseless enum to avoid instantiation
When registering for a notification using a block, the opaque observer that is returned should be stored so it can be removed later.
+When registering for a notification using a block, the opaque observer that is returned should be stored so it can be removed later
Discouraged direct initialization of types that can be harmful.
+Discouraged direct initialization of types that can be harmful
Discourages name cases/static members none, which can conflict with Optional<T>.none.
Enum cases and static members named none are discouraged as they can conflict with Optional<T>.none.
Prefer initializers over object literals.
+Prefer initializers over object literals
Prefer non-optional booleans over optional booleans.
+Prefer non-optional booleans over optional booleans
Prefer empty collection over optional collection.
+Prefer empty collection over optional collection
Enum can’t contain multiple cases with the same name.
+Enum can’t contain multiple cases with the same name
Imports should be unique.
+Imports should be unique
Dictionary literals with duplicated keys will crash in runtime.
+Dictionary literals with duplicated keys will crash at runtime
Avoid using ‘dynamic’ and ‘@inline(__always)’ together.
+Avoid using ‘dynamic’ and ‘@inline(__always)’ together
Prefer checking isEmpty over comparing collection to an empty array or dictionary literal.
Prefer checking isEmpty over comparing collection to an empty array or dictionary literal
Prefer checking isEmpty over comparing count to zero.
Prefer checking isEmpty over comparing count to zero
Arguments can be omitted when matching enums with associated values if they are not used.
+Arguments can be omitted when matching enums with associated values if they are not used
Prefer () -> over Void ->.
Prefer () -> over Void ->
When using trailing closures, empty parentheses should be avoided after the method call.
+When using trailing closures, empty parentheses should be avoided after the method call
Prefer checking isEmpty over comparing string to an empty string literal.
Prefer checking isEmpty over comparing string to an empty string literal
Empty XCTest method should be avoided.
+Empty XCTest method should be avoided
Number of associated values in an enum case should be low
+The number of associated values in an enum case should be low.
All declarations should specify Access Control Level keywords explicitly.
+All declarations should specify Access Control Level keywords explicitly
Enums should be explicitly assigned their raw values.
+Enums should be explicitly assigned their raw values
Explicitly calling .init() should be avoided.
+Explicitly calling .init() should be avoided
Instance variables and functions should be explicitly accessed with ‘self.’.
+Instance variables and functions should be explicitly accessed with ‘self.’
Top-level declarations should specify Access Control Level keywords explicitly.
+Top-level declarations should specify Access Control Level keywords explicitly
Fallthrough should be avoided.
+Fallthrough should be avoided
A fatalError call should have a message.
+A fatalError call should have a message
File name should match a type or extension declared in the file (if any).
+File name should match a type or extension declared in the file (if any)
File name should not contain any whitespace.
+File name should not contain any whitespace
Prefer using .first(where:) over .filter { }.first in collections.
Prefer using .first(where:) over .filter { }.first in collections
Prefer flatMap over map followed by reduce([], +).
Prefer flatMap over map followed by reduce([], +)
where clauses are preferred over a single if inside a for.
where clauses are preferred over a single if inside a for
Force casts should be avoided.
+Force casts should be avoided
Force tries should be avoided.
+Force tries should be avoided
Force unwrapping should be avoided.
+Force unwrapping should be avoided
Functions bodies should not span too many lines.
+Function bodies should not span too many lines
Prefer to locate parameters with defaults toward the end of the parameter list.
+Prefer to locate parameters with defaults toward the end of the parameter list
Extensions shouldn’t add @IBInspectable properties.
+Extensions shouldn’t add @IBInspectable properties
Comparing two identical operands is likely a mistake.
+Comparing two identical operands is likely a mistake
Prefer implicit returns in closures, functions and getters.
+Prefer implicit returns in closures, functions and getters
Implicitly unwrapped optionals should be avoided when possible.
+Implicitly unwrapped optionals should be avoided when possible
Identifiers should use inclusive language that avoids discrimination against groups of people based on race, gender, or socioeconomic status
+Identifiers should use inclusive language that avoids discrimination against groups of people based on race, gender, or socioeconomic status.
If defer is at the end of its parent scope, it will be executed right where it is anyway.
+If defer is at the end of its parent scope, it will be executed right where it is anyway
Prefer using Set.isDisjoint(with:) over Set.intersection(_:).isEmpty.
Prefer using Set.isDisjoint(with:) over Set.intersection(_:).isEmpty
Discouraged explicit usage of the default separator.
+Discouraged explicit usage of the default separator
Prefer using .last(where:) over .filter { }.last in collections.
Prefer using .last(where:) over .filter { }.last in collections
Files should not contain leading whitespace.
+Files should not contain leading whitespace
Struct-scoped constants are preferred over legacy global constants.
+Struct-scoped constants are preferred over legacy global constants
Swift constructors are preferred over legacy convenience functions.
+Swift constructors are preferred over legacy convenience functions
Prefer using the isMultiple(of:) function instead of using the remainder operator (%).
Prefer using the isMultiple(of:) function instead of using the remainder operator (%)
Prefer using type.random(in:) over legacy functions.
Prefer using type.random(in:) over legacy functions
Let and var should be separated from other statements by a blank line.
+Variable declarations should be separated from other statements by a blank line
Array and dictionary literal end should have the same indentation as the line that started it.
+Array and dictionary literal end should have the same indentation as the line that started it
Doc comments shouldn’t be used in local scopes. Use regular comments.
+Prefer regular comments over doc comments in local scopes
Arguments should be either on the same line, or one per line.
+Arguments should be either on the same line, or one per line
Multiline arguments should have their surrounding brackets in a new line.
+Multiline arguments should have their surrounding brackets in a new line
Chained function calls should be either on the same line, or one per line.
+Chained function calls should be either on the same line, or one per line
Multiline literals should have their surrounding brackets in a new line.
+Multiline literals should have their surrounding brackets in a new line
Functions and methods parameters should be either on the same line, or one per line.
+Functions and methods parameters should be either on the same line, or one per line
Multiline parameters should have their surrounding brackets in a new line.
+Multiline parameters should have their surrounding brackets in a new line
Trailing closure syntax should not be used when passing more than one closure argument.
+Trailing closure syntax should not be used when passing more than one closure argument
Prefer Nimble operator overloads over free matcher functions.
+Prefer Nimble operator overloads over free matcher functions
Fallthroughs can only be used if the case contains at least one other statement.
Fallthroughs can only be used if the case contains at least one other statement
Extensions shouldn’t be used to group code within the same source file.
+Extensions shouldn’t be used to group code within the same source file
Magic numbers should be replaced by named constants.
+Magic numbers should be replaced by named constants
Don’t add a space between the method name and the parentheses.
+Don’t add a space between the method name and the parentheses
An object should only remove itself as an observer in deinit.
An object should only remove itself as an observer in deinit
Passing NSNumber.init or NSDecimalNumber.init as a function reference is dangerous as it can cause the wrong initializer to be used, causing crashes. Use .init(value:) instead.
Passing NSNumber.init or NSDecimalNumber.init as a function reference is dangerous as it can cause the wrong initializer to be used, causing crashes; use .init(value:) instead
Static strings should be used as key/comment in NSLocalizedString in order for genstrings to work.
+Static strings should be used as key/comment in NSLocalizedString in order for genstrings to work
Calls to NSLocalizedString should specify the bundle which contains the strings file.
+Calls to NSLocalizedString should specify the bundle which contains the strings file
NSObject subclasses should implement isEqual instead of ==.
+NSObject subclasses should implement isEqual instead of ==
Underscores should be used as thousand separator in large decimal numbers.
+Underscores should be used as thousand separator in large decimal numbers
Prefer object literals over image and color inits.
+Prefer object literals over image and color inits
Opening braces should be preceded by a single space and on the same line as the declaration.
+Opening braces should be preceded by a single space and on the same line as the declaration
Operators should be surrounded by a single whitespace when they are being used.
+Operators should be surrounded by a single whitespace when they are being used
Operators should be surrounded by a single whitespace when defining them.
+Operators should be surrounded by a single whitespace when defining them
Matching an enum case against an optional enum without ‘?’ is supported on Swift 5.1 and above.
+Matching an enum case against an optional enum without ‘?’ is supported on Swift 5.1 and above
A doc comment should be attached to a declaration.
+A doc comment should be attached to a declaration
Some overridden methods should always call super
+Some overridden methods should always call super.
Extensions shouldn’t override declarations.
+Extensions shouldn’t override declarations
Combine multiple pattern matching bindings by moving keywords out of tuples.
+Combine multiple pattern matching bindings by moving keywords out of tuples
Periods should not be followed by more than one space.
+Periods should not be followed by more than one space
Prefer Nimble matchers over XCTAssert functions.
+Prefer Nimble matchers over XCTAssert functions
Use Self to refer to the surrounding type name.
Use Self to refer to the surrounding type name
Prefer Self over type(of: self) when accessing properties or calling methods.
Prefer Self over type(of: self) when accessing properties or calling methods
Top-level constants should be prefixed by k.
Top-level constants should be prefixed by k
IBActions should be private.
+IBActions should be private
IBOutlets should be private to avoid leaking UIKit to higher layers.
+IBOutlets should be private to avoid leaking UIKit to higher layers
Prefer private over fileprivate declarations.
Prefer private over fileprivate declarations
Combine Subject should be private.
+Combine Subject should be private
Unit tests marked private are silently skipped.
+Unit tests marked private are silently skipped
Creating views using Interface Builder should be avoided.
+Creating views using Interface Builder should be avoided
Some methods should not call super
+Some methods should not call super.
When declaring properties in protocols, the order of accessors should be get set.
When declaring properties in protocols, the order of accessors should be get set
Discouraged focused test. Other tests won’t run while this one is focused.
+Non-focused tests won’t run as long as this test is focused
Discouraged pending test. This test won’t run while it’s marked as pending.
+This test won’t run as long as it’s marked pending
Camel cased cases of Codable String enums should have raw value.
+Camel cased cases of Codable String enums should have raw values
Prefer using .allSatisfy() or .contains() over reduce(true) or reduce(false)
Prefer using .allSatisfy() or .contains() over reduce(true) or reduce(false).
Prefer _ = foo() over let _ = foo() when discarding a result from a function.
Prefer _ = foo() over let _ = foo() when discarding a result from a function
Objective-C attribute (@objc) is redundant in declaration.
+Objective-C attribute (@objc) is redundant in declaration
Initializing an optional variable with nil is redundant.
+Initializing an optional variable with nil is redundant
Property setter access level shouldn’t be explicit if it’s the same as the variable access level.
+Property setter access level shouldn’t be explicit if it’s the same as the variable access level
String enum values can be omitted when they are equal to the enumcase name.
+String enum values can be omitted when they are equal to the enumcase name
Returning Void in a function declaration is redundant.
+Returning Void in a function declaration is redundant
Classes should have an explicit deinit method.
+Classes should have an explicit deinit method
Return arrow and return type should be separated by a single space or on a separate line.
+Return arrow and return type should be separated by a single space or on a separate line
Returning values from Void functions should be avoided.
+Returning values from Void functions should be avoided
The violation’s position.
","parent_name":"ReasonedRuleViolation"},"Structs/ReasonedRuleViolation.html#/s:18SwiftLintFramework21ReasonedRuleViolationV6reasonSSSgvp":{"name":"reason","abstract":"A specific reason for the violation.
","parent_name":"ReasonedRuleViolation"},"Structs/ReasonedRuleViolation.html#/s:18SwiftLintFramework21ReasonedRuleViolationV8severityAA0F8SeverityOSgvp":{"name":"severity","abstract":"The violation’s severity.
","parent_name":"ReasonedRuleViolation"},"Structs/ReasonedRuleViolation.html#/s:18SwiftLintFramework21ReasonedRuleViolationV8position6reason8severityAC0A6Syntax16AbsolutePositionV_SSSgAA0F8SeverityOSgtcfc":{"name":"init(position:reason:severity:)","abstract":"Creates a ReasonedRuleViolation.
Parses the input YAML string as an untyped dictionary.
","parent_name":"YamlParser"},"Structs/Version.html#/s:18SwiftLintFramework7VersionV5valueSSvp":{"name":"value","abstract":"The string value for this version.
","parent_name":"Version"},"Structs/Version.html#/s:18SwiftLintFramework7VersionV7currentACvpZ":{"name":"current","abstract":"The current SwiftLint version.
","parent_name":"Version"},"Structs/SwiftVersion.html#/s:SY8RawValueQa":{"name":"RawValue","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:SY8rawValuexSg03RawB0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV4fiveACvpZ":{"name":"five","abstract":"Swift 5.0.x - https://swift.org/download/#swift-50
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV10fiveDotOneACvpZ":{"name":"fiveDotOne","abstract":"Swift 5.1.x - https://swift.org/download/#swift-51
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV10fiveDotTwoACvpZ":{"name":"fiveDotTwo","abstract":"Swift 5.2.x - https://swift.org/download/#swift-52
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV12fiveDotThreeACvpZ":{"name":"fiveDotThree","abstract":"Swift 5.3.x - https://swift.org/download/#swift-53
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV11fiveDotFourACvpZ":{"name":"fiveDotFour","abstract":"Swift 5.4.x - https://swift.org/download/#swift-54
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV11fiveDotFiveACvpZ":{"name":"fiveDotFive","abstract":"Swift 5.5.x - https://swift.org/download/#swift-55
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV10fiveDotSixACvpZ":{"name":"fiveDotSix","abstract":"Swift 5.6.x - https://swift.org/download/#swift-56
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV12fiveDotSevenACvpZ":{"name":"fiveDotSeven","abstract":"Swift 5.7.x - https://swift.org/download/#swift-57
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV7currentACvpZ":{"name":"current","abstract":"The current detected Swift compiler version, based on the currently accessible SourceKit version.
","parent_name":"SwiftVersion"},"Structs/SwiftLintSyntaxToken.html#/s:18SwiftLintFramework0aB11SyntaxTokenV5value012SourceKittenC00dE0Vvp":{"name":"value","abstract":"The raw SyntaxToken obtained by SourceKitten.
The syntax kind associated with is token.
","parent_name":"SwiftLintSyntaxToken"},"Structs/SwiftLintSyntaxToken.html#/s:18SwiftLintFramework0aB11SyntaxTokenV5valueAC012SourceKittenC00dE0V_tcfc":{"name":"init(value:)","abstract":"Creates a SwiftLintSyntaxToken from the raw SyntaxToken obtained by SourceKitten.
The byte range in a source file for this token.
","parent_name":"SwiftLintSyntaxToken"},"Structs/SwiftLintSyntaxToken.html#/s:18SwiftLintFramework0aB11SyntaxTokenV6offset012SourceKittenC09ByteCountVvp":{"name":"offset","abstract":"The starting byte offset in a source file for this token.
","parent_name":"SwiftLintSyntaxToken"},"Structs/SwiftLintSyntaxToken.html#/s:18SwiftLintFramework0aB11SyntaxTokenV6length012SourceKittenC09ByteCountVvp":{"name":"length","abstract":"The length in bytes for this token.
","parent_name":"SwiftLintSyntaxToken"},"Structs/SwiftLintSyntaxMap.html#/s:18SwiftLintFramework0aB9SyntaxMapV5value012SourceKittenC00dE0Vvp":{"name":"value","abstract":"The raw SyntaxMap obtained by SourceKitten.
The SwiftLint-specific syntax tokens for this syntax map.
","parent_name":"SwiftLintSyntaxMap"},"Structs/SwiftLintSyntaxMap.html#/s:18SwiftLintFramework0aB9SyntaxMapV5valueAC012SourceKittenC00dE0V_tcfc":{"name":"init(value:)","abstract":"Creates a SwiftLintSyntaxMap from the raw SyntaxMap obtained by SourceKitten.
The identifier of the rule that generated this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV15ruleDescriptionSSvp":{"name":"ruleDescription","abstract":"The description of the rule that generated this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV8ruleNameSSvp":{"name":"ruleName","abstract":"The name of the rule that generated this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV8severityAA0E8SeverityOvp":{"name":"severity","abstract":"The severity of this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV8locationAA8LocationVvp":{"name":"location","abstract":"The location of this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV6reasonSSvp":{"name":"reason","abstract":"The justification for this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV11descriptionSSvp":{"name":"description","abstract":"A printable description for this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV15ruleDescription8severity8location6reasonAcA04RuleG0V_AA0E8SeverityOAA8LocationVSSSgtcfc":{"name":"init(ruleDescription:severity:location:reason:)","abstract":"Creates a StyleViolation by specifying its properties directly.
Returns the same violation, but with the severity that is passed in
Returns the same violation, but with the location that is passed in
The severity that should be assigned to the violation of this parameter’s value is met.
","parent_name":"RuleParameter"},"Structs/RuleParameter.html#/s:18SwiftLintFramework13RuleParameterV5valuexvp":{"name":"value","abstract":"The value to configure the rule.
","parent_name":"RuleParameter"},"Structs/RuleParameter.html#/s:18SwiftLintFramework13RuleParameterV8severity5valueACyxGAA17ViolationSeverityO_xtcfc":{"name":"init(severity:value:)","abstract":"Creates a RuleParameter by specifying its properties directly.
The rules contained in this list.
","parent_name":"RuleList"},"Structs/RuleList.html#/s:18SwiftLintFramework8RuleListV5rulesAcA0D0_pXpd_tcfc":{"name":"init(rules:)","abstract":"Creates a RuleList by specifying all its rules.
Creates a RuleList by specifying all its rules.
The rule’s unique identifier, to be used in configuration files and SwiftLint commands.","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV4nameSSvp":{"name":"name","abstract":"
The rule’s human-readable name. Should be short, descriptive and formatted in Title Case. May contain spaces.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV11descriptionSSvp":{"name":"description","abstract":"The rule’s verbose description. Should read as a sentence or short paragraph. Good things to include are an","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV4kindAA0D4KindOvp":{"name":"kind","abstract":"
The RuleKind that best categorizes this rule.
Swift source examples that do not trigger a violation for this rule. Used for documentation purposes to inform","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV18triggeringExamplesSayAA7ExampleVGvp":{"name":"triggeringExamples","abstract":"
Swift source examples that do trigger one or more violations for this rule. Used for documentation purposes to","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV11correctionsSDyAA7ExampleVAFGvp":{"name":"corrections","abstract":"
Pairs of Swift source examples, where keys are examples that trigger violations for this rule, and the values","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV17deprecatedAliasesShySSGvp":{"name":"deprecatedAliases","abstract":"
Any previous iteration of the rule’s identifier that was previously shipped with SwiftLint.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV03minA7VersionAA0aG0Vvp":{"name":"minSwiftVersion","abstract":"The oldest version of the Swift compiler supported by this rule.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV18requiresFileOnDiskSbvp":{"name":"requiresFileOnDisk","abstract":"Whether or not this rule can only be executed on a file physically on-disk. Typically necessary for rules","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV07consoleE0SSvp":{"name":"consoleDescription","abstract":"
The console-printable string for this description.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV14allIdentifiersSaySSGvp":{"name":"allIdentifiers","abstract":"All identifiers that have been used to uniquely identify this rule in past and current SwiftLint versions.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV10identifier4name11description4kind03minA7Version21nonTriggeringExamples010triggeringN011corrections17deprecatedAliases18requiresFileOnDiskACSS_S2SAA0D4KindOAA0aK0VSayAA7ExampleVGATSDyA2SGShySSGSbtcfc":{"name":"init(identifier:name:description:kind:minSwiftVersion:nonTriggeringExamples:triggeringExamples:corrections:deprecatedAliases:requiresFileOnDisk:)","abstract":"Creates a RuleDescription by specifying all its properties directly.
The location describing the start of the region. All locations that are less than this value","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV3endAA8LocationVvp":{"name":"end","abstract":"
The location describing the end of the region. All locations that are greater than this value","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV23disabledRuleIdentifiersShyAA0F10IdentifierOGvp":{"name":"disabledRuleIdentifiers","abstract":"
All SwiftLint rule identifiers that are disabled in this region.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV5start3end23disabledRuleIdentifiersAcA8LocationV_AHShyAA0H10IdentifierOGtcfc":{"name":"init(start:end:disabledRuleIdentifiers:)","abstract":"Creates a Region by setting explicit values for all its properties.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV8containsySbAA8LocationVF":{"name":"contains(_:)","abstract":"Whether the specific location is contained in this region.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV13isRuleEnabledySbAA0F0_pF":{"name":"isRuleEnabled(_:)","abstract":"Whether the specified rule is enabled in this region.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV14isRuleDisabledySbAA0F0_pF":{"name":"isRuleDisabled(_:)","abstract":"Whether the specified rule is disabled in this region.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV26deprecatedAliasesDisabling4ruleShySSGAA4Rule_p_tF":{"name":"deprecatedAliasesDisabling(rule:)","abstract":"Returns the deprecated rule aliases that are disabling the specified rule in this region.","parent_name":"Region"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4fileSSSgvp":{"name":"file","abstract":"
The file path on disk for this location.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4lineSiSgvp":{"name":"line","abstract":"The line offset in the file for this location. 1-indexed.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV9characterSiSgvp":{"name":"character","abstract":"The character offset in the file for this location. 1-indexed.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV11descriptionSSvp":{"name":"description","abstract":"A lossless printable description of this location.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV12relativeFileSSSgvp":{"name":"relativeFile","abstract":"The file path for this location relative to the current working directory.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4file4line9characterACSSSg_SiSgAHtcfc":{"name":"init(file:line:character:)","abstract":"Creates a Location by specifying its properties directly.
Creates a Location based on a SwiftLintFile and a byte-offset into the file.","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4file8positionAcA0aB4FileC_0A6Syntax16AbsolutePositionVtcfc":{"name":"init(file:position:)","abstract":"
Creates a Location based on a SwiftLintFile and a SwiftSyntax AbsolutePosition into the file.","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4file15characterOffsetAcA0aB4FileC_Sitcfc":{"name":"init(file:characterOffset:)","abstract":"
Creates a Location based on a SwiftLintFile and a UTF8 character-offset into the file.","parent_name":"Location"},"Structs/Location.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"Location"},"Structs/CollectedLinter.html#/s:18SwiftLintFramework15CollectedLinterV4fileAA0aB4FileCvp":{"name":"file","abstract":"
The file to lint with this linter.
","parent_name":"CollectedLinter"},"Structs/CollectedLinter.html#/s:18SwiftLintFramework15CollectedLinterV15styleViolations5usingSayAA14StyleViolationVGAA11RuleStorageC_tF":{"name":"styleViolations(using:)","abstract":"Computes or retrieves style violations.
","parent_name":"CollectedLinter"},"Structs/CollectedLinter.html#/s:18SwiftLintFramework15CollectedLinterV27styleViolationsAndRuleTimes5usingSayAA14StyleViolationVG_SaySS2id_Sd4timetGtAA0I7StorageC_tF":{"name":"styleViolationsAndRuleTimes(using:)","abstract":"Computes or retrieves style violations and the time spent executing each rule.
","parent_name":"CollectedLinter"},"Structs/CollectedLinter.html#/s:18SwiftLintFramework15CollectedLinterV6format7useTabs11indentWidthySb_SitF":{"name":"format(useTabs:indentWidth:)","abstract":"Formats the file associated with this linter.
","parent_name":"CollectedLinter"},"Structs/Linter.html#/s:18SwiftLintFramework6LinterV4fileAA0aB4FileCvp":{"name":"file","abstract":"The file to lint with this linter.
","parent_name":"Linter"},"Structs/Linter.html#/s:18SwiftLintFramework6LinterV12isCollectingSbvp":{"name":"isCollecting","abstract":"Whether or not this linter will be used to collect information from several files.
","parent_name":"Linter"},"Structs/Linter.html#/s:18SwiftLintFramework6LinterV4file13configuration5cache17compilerArgumentsAcA0aB4FileC_AA13ConfigurationVAA0D5CacheCSgSaySSGtcfc":{"name":"init(file:configuration:cache:compilerArguments:)","abstract":"Creates a Linter by specifying its properties directly.
Returns a linter capable of checking for violations after running each rule’s collection step.
","parent_name":"Linter"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV4codeSSvp":{"name":"code","abstract":"The contents of the example
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV13configurationypSgvp":{"name":"configuration","abstract":"The untyped configuration to apply to the rule, if deviating from the default configuration.","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV20testMultiByteOffsetsSbvp":{"name":"testMultiByteOffsets","abstract":"
Whether the example should be tested by prepending multibyte grapheme clusters
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV11testOnLinuxSbvp":{"name":"testOnLinux","abstract":"Whether the example should be tested on Linux
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV4files12StaticStringVvp":{"name":"file","abstract":"The path to the file where the example was created
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV4lineSuvp":{"name":"line","abstract":"The line in the file where the example was created
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV_13configuration20testMultiByteOffsets0F17WrappingInComment0fjK6String0F14DisableCommand0F7OnLinux4file4line24excludeFromDocumentationACSS_ypSgS5bs06StaticM0VSuSbtcfc":{"name":"init(_:configuration:testMultiByteOffsets:testWrappingInComment:testWrappingInString:testDisableCommand:testOnLinux:file:line:excludeFromDocumentation:)","abstract":"Create a new Example with the specified code, file, and line.
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV4with4codeACSS_tF":{"name":"with(code:)","abstract":"Returns the same example, but with the code that is passed in
Returns a copy of the Example with all instances of the “↓” character removed.
","parent_name":"Example"},"Structs/Example.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Example"},"Structs/Example.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"Example"},"Structs/Example.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"Example"},"Structs/Command/Modifier.html#/s:18SwiftLintFramework7CommandV8ModifierO8previousyA2EmF":{"name":"previous","abstract":"The command should only apply to the line preceding its definition.
","parent_name":"Modifier"},"Structs/Command/Modifier.html#/s:18SwiftLintFramework7CommandV8ModifierO4thisyA2EmF":{"name":"this","abstract":"The command should only apply to the same line as its definition.
","parent_name":"Modifier"},"Structs/Command/Modifier.html#/s:18SwiftLintFramework7CommandV8ModifierO4nextyA2EmF":{"name":"next","abstract":"The command should only apply to the line following its definition.
","parent_name":"Modifier"},"Structs/Command/Action.html#/s:18SwiftLintFramework7CommandV6ActionO6enableyA2EmF":{"name":"enable","abstract":"The rule(s) associated with this command should be enabled by the SwiftLint engine.
","parent_name":"Action"},"Structs/Command/Action.html#/s:18SwiftLintFramework7CommandV6ActionO7disableyA2EmF":{"name":"disable","abstract":"The rule(s) associated with this command should be disabled by the SwiftLint engine.
","parent_name":"Action"},"Structs/Command/Action.html":{"name":"Action","abstract":"The action (verb) that SwiftLint should perform when interpreting this command.
","parent_name":"Command"},"Structs/Command/Modifier.html":{"name":"Modifier","abstract":"The modifier for a command, used to modify its scope.
","parent_name":"Command"},"Structs/Command.html#/s:18SwiftLintFramework7CommandV6action15ruleIdentifiers4line9character8modifier15trailingCommentA2C6ActionO_ShyAA14RuleIdentifierOGS2iSgAC8ModifierOSgSSSgtcfc":{"name":"init(action:ruleIdentifiers:line:character:modifier:trailingComment:)","abstract":"Creates a command based on the specified parameters.
","parent_name":"Command"},"Structs/Command.html#/s:18SwiftLintFramework7CommandV12actionString4line9characterACSgSS_S2itcfc":{"name":"init(actionString:line:character:)","abstract":"Creates a command based on the specified parameters.
","parent_name":"Command"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV5valueSDySS0deC00D16KitRepresentable_pGvp":{"name":"value","abstract":"The underlying SourceKitten dictionary.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV12substructureSayACGvp":{"name":"substructure","abstract":"The cached substructure for this dictionary. Empty if there is no substructure.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV14expressionKindAA0a10ExpressionH0OSgvp":{"name":"expressionKind","abstract":"The kind of Swift expression represented by this dictionary, if it is an expression.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV15declarationKind0deC00a11DeclarationH0OSgvp":{"name":"declarationKind","abstract":"The kind of Swift declaration represented by this dictionary, if it is a declaration.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV13statementKind0deC009StatementH0OSgvp":{"name":"statementKind","abstract":"The kind of Swift statement represented by this dictionary, if it is a statement.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV13accessibilityAA18AccessControlLevelOSgvp":{"name":"accessibility","abstract":"The accessibility level for this dictionary, if it is a declaration.
","parent_name":"SourceKittenDictionary"},"Structs/Configuration/RulesMode.html#/s:18SwiftLintFramework13ConfigurationV9RulesModeO7defaultyAEShySSG_AGtcAEmF":{"name":"default(disabled:optIn:)","abstract":"The default rules mode, which will enable all rules that aren’t defined as being opt-in","parent_name":"RulesMode"},"Structs/Configuration/RulesMode.html#/s:18SwiftLintFramework13ConfigurationV9RulesModeO4onlyyAEShySSGcAEmF":{"name":"only(_:)","abstract":"
Only enable the rules explicitly listed.
","parent_name":"RulesMode"},"Structs/Configuration/RulesMode.html#/s:18SwiftLintFramework13ConfigurationV9RulesModeO10allEnabledyA2EmF":{"name":"allEnabled","abstract":"Enable all available rules.
","parent_name":"RulesMode"},"Structs/Configuration/IndentationStyle.html#/s:18SwiftLintFramework13ConfigurationV16IndentationStyleO4tabsyA2EmF":{"name":"tabs","abstract":"Swift source code should be indented using tabs.
","parent_name":"IndentationStyle"},"Structs/Configuration/IndentationStyle.html#/s:18SwiftLintFramework13ConfigurationV16IndentationStyleO6spacesyAESi_tcAEmF":{"name":"spaces(count:)","abstract":"Swift source code should be indented using spaces with count spaces per indentation level.
The default Configuration resulting from an empty configuration file.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV15defaultFileNameSSvpZ":{"name":"defaultFileName","abstract":"The default file name to look for user-defined configurations.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13includedPathsSaySSGvp":{"name":"includedPaths","abstract":"The paths that should be included when linting
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13excludedPathsSaySSGvp":{"name":"excludedPaths","abstract":"The paths that should be excluded when linting
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV11indentationAC16IndentationStyleOvp":{"name":"indentation","abstract":"The style to use when indenting Swift source code.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV16warningThresholdSiSgvp":{"name":"warningThreshold","abstract":"The threshold for the number of warnings to tolerate before treating the lint as having failed.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV8reporterSSvp":{"name":"reporter","abstract":"The identifier for the Reporter to use to report style violations.
The location of the persisted cache to use with this configuration.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV22allowZeroLintableFilesSbvp":{"name":"allowZeroLintableFiles","abstract":"Allow or disallow SwiftLint to exit successfully when passed only ignored or unlintable files.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV013basedOnCustomD5FilesSbvp":{"name":"basedOnCustomConfigurationFiles","abstract":"This value is true iff the --config parameter was used to specify (a) configuration file(s)","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV5rulesSayAA4Rule_pGvp":{"name":"rules","abstract":"
All rules enabled in this configuration
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13rootDirectorySSvp":{"name":"rootDirectory","abstract":"The root directory is the directory that included & excluded paths relate to.","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV9rulesModeAC05RulesF0Ovp":{"name":"rulesMode","abstract":"
The rules mode used for this configuration.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV18configurationFiles14enableAllRules9cachePath27ignoreParentAndChildConfigs20mockedNetworkResults25useDefaultConfigOnFailureACSaySSG_SbSSSgSbSDyS2SGSbSgtcfc":{"name":"init(configurationFiles:enableAllRules:cachePath:ignoreParentAndChildConfigs:mockedNetworkResults:useDefaultConfigOnFailure:)","abstract":"Creates a Configuration with convenience parameters.
Returns a copy of the current Configuration with its computedCacheDescription property set to the value of","parent_name":"Configuration"},"Structs/Configuration/IndentationStyle.html":{"name":"IndentationStyle","abstract":"
The style of indentation used in a Swift project.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13lintableFiles6inPath12forceExclude15excludeByPrefixSayAA0aB4FileCGSS_S2btF":{"name":"lintableFiles(inPath:forceExclude:excludeByPrefix:)","abstract":"Returns the files that can be linted by SwiftLint in the specified parent path.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV19filterExcludedPaths11fileManager2inSaySSGAA012LintableFileI0_p_AGdtF":{"name":"filterExcludedPaths(fileManager:in:)","abstract":"Returns an array of file paths after removing the excluded paths as defined by this configuration.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV27filterExcludedPathsByPrefix2inSaySSGAFd_tF":{"name":"filterExcludedPathsByPrefix(in:)","abstract":"Returns the file paths that are excluded by this configuration using filtering by absolute path prefix.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13configuration3forAcA0aB4FileC_tF":{"name":"configuration(for:)","abstract":"Returns a new configuration that applies to the specified file by merging the current configuration with any","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV4dict8ruleList14enableAllRules9cachePathACSDySSypG_AA04RuleG0VSbSSSgtKcfc":{"name":"init(dict:ruleList:enableAllRules:cachePath:)","abstract":"
Creates a Configuration value based on the specified parameters.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV14configuredRule5forIDAA0F0_pSgSS_tF":{"name":"configuredRule(forID:)","abstract":"Returns the rule for the specified ID, if configured in this configuration.
","parent_name":"Configuration"},"Structs/Configuration/RulesMode.html":{"name":"RulesMode","abstract":"Represents how a Configuration object can be configured with regards to rules.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"Configuration"},"Structs/Configuration.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Configuration"},"Structs/Configuration.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"Configuration"},"Structs/RuleListDocumentation.html#/s:18SwiftLintFramework21RuleListDocumentationVyAcA0dE0Vcfc":{"name":"init(_:)","abstract":"Creates a RuleListDocumentation instance from a RuleList.
","parent_name":"RuleListDocumentation"},"Structs/RuleListDocumentation.html#/s:18SwiftLintFramework21RuleListDocumentationV5write2toy10Foundation3URLV_tKF":{"name":"write(to:)","abstract":"Write the rule list documentation as markdown files to the specified directory.
","parent_name":"RuleListDocumentation"},"Structs/RuleListDocumentation.html":{"name":"RuleListDocumentation","abstract":"User-facing documentation for a SwiftLint RuleList.
"},"Structs/Configuration.html":{"name":"Configuration","abstract":"The configuration struct for SwiftLint. User-defined in the .swiftlint.yml file, drives the behavior of SwiftLint.
A collection of keys and values as parsed out of SourceKit, with many conveniences for accessing SwiftLint-specific"},"Structs/Command.html":{"name":"Command","abstract":"
A SwiftLint-interpretable command to modify SwiftLint’s behavior embedded as comments in source code.
"},"Structs/Example.html":{"name":"Example","abstract":"Captures code and context information for an example of a triggering or"},"Structs/Linter.html":{"name":"Linter","abstract":"
Represents a file that can be linted for style violations and corrections after being collected.
"},"Structs/CollectedLinter.html":{"name":"CollectedLinter","abstract":"Represents a file that can compute style violations and corrections for a list of rules.
"},"Structs/Location.html":{"name":"Location","abstract":"The placement of a segment of Swift in a collection of source files.
"},"Structs/Region.html":{"name":"Region","abstract":"A contiguous region of Swift source code.
"},"Structs/RuleDescription.html":{"name":"RuleDescription","abstract":"A detailed description for a SwiftLint rule. Used for both documentation and testing purposes.
"},"Structs/RuleList.html":{"name":"RuleList","abstract":"A list of available SwiftLint rules.
"},"Structs/RuleParameter.html":{"name":"RuleParameter","abstract":"A configuration parameter for rules.
"},"Structs/StyleViolation.html":{"name":"StyleViolation","abstract":"A value describing an instance of Swift source code that is considered invalid by a SwiftLint rule.
"},"Structs/SwiftLintSyntaxMap.html":{"name":"SwiftLintSyntaxMap","abstract":"Represents a Swift file’s syntax information.
"},"Structs/SwiftLintSyntaxToken.html":{"name":"SwiftLintSyntaxToken","abstract":"A SwiftLint-aware Swift syntax token.
"},"Structs/SwiftVersion.html":{"name":"SwiftVersion","abstract":"A value describing the version of the Swift compiler.
"},"Structs/Version.html":{"name":"Version","abstract":"A type describing the SwiftLint version.
"},"Structs/YamlParser.html":{"name":"YamlParser","abstract":"An interface for parsing YAML.
"},"Structs/ReasonedRuleViolation.html":{"name":"ReasonedRuleViolation","abstract":"A violation produced by ViolationsSyntaxVisitors.
Reports violations as JUnit XML supported by GitLab.
"},"Structs/SonarQubeReporter.html":{"name":"SonarQubeReporter","abstract":"Reports violations in SonarQube import format.
"},"Structs/XcodeReporter.html":{"name":"XcodeReporter","abstract":"Reports violations in the format Xcode uses to display in the IDE. (default)
"},"Protocols/SwiftSyntaxRule.html#/s:18SwiftLintFramework0A10SyntaxRuleP11makeVisitor4fileAA010ViolationsdG0CAA0aB4FileC_tF":{"name":"makeVisitor(file:)","abstract":"Produce a ViolationsSyntaxVisitor for the given file.
Produce a violation for the given file and absolute position.
","parent_name":"SwiftSyntaxRule"},"Protocols/SwiftSyntaxRule.html#/s:18SwiftLintFramework0A10SyntaxRuleP10preprocess10syntaxTree0aD0010SourceFileD0VSgAH_tF":{"name":"preprocess(syntaxTree:)","abstract":"Gives a chance for the rule to do some pre-processing on the syntax tree.","parent_name":"SwiftSyntaxRule"},"Protocols/SwiftSyntaxRule.html#/s:18SwiftLintFramework0A10SyntaxRulePAAE15disabledRegions4fileSay0aD011SourceRangeVGAA0aB4FileC_tF":{"name":"disabledRegions(file:)","abstract":"
Returns the source ranges in the specified file where this rule is disabled.
","parent_name":"SwiftSyntaxRule"},"Protocols/SwiftSyntaxRule.html#/s:18SwiftLintFramework4RuleP8validate4fileSayAA14StyleViolationVGAA0aB4FileC_tF":{"name":"validate(file:)","parent_name":"SwiftSyntaxRule"},"Protocols/ViolationsSyntaxRewriter.html#/s:18SwiftLintFramework24ViolationsSyntaxRewriterP19correctionPositionsSay0aE016AbsolutePositionVGvp":{"name":"correctionPositions","abstract":"Positions in a source file where corrections were applied.
","parent_name":"ViolationsSyntaxRewriter"},"Protocols/SeverityBasedRuleConfiguration.html#/s:18SwiftLintFramework30SeverityBasedRuleConfigurationP08severityG0AA0dG0Vvp":{"name":"severityConfiguration","abstract":"The configuration of a rule’s severity.
","parent_name":"SeverityBasedRuleConfiguration"},"Protocols/SeverityBasedRuleConfiguration.html#/s:18SwiftLintFramework30SeverityBasedRuleConfigurationPAAE8severityAA09ViolationD0Ovp":{"name":"severity","abstract":"The severity of a rule.
","parent_name":"SeverityBasedRuleConfiguration"},"Protocols/RuleConfiguration.html#/s:18SwiftLintFramework17RuleConfigurationP18consoleDescriptionSSvp":{"name":"consoleDescription","abstract":"A human-readable description for this configuration and its applied values.
","parent_name":"RuleConfiguration"},"Protocols/RuleConfiguration.html#/s:18SwiftLintFramework17RuleConfigurationP5apply13configurationyyp_tKF":{"name":"apply(configuration:)","abstract":"Apply an untyped configuration to the current value.
","parent_name":"RuleConfiguration"},"Protocols/RuleConfiguration.html#/s:18SwiftLintFramework17RuleConfigurationP9isEqualToySbAaB_pF":{"name":"isEqualTo(_:)","abstract":"Whether the specified configuration is equivalent to the current value.
","parent_name":"RuleConfiguration"},"Protocols/AnalyzerRule.html#/s:18SwiftLintFramework4RuleP8validate4fileSayAA14StyleViolationVGAA0aB4FileC_tF":{"name":"validate(file:)","parent_name":"AnalyzerRule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP11descriptionAA0D11DescriptionVvpZ":{"name":"description","abstract":"A verbose description of many of this rule’s properties.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP24configurationDescriptionSSvp":{"name":"configurationDescription","abstract":"A description of how this rule has been configured to run.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RulePxycfc":{"name":"init()","abstract":"A default initializer for rules. All rules need to be trivially initializable.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP13configurationxyp_tKcfc":{"name":"init(configuration:)","abstract":"Creates a rule by applying its configuration.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP8validate4file17compilerArgumentsSayAA14StyleViolationVGAA0aB4FileC_SaySSGtF":{"name":"validate(file:compilerArguments:)","abstract":"Executes the rule on a file and returns any violations to the rule’s expectations.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP8validate4fileSayAA14StyleViolationVGAA0aB4FileC_tF":{"name":"validate(file:)","abstract":"Executes the rule on a file and returns any violations to the rule’s expectations.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP9isEqualToySbAaB_pF":{"name":"isEqualTo(_:)","abstract":"Whether or not the specified rule is equivalent to the current rule.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP11collectInfo3for4into17compilerArgumentsyAA0aB4FileC_AA0D7StorageCSaySSGtF":{"name":"collectInfo(for:into:compilerArguments:)","abstract":"Collects information for the specified file in a storage object, to be analyzed by a CollectedLinter.
Executes the rule on a file after collecting file info for all files and returns any violations to the rule’s","parent_name":"Rule"},"Protocols/Reporter.html#/s:18SwiftLintFramework8ReporterP10identifierSSvpZ":{"name":"identifier","abstract":"
The unique identifier for this reporter.
","parent_name":"Reporter"},"Protocols/Reporter.html#/s:18SwiftLintFramework8ReporterP10isRealtimeSbvpZ":{"name":"isRealtime","abstract":"Whether or not this reporter can output incrementally as violations are found or if all violations must be","parent_name":"Reporter"},"Protocols/Reporter.html#/s:18SwiftLintFramework8ReporterP14generateReportySSSayAA14StyleViolationVGFZ":{"name":"generateReport(_:)","abstract":"
Return a string with the report for the specified violations.
","parent_name":"Reporter"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework25ConfigurationProviderRuleP0D4TypeQa":{"name":"ConfigurationType","abstract":"The type of configuration used to configure this rule.
","parent_name":"ConfigurationProviderRule"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework25ConfigurationProviderRuleP13configuration0D4TypeQzvp":{"name":"configuration","abstract":"This rule’s configuration.
","parent_name":"ConfigurationProviderRule"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework4RuleP13configurationxyp_tKcfc":{"name":"init(configuration:)","parent_name":"ConfigurationProviderRule"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework4RuleP9isEqualToySbAaB_pF":{"name":"isEqualTo(_:)","parent_name":"ConfigurationProviderRule"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework4RuleP24configurationDescriptionSSvp":{"name":"configurationDescription","parent_name":"ConfigurationProviderRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework14CollectingRuleP8FileInfoQa":{"name":"FileInfo","abstract":"The kind of information to collect for each file being linted for this rule.
","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework14CollectingRuleP11collectInfo3for17compilerArguments04FileG0QzAA0abK0C_SaySSGtF":{"name":"collectInfo(for:compilerArguments:)","abstract":"Collects information for the specified file, to be analyzed by a CollectedLinter.
Collects information for the specified file, to be analyzed by a CollectedLinter.
Executes the rule on a file after collecting file info for all files and returns any violations to the rule’s","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework14CollectingRuleP8validate4file13collectedInfoSayAA14StyleViolationVGAA0aB4FileC_SDyAK0lI0QzGtF":{"name":"validate(file:collectedInfo:)","abstract":"
Executes the rule on a file after collecting file info for all files and returns any violations to the rule’s","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework4RuleP11collectInfo3for4into17compilerArgumentsyAA0aB4FileC_AA0D7StorageCSaySSGtF":{"name":"collectInfo(for:into:compilerArguments:)","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework4RuleP8validate4file5using17compilerArgumentsSayAA14StyleViolationVGAA0aB4FileC_AA0D7StorageCSaySSGtF":{"name":"validate(file:using:compilerArguments:)","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework4RuleP8validate4fileSayAA14StyleViolationVGAA0aB4FileC_tF":{"name":"validate(file:)","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework4RuleP8validate4file17compilerArgumentsSayAA14StyleViolationVGAA0aB4FileC_SaySSGtF":{"name":"validate(file:compilerArguments:)","parent_name":"CollectingRule"},"Protocols/ASTRule.html#/s:18SwiftLintFramework7ASTRuleP8KindTypeQa":{"name":"KindType","abstract":"
The kind of token being recursed over.
","parent_name":"ASTRule"},"Protocols/ASTRule.html#/s:18SwiftLintFramework7ASTRuleP8validate4file4kind10dictionarySayAA14StyleViolationVGAA0aB4FileC_8KindTypeQzAA22SourceKittenDictionaryVtF":{"name":"validate(file:kind:dictionary:)","abstract":"Executes the rule on a file and a subset of its AST structure, returning any violations to the rule’s","parent_name":"ASTRule"},"Protocols/ASTRule.html#/s:18SwiftLintFramework7ASTRuleP4kind4from8KindTypeQzSgAA22SourceKittenDictionaryV_tF":{"name":"kind(from:)","abstract":"
Get the kind from the specified dictionary.
Executes the rule on a file and a subset of its AST structure, returning any violations to the rule’s","parent_name":"ASTRule"},"Protocols/LintableFileManager.html#/s:18SwiftLintFramework19LintableFileManagerP07filesToB06inPath13rootDirectorySaySSGSS_SSSgtF":{"name":"filesToLint(inPath:rootDirectory:)","abstract":"
Returns all files that can be linted in the specified path. If the path is relative, it will be appended to the","parent_name":"LintableFileManager"},"Protocols/LintableFileManager.html#/s:18SwiftLintFramework19LintableFileManagerP16modificationDate03forE6AtPath10Foundation0H0VSgSS_tF":{"name":"modificationDate(forFileAtPath:)","abstract":"
Returns the date when the file at the specified path was last modified. Returns nil if the file cannot be","parent_name":"LintableFileManager"},"Protocols/LintableFileManager.html":{"name":"LintableFileManager","abstract":"
An interface for enumerating files that can be linted by SwiftLint.
"},"Protocols/ASTRule.html":{"name":"ASTRule","abstract":"A rule that leverages the Swift source’s pre-typechecked Abstract Syntax Tree to recurse into the source’s"},"Protocols.html#/s:18SwiftLintFramework17AnyCollectingRuleP":{"name":"AnyCollectingRule","abstract":"
Type-erased protocol used to check whether a rule is collectable.
"},"Protocols/CollectingRule.html":{"name":"CollectingRule","abstract":"A rule that requires knowledge of all other files being linted.
"},"Protocols/ConfigurationProviderRule.html":{"name":"ConfigurationProviderRule","abstract":"A rule that is user-configurable.
"},"Protocols/Reporter.html":{"name":"Reporter","abstract":"An interface for reporting violations as strings.
"},"Protocols/Rule.html":{"name":"Rule","abstract":"An executable value that can identify issues (violations) in Swift source code.
"},"Protocols.html#/s:18SwiftLintFramework9OptInRuleP":{"name":"OptInRule","abstract":"A rule that is not enabled by default. Rules conforming to this need to be explicitly enabled by users.
"},"Protocols.html#/s:18SwiftLintFramework17SourceKitFreeRuleP":{"name":"SourceKitFreeRule","abstract":"A rule that does not need SourceKit to operate and can still operate even after SourceKit has crashed.
"},"Protocols/AnalyzerRule.html":{"name":"AnalyzerRule","abstract":"A rule that can operate on the post-typechecked AST using compiler arguments. Performs rules that are more like"},"Protocols/RuleConfiguration.html":{"name":"RuleConfiguration","abstract":"
A configuration value for a rule to allow users to modify its behavior.
"},"Protocols/SeverityBasedRuleConfiguration.html":{"name":"SeverityBasedRuleConfiguration","abstract":"A configuration for a rule that allows to configure at least the severity.
"},"Protocols/ViolationsSyntaxRewriter.html":{"name":"ViolationsSyntaxRewriter","abstract":"A SwiftSyntax SyntaxRewriter that produces absolute positions where corrections were applied.
A SwiftLint Rule backed by SwiftSyntax that does not use SourceKit requests.
"},"Functions.html#/s:18SwiftLintFramework11queuedPrintyyxlF":{"name":"queuedPrint(_:)","abstract":"A thread-safe version of Swift’s standard print().
A thread-safe, newline-terminated version of fputs(..., stderr).
A thread-safe, newline-terminated version of fatalError(...) that doesn’t leak"},"Functions.html#/s:18SwiftLintFramework12reporterFrom10identifierAA8Reporter_pXpSS_tF":{"name":"reporterFrom(identifier:)","abstract":"
Returns the reporter with the specified identifier. Traps if the specified identifier doesn’t correspond to any"},"Extensions/String.html#/s:SS18SwiftLintFrameworkE24absolutePathStandardizedSSyF":{"name":"absolutePathStandardized()","abstract":"
Returns a new string, converting the path to a canonical absolute path.
","parent_name":"String"},"Extensions/String.html#/s:SS18SwiftLintFrameworkE16countOccurrences2ofSiSJ_tF":{"name":"countOccurrences(of:)","abstract":"Count the number of occurrences of the given character in self
If self is a path, this method can be used to get a path expression relative to a root directory
","parent_name":"String"},"Extensions/FileManager.html#/s:18SwiftLintFramework19LintableFileManagerP07filesToB06inPath13rootDirectorySaySSGSS_SSSgtF":{"name":"filesToLint(inPath:rootDirectory:)","parent_name":"FileManager"},"Extensions/FileManager.html#/s:18SwiftLintFramework19LintableFileManagerP16modificationDate03forE6AtPath10Foundation0H0VSgSS_tF":{"name":"modificationDate(forFileAtPath:)","parent_name":"FileManager"},"Extensions/FileManager.html":{"name":"FileManager"},"Extensions/String.html":{"name":"String"},"Enums/ViolationSeverity.html#/s:18SwiftLintFramework17ViolationSeverityO7warningyA2CmF":{"name":"warning","abstract":"Non-fatal. If using SwiftLint as an Xcode build phase, Xcode will mark the build as having succeeded.
","parent_name":"ViolationSeverity"},"Enums/ViolationSeverity.html#/s:18SwiftLintFramework17ViolationSeverityO5erroryA2CmF":{"name":"error","abstract":"Fatal. If using SwiftLint as an Xcode build phase, Xcode will mark the build as having failed.
","parent_name":"ViolationSeverity"},"Enums/ViolationSeverity.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"ViolationSeverity"},"Enums/RuleListError.html#/s:18SwiftLintFramework13RuleListErrorO24duplicatedConfigurationsyAcA0D0_pXp_tcACmF":{"name":"duplicatedConfigurations(rule:)","abstract":"The rule list contains more than one configuration for the specified rule.
","parent_name":"RuleListError"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO4lintyA2CmF":{"name":"lint","abstract":"Describes rules that validate Swift source conventions.
","parent_name":"RuleKind"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO9idiomaticyA2CmF":{"name":"idiomatic","abstract":"Describes rules that validate common practices in the Swift community.
","parent_name":"RuleKind"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO5styleyA2CmF":{"name":"style","abstract":"Describes rules that validate stylistic choices.
","parent_name":"RuleKind"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO7metricsyA2CmF":{"name":"metrics","abstract":"Describes rules that validate magnitudes or measurements of Swift source.
","parent_name":"RuleKind"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO11performanceyA2CmF":{"name":"performance","abstract":"Describes rules that validate that code patterns with poor performance are avoided.
","parent_name":"RuleKind"},"Enums/RuleIdentifier.html#/s:18SwiftLintFramework14RuleIdentifierO3allyA2CmF":{"name":"all","abstract":"Special identifier that should be treated as referring to ‘all’ SwiftLint rules. One helpful usecase is in","parent_name":"RuleIdentifier"},"Enums/RuleIdentifier.html#/s:18SwiftLintFramework14RuleIdentifierO6singleyACSS_tcACmF":{"name":"single(identifier:)","abstract":"
Represents a single SwiftLint rule with the specified identifier.
","parent_name":"RuleIdentifier"},"Enums/RuleIdentifier.html#/s:18SwiftLintFramework14RuleIdentifierO20stringRepresentationSSvp":{"name":"stringRepresentation","abstract":"The spelling of the string for this idenfitier.
","parent_name":"RuleIdentifier"},"Enums/RuleIdentifier.html#/s:18SwiftLintFramework14RuleIdentifierOyACSScfc":{"name":"init(_:)","abstract":"Creates a RuleIdentifier by its string representation.
The configuration didn’t match internal expectations.
","parent_name":"ConfigurationError"},"Enums/ConfigurationError.html#/s:18SwiftLintFramework18ConfigurationErrorO28ambiguousMatchKindParametersyA2CmF":{"name":"ambiguousMatchKindParameters","abstract":"The configuration had both match_kind and excluded_match_kind parameters.
A generic configuration error specified by a string.
","parent_name":"ConfigurationError"},"Enums/ConfigurationError.html#/s:18SwiftLintFramework18ConfigurationErrorO19initialFileNotFoundyACSS_tcACmF":{"name":"initialFileNotFound(path:)","abstract":"The initial configuration file was not found.
","parent_name":"ConfigurationError"},"Enums/AccessControlLevel.html#/s:18SwiftLintFramework18AccessControlLevelO7privateyA2CmF":{"name":"private","abstract":"Accessible by the declaration’s immediate lexical scope.
","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:18SwiftLintFramework18AccessControlLevelO11fileprivateyA2CmF":{"name":"fileprivate","abstract":"Accessible by the declaration’s same file.
","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:18SwiftLintFramework18AccessControlLevelO8internalyA2CmF":{"name":"internal","abstract":"Accessible by the declaration’s same module, or modules importing it with the @testable attribute.
Accessible by the declaration’s same program.
","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:18SwiftLintFramework18AccessControlLevelO4openyA2CmF":{"name":"open","abstract":"Accessible and customizable (via subclassing or overrides) by the declaration’s same program.
","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"AccessControlLevel"},"Enums/ExecutableInfo.html#/s:18SwiftLintFramework14ExecutableInfoO7buildIDSSSgvpZ":{"name":"buildID","abstract":"A stable identifier for this executable. Uses the Mach-O header UUID on macOS. Nil on Linux.
","parent_name":"ExecutableInfo"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO4callyA2CmF":{"name":"call","abstract":"A call to a named function or closure.
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO8argumentyA2CmF":{"name":"argument","abstract":"An argument value for a function or closure.
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO5arrayyA2CmF":{"name":"array","abstract":"An Array expression.
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO10dictionaryyA2CmF":{"name":"dictionary","abstract":"A Dictionary expression.
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO13objectLiteralyA2CmF":{"name":"objectLiteral","abstract":"An object literal expression. https://developer.apple.com/swift/blog/?id=33
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO7closureyA2CmF":{"name":"closure","abstract":"A closure expression. https://docs.swift.org/swift-book/LanguageGuide/Closures.html
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO5tupleyA2CmF":{"name":"tuple","abstract":"A tuple expression. https://docs.swift.org/swift-book/ReferenceManual/Types.html#ID448
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html":{"name":"SwiftExpressionKind","abstract":"The kind of expression for a contiguous set of Swift source tokens.
"},"Enums/ExecutableInfo.html":{"name":"ExecutableInfo","abstract":"Information about this executable.
"},"Enums/AccessControlLevel.html":{"name":"AccessControlLevel","abstract":"The accessibility of a Swift source declaration.
"},"Enums/ConfigurationError.html":{"name":"ConfigurationError","abstract":"All possible configuration errors.
"},"Enums/RuleIdentifier.html":{"name":"RuleIdentifier","abstract":"An identifier representing a SwiftLint rule, or all rules.
"},"Enums/RuleKind.html":{"name":"RuleKind","abstract":"All the possible rule kinds (categories).
"},"Enums/RuleListError.html":{"name":"RuleListError","abstract":"All possible rule list configuration errors.
"},"Enums/ViolationSeverity.html":{"name":"ViolationSeverity","abstract":"The magnitude of a StyleViolation.
The rule list containing all available rules built into SwiftLint.
"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE09ActorDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE09ClassDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE08EnumDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE013ExtensionDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE012FunctionDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE013SubscriptDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE012VariableDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE012ProtocolDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE010StructDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/RuleStorage.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"RuleStorage"},"Classes/RuleStorage.html#/s:18SwiftLintFramework11RuleStorageCACycfc":{"name":"init()","abstract":"Creates a RuleStorage with no initial stored data.
Creates a LinterCache by specifying a SwiftLint configuration and a file manager.
Persists the cache to disk.
","parent_name":"LinterCache"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC4fileAC012SourceKittenC00D0C_tcfc":{"name":"init(file:)","abstract":"Creates a SwiftLintFile with a SourceKitten File.
Creates a SwiftLintFile by specifying its path on disk.","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC20pathDeferringReadingACSS_tcfc":{"name":"init(pathDeferringReading:)","abstract":"
Creates a SwiftLintFile by specifying its path on disk. Unlike the SwiftLintFile(path:) initializer, this","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC8contentsACSS_tcfc":{"name":"init(contents:)","abstract":"
Creates a SwiftLintFile that is not backed by a file on disk by specifying its contents.
The path on disk for this file.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC8contentsSSvp":{"name":"contents","abstract":"The file’s contents.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC10stringView012SourceKittenC006StringF0Vvp":{"name":"stringView","abstract":"A string view into the contents of this file optimized for string manipulation operations.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC5linesSay012SourceKittenC04LineVGvp":{"name":"lines","abstract":"The parsed lines for this file’s contents.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC15invalidateCacheyyF":{"name":"invalidateCache()","abstract":"Invalidates all cached data for this file.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html":{"name":"SwiftLintFile","abstract":"A unit of Swift source code, either on disk or in memory.
"},"Classes/LinterCache.html":{"name":"LinterCache","abstract":"A persisted cache for storing and retrieving linter results.
"},"Classes/RuleStorage.html":{"name":"RuleStorage","abstract":"A storage mechanism for aggregating the results of CollectingRules.
A SwiftSyntax SyntaxVisitor that produces absolute positions where violations should be reported.
Reports violations as a newline-separated string of comma-separated values (CSV).
"},"Structs/CheckstyleReporter.html":{"name":"CheckstyleReporter","abstract":"Reports violations as XML conforming to the Checkstyle specification, as defined here:"},"Structs/CodeClimateReporter.html":{"name":"CodeClimateReporter","abstract":"
Reports violations as a JSON array in Code Climate format.
"},"Structs/EmojiReporter.html":{"name":"EmojiReporter","abstract":"Reports violations in the format that’s both fun and easy to read.
"},"Structs/GitHubActionsLoggingReporter.html":{"name":"GitHubActionsLoggingReporter","abstract":"Reports violations in the format GitHub-hosted virtual machine for Actions can recognize as messages.
"},"Structs/HTMLReporter.html":{"name":"HTMLReporter","abstract":"Reports violations as HTML.
"},"Structs/JSONReporter.html":{"name":"JSONReporter","abstract":"Reports violations as a JSON array.
"},"Structs/JUnitReporter.html":{"name":"JUnitReporter","abstract":"Reports violations as JUnit XML.
"},"Structs/MarkdownReporter.html":{"name":"MarkdownReporter","abstract":"Reports violations as markdown formated (with tables).
"},"rule-directory.html":{"name":"Rule Directory"},"Rules.html":{"name":"Rules"},"Reporters.html":{"name":"Reporters"},"Guides.html":{"name":"Guides","abstract":"The following guides are available globally.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Global%20Variables.html":{"name":"Global Variables","abstract":"The following global variables are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Extensions.html":{"name":"Extensions","abstract":"The following extensions are available globally.
"},"Functions.html":{"name":"Functions","abstract":"The following functions are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"}} \ No newline at end of file +{"Structs/XcodeReporter.html#/s:18SwiftLintFramework8ReporterP10identifierSSvpZ":{"name":"identifier","parent_name":"XcodeReporter"},"Structs/XcodeReporter.html#/s:18SwiftLintFramework8ReporterP10isRealtimeSbvpZ":{"name":"isRealtime","parent_name":"XcodeReporter"},"Structs/XcodeReporter.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"XcodeReporter"},"Structs/XcodeReporter.html#/s:18SwiftLintFramework8ReporterP14generateReportySSSayAA14StyleViolationVGFZ":{"name":"generateReport(_:)","parent_name":"XcodeReporter"},"Structs/SonarQubeReporter.html#/s:18SwiftLintFramework8ReporterP10identifierSSvpZ":{"name":"identifier","parent_name":"SonarQubeReporter"},"Structs/SonarQubeReporter.html#/s:18SwiftLintFramework8ReporterP10isRealtimeSbvpZ":{"name":"isRealtime","parent_name":"SonarQubeReporter"},"Structs/SonarQubeReporter.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"SonarQubeReporter"},"Structs/SonarQubeReporter.html#/s:18SwiftLintFramework8ReporterP14generateReportySSSayAA14StyleViolationVGFZ":{"name":"generateReport(_:)","parent_name":"SonarQubeReporter"},"Structs/GitLabJUnitReporter.html#/s:18SwiftLintFramework8ReporterP10identifierSSvpZ":{"name":"identifier","parent_name":"GitLabJUnitReporter"},"Structs/GitLabJUnitReporter.html#/s:18SwiftLintFramework8ReporterP10isRealtimeSbvpZ":{"name":"isRealtime","parent_name":"GitLabJUnitReporter"},"Structs/GitLabJUnitReporter.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"GitLabJUnitReporter"},"Structs/GitLabJUnitReporter.html#/s:18SwiftLintFramework8ReporterP14generateReportySSSayAA14StyleViolationVGFZ":{"name":"generateReport(_:)","parent_name":"GitLabJUnitReporter"},"Structs/ReasonedRuleViolation.html#/s:18SwiftLintFramework21ReasonedRuleViolationV8position0A6Syntax16AbsolutePositionVvp":{"name":"position","abstract":"The violation’s position.
","parent_name":"ReasonedRuleViolation"},"Structs/ReasonedRuleViolation.html#/s:18SwiftLintFramework21ReasonedRuleViolationV6reasonSSSgvp":{"name":"reason","abstract":"A specific reason for the violation.
","parent_name":"ReasonedRuleViolation"},"Structs/ReasonedRuleViolation.html#/s:18SwiftLintFramework21ReasonedRuleViolationV8severityAA0F8SeverityOSgvp":{"name":"severity","abstract":"The violation’s severity.
","parent_name":"ReasonedRuleViolation"},"Structs/ReasonedRuleViolation.html#/s:18SwiftLintFramework21ReasonedRuleViolationV8position6reason8severityAC0A6Syntax16AbsolutePositionV_SSSgAA0F8SeverityOSgtcfc":{"name":"init(position:reason:severity:)","abstract":"Creates a ReasonedRuleViolation.
Parses the input YAML string as an untyped dictionary.
","parent_name":"YamlParser"},"Structs/Version.html#/s:18SwiftLintFramework7VersionV5valueSSvp":{"name":"value","abstract":"The string value for this version.
","parent_name":"Version"},"Structs/Version.html#/s:18SwiftLintFramework7VersionV7currentACvpZ":{"name":"current","abstract":"The current SwiftLint version.
","parent_name":"Version"},"Structs/SwiftVersion.html#/s:SY8RawValueQa":{"name":"RawValue","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:SY8rawValuexSg03RawB0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV4fiveACvpZ":{"name":"five","abstract":"Swift 5.0.x - https://swift.org/download/#swift-50
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV10fiveDotOneACvpZ":{"name":"fiveDotOne","abstract":"Swift 5.1.x - https://swift.org/download/#swift-51
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV10fiveDotTwoACvpZ":{"name":"fiveDotTwo","abstract":"Swift 5.2.x - https://swift.org/download/#swift-52
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV12fiveDotThreeACvpZ":{"name":"fiveDotThree","abstract":"Swift 5.3.x - https://swift.org/download/#swift-53
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV11fiveDotFourACvpZ":{"name":"fiveDotFour","abstract":"Swift 5.4.x - https://swift.org/download/#swift-54
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV11fiveDotFiveACvpZ":{"name":"fiveDotFive","abstract":"Swift 5.5.x - https://swift.org/download/#swift-55
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV10fiveDotSixACvpZ":{"name":"fiveDotSix","abstract":"Swift 5.6.x - https://swift.org/download/#swift-56
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV12fiveDotSevenACvpZ":{"name":"fiveDotSeven","abstract":"Swift 5.7.x - https://swift.org/download/#swift-57
","parent_name":"SwiftVersion"},"Structs/SwiftVersion.html#/s:18SwiftLintFramework0A7VersionV7currentACvpZ":{"name":"current","abstract":"The current detected Swift compiler version, based on the currently accessible SourceKit version.
","parent_name":"SwiftVersion"},"Structs/SwiftLintSyntaxToken.html#/s:18SwiftLintFramework0aB11SyntaxTokenV5value012SourceKittenC00dE0Vvp":{"name":"value","abstract":"The raw SyntaxToken obtained by SourceKitten.
The syntax kind associated with is token.
","parent_name":"SwiftLintSyntaxToken"},"Structs/SwiftLintSyntaxToken.html#/s:18SwiftLintFramework0aB11SyntaxTokenV5valueAC012SourceKittenC00dE0V_tcfc":{"name":"init(value:)","abstract":"Creates a SwiftLintSyntaxToken from the raw SyntaxToken obtained by SourceKitten.
The byte range in a source file for this token.
","parent_name":"SwiftLintSyntaxToken"},"Structs/SwiftLintSyntaxToken.html#/s:18SwiftLintFramework0aB11SyntaxTokenV6offset012SourceKittenC09ByteCountVvp":{"name":"offset","abstract":"The starting byte offset in a source file for this token.
","parent_name":"SwiftLintSyntaxToken"},"Structs/SwiftLintSyntaxToken.html#/s:18SwiftLintFramework0aB11SyntaxTokenV6length012SourceKittenC09ByteCountVvp":{"name":"length","abstract":"The length in bytes for this token.
","parent_name":"SwiftLintSyntaxToken"},"Structs/SwiftLintSyntaxMap.html#/s:18SwiftLintFramework0aB9SyntaxMapV5value012SourceKittenC00dE0Vvp":{"name":"value","abstract":"The raw SyntaxMap obtained by SourceKitten.
The SwiftLint-specific syntax tokens for this syntax map.
","parent_name":"SwiftLintSyntaxMap"},"Structs/SwiftLintSyntaxMap.html#/s:18SwiftLintFramework0aB9SyntaxMapV5valueAC012SourceKittenC00dE0V_tcfc":{"name":"init(value:)","abstract":"Creates a SwiftLintSyntaxMap from the raw SyntaxMap obtained by SourceKitten.
The identifier of the rule that generated this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV15ruleDescriptionSSvp":{"name":"ruleDescription","abstract":"The description of the rule that generated this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV8ruleNameSSvp":{"name":"ruleName","abstract":"The name of the rule that generated this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV8severityAA0E8SeverityOvp":{"name":"severity","abstract":"The severity of this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV8locationAA8LocationVvp":{"name":"location","abstract":"The location of this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV6reasonSSvp":{"name":"reason","abstract":"The justification for this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV11descriptionSSvp":{"name":"description","abstract":"A printable description for this violation.
","parent_name":"StyleViolation"},"Structs/StyleViolation.html#/s:18SwiftLintFramework14StyleViolationV15ruleDescription8severity8location6reasonAcA04RuleG0V_AA0E8SeverityOAA8LocationVSSSgtcfc":{"name":"init(ruleDescription:severity:location:reason:)","abstract":"Creates a StyleViolation by specifying its properties directly.
Returns the same violation, but with the severity that is passed in
Returns the same violation, but with the location that is passed in
The severity that should be assigned to the violation of this parameter’s value is met.
","parent_name":"RuleParameter"},"Structs/RuleParameter.html#/s:18SwiftLintFramework13RuleParameterV5valuexvp":{"name":"value","abstract":"The value to configure the rule.
","parent_name":"RuleParameter"},"Structs/RuleParameter.html#/s:18SwiftLintFramework13RuleParameterV8severity5valueACyxGAA17ViolationSeverityO_xtcfc":{"name":"init(severity:value:)","abstract":"Creates a RuleParameter by specifying its properties directly.
The rules contained in this list.
","parent_name":"RuleList"},"Structs/RuleList.html#/s:18SwiftLintFramework8RuleListV5rulesAcA0D0_pXpd_tcfc":{"name":"init(rules:)","abstract":"Creates a RuleList by specifying all its rules.
Creates a RuleList by specifying all its rules.
The rule’s unique identifier, to be used in configuration files and SwiftLint commands.","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV4nameSSvp":{"name":"name","abstract":"
The rule’s human-readable name. Should be short, descriptive and formatted in Title Case. May contain spaces.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV11descriptionSSvp":{"name":"description","abstract":"The rule’s verbose description. Should read as a sentence or short paragraph. Good things to include are an","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV4kindAA0D4KindOvp":{"name":"kind","abstract":"
The RuleKind that best categorizes this rule.
Swift source examples that do not trigger a violation for this rule. Used for documentation purposes to inform","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV18triggeringExamplesSayAA7ExampleVGvp":{"name":"triggeringExamples","abstract":"
Swift source examples that do trigger one or more violations for this rule. Used for documentation purposes to","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV11correctionsSDyAA7ExampleVAFGvp":{"name":"corrections","abstract":"
Pairs of Swift source examples, where keys are examples that trigger violations for this rule, and the values","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV17deprecatedAliasesShySSGvp":{"name":"deprecatedAliases","abstract":"
Any previous iteration of the rule’s identifier that was previously shipped with SwiftLint.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV03minA7VersionAA0aG0Vvp":{"name":"minSwiftVersion","abstract":"The oldest version of the Swift compiler supported by this rule.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV18requiresFileOnDiskSbvp":{"name":"requiresFileOnDisk","abstract":"Whether or not this rule can only be executed on a file physically on-disk. Typically necessary for rules","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV07consoleE0SSvp":{"name":"consoleDescription","abstract":"
The console-printable string for this description.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV14allIdentifiersSaySSGvp":{"name":"allIdentifiers","abstract":"All identifiers that have been used to uniquely identify this rule in past and current SwiftLint versions.
","parent_name":"RuleDescription"},"Structs/RuleDescription.html#/s:18SwiftLintFramework15RuleDescriptionV10identifier4name11description4kind03minA7Version21nonTriggeringExamples010triggeringN011corrections17deprecatedAliases18requiresFileOnDiskACSS_S2SAA0D4KindOAA0aK0VSayAA7ExampleVGATSDyA2SGShySSGSbtcfc":{"name":"init(identifier:name:description:kind:minSwiftVersion:nonTriggeringExamples:triggeringExamples:corrections:deprecatedAliases:requiresFileOnDisk:)","abstract":"Creates a RuleDescription by specifying all its properties directly.
The location describing the start of the region. All locations that are less than this value","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV3endAA8LocationVvp":{"name":"end","abstract":"
The location describing the end of the region. All locations that are greater than this value","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV23disabledRuleIdentifiersShyAA0F10IdentifierOGvp":{"name":"disabledRuleIdentifiers","abstract":"
All SwiftLint rule identifiers that are disabled in this region.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV5start3end23disabledRuleIdentifiersAcA8LocationV_AHShyAA0H10IdentifierOGtcfc":{"name":"init(start:end:disabledRuleIdentifiers:)","abstract":"Creates a Region by setting explicit values for all its properties.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV8containsySbAA8LocationVF":{"name":"contains(_:)","abstract":"Whether the specific location is contained in this region.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV13isRuleEnabledySbAA0F0_pF":{"name":"isRuleEnabled(_:)","abstract":"Whether the specified rule is enabled in this region.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV14isRuleDisabledySbAA0F0_pF":{"name":"isRuleDisabled(_:)","abstract":"Whether the specified rule is disabled in this region.
","parent_name":"Region"},"Structs/Region.html#/s:18SwiftLintFramework6RegionV26deprecatedAliasesDisabling4ruleShySSGAA4Rule_p_tF":{"name":"deprecatedAliasesDisabling(rule:)","abstract":"Returns the deprecated rule aliases that are disabling the specified rule in this region.","parent_name":"Region"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4fileSSSgvp":{"name":"file","abstract":"
The file path on disk for this location.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4lineSiSgvp":{"name":"line","abstract":"The line offset in the file for this location. 1-indexed.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV9characterSiSgvp":{"name":"character","abstract":"The character offset in the file for this location. 1-indexed.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV11descriptionSSvp":{"name":"description","abstract":"A lossless printable description of this location.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV12relativeFileSSSgvp":{"name":"relativeFile","abstract":"The file path for this location relative to the current working directory.
","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4file4line9characterACSSSg_SiSgAHtcfc":{"name":"init(file:line:character:)","abstract":"Creates a Location by specifying its properties directly.
Creates a Location based on a SwiftLintFile and a byte-offset into the file.","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4file8positionAcA0aB4FileC_0A6Syntax16AbsolutePositionVtcfc":{"name":"init(file:position:)","abstract":"
Creates a Location based on a SwiftLintFile and a SwiftSyntax AbsolutePosition into the file.","parent_name":"Location"},"Structs/Location.html#/s:18SwiftLintFramework8LocationV4file15characterOffsetAcA0aB4FileC_Sitcfc":{"name":"init(file:characterOffset:)","abstract":"
Creates a Location based on a SwiftLintFile and a UTF8 character-offset into the file.","parent_name":"Location"},"Structs/Location.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"Location"},"Structs/CollectedLinter.html#/s:18SwiftLintFramework15CollectedLinterV4fileAA0aB4FileCvp":{"name":"file","abstract":"
The file to lint with this linter.
","parent_name":"CollectedLinter"},"Structs/CollectedLinter.html#/s:18SwiftLintFramework15CollectedLinterV15styleViolations5usingSayAA14StyleViolationVGAA11RuleStorageC_tF":{"name":"styleViolations(using:)","abstract":"Computes or retrieves style violations.
","parent_name":"CollectedLinter"},"Structs/CollectedLinter.html#/s:18SwiftLintFramework15CollectedLinterV27styleViolationsAndRuleTimes5usingSayAA14StyleViolationVG_SaySS2id_Sd4timetGtAA0I7StorageC_tF":{"name":"styleViolationsAndRuleTimes(using:)","abstract":"Computes or retrieves style violations and the time spent executing each rule.
","parent_name":"CollectedLinter"},"Structs/CollectedLinter.html#/s:18SwiftLintFramework15CollectedLinterV6format7useTabs11indentWidthySb_SitF":{"name":"format(useTabs:indentWidth:)","abstract":"Formats the file associated with this linter.
","parent_name":"CollectedLinter"},"Structs/Linter.html#/s:18SwiftLintFramework6LinterV4fileAA0aB4FileCvp":{"name":"file","abstract":"The file to lint with this linter.
","parent_name":"Linter"},"Structs/Linter.html#/s:18SwiftLintFramework6LinterV12isCollectingSbvp":{"name":"isCollecting","abstract":"Whether or not this linter will be used to collect information from several files.
","parent_name":"Linter"},"Structs/Linter.html#/s:18SwiftLintFramework6LinterV4file13configuration5cache17compilerArgumentsAcA0aB4FileC_AA13ConfigurationVAA0D5CacheCSgSaySSGtcfc":{"name":"init(file:configuration:cache:compilerArguments:)","abstract":"Creates a Linter by specifying its properties directly.
Returns a linter capable of checking for violations after running each rule’s collection step.
","parent_name":"Linter"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV4codeSSvp":{"name":"code","abstract":"The contents of the example
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV13configurationypSgvp":{"name":"configuration","abstract":"The untyped configuration to apply to the rule, if deviating from the default configuration.","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV20testMultiByteOffsetsSbvp":{"name":"testMultiByteOffsets","abstract":"
Whether the example should be tested by prepending multibyte grapheme clusters
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV11testOnLinuxSbvp":{"name":"testOnLinux","abstract":"Whether the example should be tested on Linux
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV4files12StaticStringVvp":{"name":"file","abstract":"The path to the file where the example was created
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV4lineSuvp":{"name":"line","abstract":"The line in the file where the example was created
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV_13configuration20testMultiByteOffsets0F17WrappingInComment0fjK6String0F14DisableCommand0F7OnLinux4file4line24excludeFromDocumentationACSS_ypSgS5bs06StaticM0VSuSbtcfc":{"name":"init(_:configuration:testMultiByteOffsets:testWrappingInComment:testWrappingInString:testDisableCommand:testOnLinux:file:line:excludeFromDocumentation:)","abstract":"Create a new Example with the specified code, file, and line.
","parent_name":"Example"},"Structs/Example.html#/s:18SwiftLintFramework7ExampleV4with4codeACSS_tF":{"name":"with(code:)","abstract":"Returns the same example, but with the code that is passed in
Returns a copy of the Example with all instances of the “↓” character removed.
","parent_name":"Example"},"Structs/Example.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Example"},"Structs/Example.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"Example"},"Structs/Example.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"Example"},"Structs/Command/Modifier.html#/s:18SwiftLintFramework7CommandV8ModifierO8previousyA2EmF":{"name":"previous","abstract":"The command should only apply to the line preceding its definition.
","parent_name":"Modifier"},"Structs/Command/Modifier.html#/s:18SwiftLintFramework7CommandV8ModifierO4thisyA2EmF":{"name":"this","abstract":"The command should only apply to the same line as its definition.
","parent_name":"Modifier"},"Structs/Command/Modifier.html#/s:18SwiftLintFramework7CommandV8ModifierO4nextyA2EmF":{"name":"next","abstract":"The command should only apply to the line following its definition.
","parent_name":"Modifier"},"Structs/Command/Action.html#/s:18SwiftLintFramework7CommandV6ActionO6enableyA2EmF":{"name":"enable","abstract":"The rule(s) associated with this command should be enabled by the SwiftLint engine.
","parent_name":"Action"},"Structs/Command/Action.html#/s:18SwiftLintFramework7CommandV6ActionO7disableyA2EmF":{"name":"disable","abstract":"The rule(s) associated with this command should be disabled by the SwiftLint engine.
","parent_name":"Action"},"Structs/Command/Action.html":{"name":"Action","abstract":"The action (verb) that SwiftLint should perform when interpreting this command.
","parent_name":"Command"},"Structs/Command/Modifier.html":{"name":"Modifier","abstract":"The modifier for a command, used to modify its scope.
","parent_name":"Command"},"Structs/Command.html#/s:18SwiftLintFramework7CommandV6action15ruleIdentifiers4line9character8modifier15trailingCommentA2C6ActionO_ShyAA14RuleIdentifierOGS2iSgAC8ModifierOSgSSSgtcfc":{"name":"init(action:ruleIdentifiers:line:character:modifier:trailingComment:)","abstract":"Creates a command based on the specified parameters.
","parent_name":"Command"},"Structs/Command.html#/s:18SwiftLintFramework7CommandV12actionString4line9characterACSgSS_S2itcfc":{"name":"init(actionString:line:character:)","abstract":"Creates a command based on the specified parameters.
","parent_name":"Command"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV5valueSDySS0deC00D16KitRepresentable_pGvp":{"name":"value","abstract":"The underlying SourceKitten dictionary.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV12substructureSayACGvp":{"name":"substructure","abstract":"The cached substructure for this dictionary. Empty if there is no substructure.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV14expressionKindAA0a10ExpressionH0OSgvp":{"name":"expressionKind","abstract":"The kind of Swift expression represented by this dictionary, if it is an expression.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV15declarationKind0deC00a11DeclarationH0OSgvp":{"name":"declarationKind","abstract":"The kind of Swift declaration represented by this dictionary, if it is a declaration.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV13statementKind0deC009StatementH0OSgvp":{"name":"statementKind","abstract":"The kind of Swift statement represented by this dictionary, if it is a statement.
","parent_name":"SourceKittenDictionary"},"Structs/SourceKittenDictionary.html#/s:18SwiftLintFramework22SourceKittenDictionaryV13accessibilityAA18AccessControlLevelOSgvp":{"name":"accessibility","abstract":"The accessibility level for this dictionary, if it is a declaration.
","parent_name":"SourceKittenDictionary"},"Structs/Configuration/RulesMode.html#/s:18SwiftLintFramework13ConfigurationV9RulesModeO7defaultyAEShySSG_AGtcAEmF":{"name":"default(disabled:optIn:)","abstract":"The default rules mode, which will enable all rules that aren’t defined as being opt-in","parent_name":"RulesMode"},"Structs/Configuration/RulesMode.html#/s:18SwiftLintFramework13ConfigurationV9RulesModeO4onlyyAEShySSGcAEmF":{"name":"only(_:)","abstract":"
Only enable the rules explicitly listed.
","parent_name":"RulesMode"},"Structs/Configuration/RulesMode.html#/s:18SwiftLintFramework13ConfigurationV9RulesModeO10allEnabledyA2EmF":{"name":"allEnabled","abstract":"Enable all available rules.
","parent_name":"RulesMode"},"Structs/Configuration/IndentationStyle.html#/s:18SwiftLintFramework13ConfigurationV16IndentationStyleO4tabsyA2EmF":{"name":"tabs","abstract":"Swift source code should be indented using tabs.
","parent_name":"IndentationStyle"},"Structs/Configuration/IndentationStyle.html#/s:18SwiftLintFramework13ConfigurationV16IndentationStyleO6spacesyAESi_tcAEmF":{"name":"spaces(count:)","abstract":"Swift source code should be indented using spaces with count spaces per indentation level.
The default Configuration resulting from an empty configuration file.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV15defaultFileNameSSvpZ":{"name":"defaultFileName","abstract":"The default file name to look for user-defined configurations.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13includedPathsSaySSGvp":{"name":"includedPaths","abstract":"The paths that should be included when linting
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13excludedPathsSaySSGvp":{"name":"excludedPaths","abstract":"The paths that should be excluded when linting
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV11indentationAC16IndentationStyleOvp":{"name":"indentation","abstract":"The style to use when indenting Swift source code.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV16warningThresholdSiSgvp":{"name":"warningThreshold","abstract":"The threshold for the number of warnings to tolerate before treating the lint as having failed.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV8reporterSSvp":{"name":"reporter","abstract":"The identifier for the Reporter to use to report style violations.
The location of the persisted cache to use with this configuration.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV22allowZeroLintableFilesSbvp":{"name":"allowZeroLintableFiles","abstract":"Allow or disallow SwiftLint to exit successfully when passed only ignored or unlintable files.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV013basedOnCustomD5FilesSbvp":{"name":"basedOnCustomConfigurationFiles","abstract":"This value is true iff the --config parameter was used to specify (a) configuration file(s)","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV5rulesSayAA4Rule_pGvp":{"name":"rules","abstract":"
All rules enabled in this configuration
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13rootDirectorySSvp":{"name":"rootDirectory","abstract":"The root directory is the directory that included & excluded paths relate to.","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV9rulesModeAC05RulesF0Ovp":{"name":"rulesMode","abstract":"
The rules mode used for this configuration.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV18configurationFiles14enableAllRules9cachePath27ignoreParentAndChildConfigs20mockedNetworkResults25useDefaultConfigOnFailureACSaySSG_SbSSSgSbSDyS2SGSbSgtcfc":{"name":"init(configurationFiles:enableAllRules:cachePath:ignoreParentAndChildConfigs:mockedNetworkResults:useDefaultConfigOnFailure:)","abstract":"Creates a Configuration with convenience parameters.
Returns a copy of the current Configuration with its computedCacheDescription property set to the value of","parent_name":"Configuration"},"Structs/Configuration/IndentationStyle.html":{"name":"IndentationStyle","abstract":"
The style of indentation used in a Swift project.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13lintableFiles6inPath12forceExclude15excludeByPrefixSayAA0aB4FileCGSS_S2btF":{"name":"lintableFiles(inPath:forceExclude:excludeByPrefix:)","abstract":"Returns the files that can be linted by SwiftLint in the specified parent path.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV19filterExcludedPaths11fileManager2inSaySSGAA012LintableFileI0_p_AGdtF":{"name":"filterExcludedPaths(fileManager:in:)","abstract":"Returns an array of file paths after removing the excluded paths as defined by this configuration.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV27filterExcludedPathsByPrefix2inSaySSGAFd_tF":{"name":"filterExcludedPathsByPrefix(in:)","abstract":"Returns the file paths that are excluded by this configuration using filtering by absolute path prefix.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV13configuration3forAcA0aB4FileC_tF":{"name":"configuration(for:)","abstract":"Returns a new configuration that applies to the specified file by merging the current configuration with any","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV4dict8ruleList14enableAllRules9cachePathACSDySSypG_AA04RuleG0VSbSSSgtKcfc":{"name":"init(dict:ruleList:enableAllRules:cachePath:)","abstract":"
Creates a Configuration value based on the specified parameters.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:18SwiftLintFramework13ConfigurationV14configuredRule5forIDAA0F0_pSgSS_tF":{"name":"configuredRule(forID:)","abstract":"Returns the rule for the specified ID, if configured in this configuration.
","parent_name":"Configuration"},"Structs/Configuration/RulesMode.html":{"name":"RulesMode","abstract":"Represents how a Configuration object can be configured with regards to rules.
","parent_name":"Configuration"},"Structs/Configuration.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"Configuration"},"Structs/Configuration.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"Configuration"},"Structs/Configuration.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"Configuration"},"Structs/RuleListDocumentation.html#/s:18SwiftLintFramework21RuleListDocumentationVyAcA0dE0Vcfc":{"name":"init(_:)","abstract":"Creates a RuleListDocumentation instance from a RuleList.
","parent_name":"RuleListDocumentation"},"Structs/RuleListDocumentation.html#/s:18SwiftLintFramework21RuleListDocumentationV5write2toy10Foundation3URLV_tKF":{"name":"write(to:)","abstract":"Write the rule list documentation as markdown files to the specified directory.
","parent_name":"RuleListDocumentation"},"Structs/RuleListDocumentation.html":{"name":"RuleListDocumentation","abstract":"User-facing documentation for a SwiftLint RuleList.
"},"Structs/Configuration.html":{"name":"Configuration","abstract":"The configuration struct for SwiftLint. User-defined in the .swiftlint.yml file, drives the behavior of SwiftLint.
A collection of keys and values as parsed out of SourceKit, with many conveniences for accessing SwiftLint-specific"},"Structs/Command.html":{"name":"Command","abstract":"
A SwiftLint-interpretable command to modify SwiftLint’s behavior embedded as comments in source code.
"},"Structs/Example.html":{"name":"Example","abstract":"Captures code and context information for an example of a triggering or"},"Structs/Linter.html":{"name":"Linter","abstract":"
Represents a file that can be linted for style violations and corrections after being collected.
"},"Structs/CollectedLinter.html":{"name":"CollectedLinter","abstract":"Represents a file that can compute style violations and corrections for a list of rules.
"},"Structs/Location.html":{"name":"Location","abstract":"The placement of a segment of Swift in a collection of source files.
"},"Structs/Region.html":{"name":"Region","abstract":"A contiguous region of Swift source code.
"},"Structs/RuleDescription.html":{"name":"RuleDescription","abstract":"A detailed description for a SwiftLint rule. Used for both documentation and testing purposes.
"},"Structs/RuleList.html":{"name":"RuleList","abstract":"A list of available SwiftLint rules.
"},"Structs/RuleParameter.html":{"name":"RuleParameter","abstract":"A configuration parameter for rules.
"},"Structs/StyleViolation.html":{"name":"StyleViolation","abstract":"A value describing an instance of Swift source code that is considered invalid by a SwiftLint rule.
"},"Structs/SwiftLintSyntaxMap.html":{"name":"SwiftLintSyntaxMap","abstract":"Represents a Swift file’s syntax information.
"},"Structs/SwiftLintSyntaxToken.html":{"name":"SwiftLintSyntaxToken","abstract":"A SwiftLint-aware Swift syntax token.
"},"Structs/SwiftVersion.html":{"name":"SwiftVersion","abstract":"A value describing the version of the Swift compiler.
"},"Structs/Version.html":{"name":"Version","abstract":"A type describing the SwiftLint version.
"},"Structs/YamlParser.html":{"name":"YamlParser","abstract":"An interface for parsing YAML.
"},"Structs/ReasonedRuleViolation.html":{"name":"ReasonedRuleViolation","abstract":"A violation produced by ViolationsSyntaxVisitors.
Reports violations as JUnit XML supported by GitLab.
"},"Structs/SonarQubeReporter.html":{"name":"SonarQubeReporter","abstract":"Reports violations in SonarQube import format.
"},"Structs/XcodeReporter.html":{"name":"XcodeReporter","abstract":"Reports violations in the format Xcode uses to display in the IDE. (default)
"},"Protocols/SwiftSyntaxRule.html#/s:18SwiftLintFramework0A10SyntaxRuleP11makeVisitor4fileAA010ViolationsdG0CAA0aB4FileC_tF":{"name":"makeVisitor(file:)","abstract":"Produce a ViolationsSyntaxVisitor for the given file.
Produce a violation for the given file and absolute position.
","parent_name":"SwiftSyntaxRule"},"Protocols/SwiftSyntaxRule.html#/s:18SwiftLintFramework0A10SyntaxRuleP10preprocess10syntaxTree0aD0010SourceFileD0VSgAH_tF":{"name":"preprocess(syntaxTree:)","abstract":"Gives a chance for the rule to do some pre-processing on the syntax tree.","parent_name":"SwiftSyntaxRule"},"Protocols/SwiftSyntaxRule.html#/s:18SwiftLintFramework0A10SyntaxRulePAAE15disabledRegions4fileSay0aD011SourceRangeVGAA0aB4FileC_tF":{"name":"disabledRegions(file:)","abstract":"
Returns the source ranges in the specified file where this rule is disabled.
","parent_name":"SwiftSyntaxRule"},"Protocols/SwiftSyntaxRule.html#/s:18SwiftLintFramework4RuleP8validate4fileSayAA14StyleViolationVGAA0aB4FileC_tF":{"name":"validate(file:)","parent_name":"SwiftSyntaxRule"},"Protocols/ViolationsSyntaxRewriter.html#/s:18SwiftLintFramework24ViolationsSyntaxRewriterP19correctionPositionsSay0aE016AbsolutePositionVGvp":{"name":"correctionPositions","abstract":"Positions in a source file where corrections were applied.
","parent_name":"ViolationsSyntaxRewriter"},"Protocols/SeverityBasedRuleConfiguration.html#/s:18SwiftLintFramework30SeverityBasedRuleConfigurationP08severityG0AA0dG0Vvp":{"name":"severityConfiguration","abstract":"The configuration of a rule’s severity.
","parent_name":"SeverityBasedRuleConfiguration"},"Protocols/SeverityBasedRuleConfiguration.html#/s:18SwiftLintFramework30SeverityBasedRuleConfigurationPAAE8severityAA09ViolationD0Ovp":{"name":"severity","abstract":"The severity of a rule.
","parent_name":"SeverityBasedRuleConfiguration"},"Protocols/RuleConfiguration.html#/s:18SwiftLintFramework17RuleConfigurationP18consoleDescriptionSSvp":{"name":"consoleDescription","abstract":"A human-readable description for this configuration and its applied values.
","parent_name":"RuleConfiguration"},"Protocols/RuleConfiguration.html#/s:18SwiftLintFramework17RuleConfigurationP5apply13configurationyyp_tKF":{"name":"apply(configuration:)","abstract":"Apply an untyped configuration to the current value.
","parent_name":"RuleConfiguration"},"Protocols/RuleConfiguration.html#/s:18SwiftLintFramework17RuleConfigurationP9isEqualToySbAaB_pF":{"name":"isEqualTo(_:)","abstract":"Whether the specified configuration is equivalent to the current value.
","parent_name":"RuleConfiguration"},"Protocols/AnalyzerRule.html#/s:18SwiftLintFramework4RuleP8validate4fileSayAA14StyleViolationVGAA0aB4FileC_tF":{"name":"validate(file:)","parent_name":"AnalyzerRule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP11descriptionAA0D11DescriptionVvpZ":{"name":"description","abstract":"A verbose description of many of this rule’s properties.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP24configurationDescriptionSSvp":{"name":"configurationDescription","abstract":"A description of how this rule has been configured to run.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RulePxycfc":{"name":"init()","abstract":"A default initializer for rules. All rules need to be trivially initializable.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP13configurationxyp_tKcfc":{"name":"init(configuration:)","abstract":"Creates a rule by applying its configuration.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP8validate4file17compilerArgumentsSayAA14StyleViolationVGAA0aB4FileC_SaySSGtF":{"name":"validate(file:compilerArguments:)","abstract":"Executes the rule on a file and returns any violations to the rule’s expectations.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP8validate4fileSayAA14StyleViolationVGAA0aB4FileC_tF":{"name":"validate(file:)","abstract":"Executes the rule on a file and returns any violations to the rule’s expectations.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP9isEqualToySbAaB_pF":{"name":"isEqualTo(_:)","abstract":"Whether or not the specified rule is equivalent to the current rule.
","parent_name":"Rule"},"Protocols/Rule.html#/s:18SwiftLintFramework4RuleP11collectInfo3for4into17compilerArgumentsyAA0aB4FileC_AA0D7StorageCSaySSGtF":{"name":"collectInfo(for:into:compilerArguments:)","abstract":"Collects information for the specified file in a storage object, to be analyzed by a CollectedLinter.
Executes the rule on a file after collecting file info for all files and returns any violations to the rule’s","parent_name":"Rule"},"Protocols/Reporter.html#/s:18SwiftLintFramework8ReporterP10identifierSSvpZ":{"name":"identifier","abstract":"
The unique identifier for this reporter.
","parent_name":"Reporter"},"Protocols/Reporter.html#/s:18SwiftLintFramework8ReporterP10isRealtimeSbvpZ":{"name":"isRealtime","abstract":"Whether or not this reporter can output incrementally as violations are found or if all violations must be","parent_name":"Reporter"},"Protocols/Reporter.html#/s:18SwiftLintFramework8ReporterP14generateReportySSSayAA14StyleViolationVGFZ":{"name":"generateReport(_:)","abstract":"
Return a string with the report for the specified violations.
","parent_name":"Reporter"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework25ConfigurationProviderRuleP0D4TypeQa":{"name":"ConfigurationType","abstract":"The type of configuration used to configure this rule.
","parent_name":"ConfigurationProviderRule"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework25ConfigurationProviderRuleP13configuration0D4TypeQzvp":{"name":"configuration","abstract":"This rule’s configuration.
","parent_name":"ConfigurationProviderRule"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework4RuleP13configurationxyp_tKcfc":{"name":"init(configuration:)","parent_name":"ConfigurationProviderRule"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework4RuleP9isEqualToySbAaB_pF":{"name":"isEqualTo(_:)","parent_name":"ConfigurationProviderRule"},"Protocols/ConfigurationProviderRule.html#/s:18SwiftLintFramework4RuleP24configurationDescriptionSSvp":{"name":"configurationDescription","parent_name":"ConfigurationProviderRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework14CollectingRuleP8FileInfoQa":{"name":"FileInfo","abstract":"The kind of information to collect for each file being linted for this rule.
","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework14CollectingRuleP11collectInfo3for17compilerArguments04FileG0QzAA0abK0C_SaySSGtF":{"name":"collectInfo(for:compilerArguments:)","abstract":"Collects information for the specified file, to be analyzed by a CollectedLinter.
Collects information for the specified file, to be analyzed by a CollectedLinter.
Executes the rule on a file after collecting file info for all files and returns any violations to the rule’s","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework14CollectingRuleP8validate4file13collectedInfoSayAA14StyleViolationVGAA0aB4FileC_SDyAK0lI0QzGtF":{"name":"validate(file:collectedInfo:)","abstract":"
Executes the rule on a file after collecting file info for all files and returns any violations to the rule’s","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework4RuleP11collectInfo3for4into17compilerArgumentsyAA0aB4FileC_AA0D7StorageCSaySSGtF":{"name":"collectInfo(for:into:compilerArguments:)","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework4RuleP8validate4file5using17compilerArgumentsSayAA14StyleViolationVGAA0aB4FileC_AA0D7StorageCSaySSGtF":{"name":"validate(file:using:compilerArguments:)","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework4RuleP8validate4fileSayAA14StyleViolationVGAA0aB4FileC_tF":{"name":"validate(file:)","parent_name":"CollectingRule"},"Protocols/CollectingRule.html#/s:18SwiftLintFramework4RuleP8validate4file17compilerArgumentsSayAA14StyleViolationVGAA0aB4FileC_SaySSGtF":{"name":"validate(file:compilerArguments:)","parent_name":"CollectingRule"},"Protocols/ASTRule.html#/s:18SwiftLintFramework7ASTRuleP8KindTypeQa":{"name":"KindType","abstract":"
The kind of token being recursed over.
","parent_name":"ASTRule"},"Protocols/ASTRule.html#/s:18SwiftLintFramework7ASTRuleP8validate4file4kind10dictionarySayAA14StyleViolationVGAA0aB4FileC_8KindTypeQzAA22SourceKittenDictionaryVtF":{"name":"validate(file:kind:dictionary:)","abstract":"Executes the rule on a file and a subset of its AST structure, returning any violations to the rule’s","parent_name":"ASTRule"},"Protocols/ASTRule.html#/s:18SwiftLintFramework7ASTRuleP4kind4from8KindTypeQzSgAA22SourceKittenDictionaryV_tF":{"name":"kind(from:)","abstract":"
Get the kind from the specified dictionary.
Executes the rule on a file and a subset of its AST structure, returning any violations to the rule’s","parent_name":"ASTRule"},"Protocols/LintableFileManager.html#/s:18SwiftLintFramework19LintableFileManagerP07filesToB06inPath13rootDirectorySaySSGSS_SSSgtF":{"name":"filesToLint(inPath:rootDirectory:)","abstract":"
Returns all files that can be linted in the specified path. If the path is relative, it will be appended to the","parent_name":"LintableFileManager"},"Protocols/LintableFileManager.html#/s:18SwiftLintFramework19LintableFileManagerP16modificationDate03forE6AtPath10Foundation0H0VSgSS_tF":{"name":"modificationDate(forFileAtPath:)","abstract":"
Returns the date when the file at the specified path was last modified. Returns nil if the file cannot be","parent_name":"LintableFileManager"},"Protocols/LintableFileManager.html":{"name":"LintableFileManager","abstract":"
An interface for enumerating files that can be linted by SwiftLint.
"},"Protocols/ASTRule.html":{"name":"ASTRule","abstract":"A rule that leverages the Swift source’s pre-typechecked Abstract Syntax Tree to recurse into the source’s"},"Protocols.html#/s:18SwiftLintFramework17AnyCollectingRuleP":{"name":"AnyCollectingRule","abstract":"
Type-erased protocol used to check whether a rule is collectable.
"},"Protocols/CollectingRule.html":{"name":"CollectingRule","abstract":"A rule that requires knowledge of all other files being linted.
"},"Protocols/ConfigurationProviderRule.html":{"name":"ConfigurationProviderRule","abstract":"A rule that is user-configurable.
"},"Protocols/Reporter.html":{"name":"Reporter","abstract":"An interface for reporting violations as strings.
"},"Protocols/Rule.html":{"name":"Rule","abstract":"An executable value that can identify issues (violations) in Swift source code.
"},"Protocols.html#/s:18SwiftLintFramework9OptInRuleP":{"name":"OptInRule","abstract":"A rule that is not enabled by default. Rules conforming to this need to be explicitly enabled by users.
"},"Protocols.html#/s:18SwiftLintFramework17SourceKitFreeRuleP":{"name":"SourceKitFreeRule","abstract":"A rule that does not need SourceKit to operate and can still operate even after SourceKit has crashed.
"},"Protocols/AnalyzerRule.html":{"name":"AnalyzerRule","abstract":"A rule that can operate on the post-typechecked AST using compiler arguments. Performs rules that are more like"},"Protocols/RuleConfiguration.html":{"name":"RuleConfiguration","abstract":"
A configuration value for a rule to allow users to modify its behavior.
"},"Protocols/SeverityBasedRuleConfiguration.html":{"name":"SeverityBasedRuleConfiguration","abstract":"A configuration for a rule that allows to configure at least the severity.
"},"Protocols/ViolationsSyntaxRewriter.html":{"name":"ViolationsSyntaxRewriter","abstract":"A SwiftSyntax SyntaxRewriter that produces absolute positions where corrections were applied.
A SwiftLint Rule backed by SwiftSyntax that does not use SourceKit requests.
"},"Functions.html#/s:18SwiftLintFramework11queuedPrintyyxlF":{"name":"queuedPrint(_:)","abstract":"A thread-safe version of Swift’s standard print().
A thread-safe, newline-terminated version of fputs(..., stderr).
A thread-safe, newline-terminated version of fatalError(...) that doesn’t leak"},"Functions.html#/s:18SwiftLintFramework12reporterFrom10identifierAA8Reporter_pXpSS_tF":{"name":"reporterFrom(identifier:)","abstract":"
Returns the reporter with the specified identifier. Traps if the specified identifier doesn’t correspond to any"},"Extensions/String.html#/s:SS18SwiftLintFrameworkE24absolutePathStandardizedSSyF":{"name":"absolutePathStandardized()","abstract":"
Returns a new string, converting the path to a canonical absolute path.
","parent_name":"String"},"Extensions/String.html#/s:SS18SwiftLintFrameworkE16countOccurrences2ofSiSJ_tF":{"name":"countOccurrences(of:)","abstract":"Count the number of occurrences of the given character in self
If self is a path, this method can be used to get a path expression relative to a root directory
","parent_name":"String"},"Extensions/FileManager.html#/s:18SwiftLintFramework19LintableFileManagerP07filesToB06inPath13rootDirectorySaySSGSS_SSSgtF":{"name":"filesToLint(inPath:rootDirectory:)","parent_name":"FileManager"},"Extensions/FileManager.html#/s:18SwiftLintFramework19LintableFileManagerP16modificationDate03forE6AtPath10Foundation0H0VSgSS_tF":{"name":"modificationDate(forFileAtPath:)","parent_name":"FileManager"},"Extensions/FileManager.html":{"name":"FileManager"},"Extensions/String.html":{"name":"String"},"Enums/ViolationSeverity.html#/s:18SwiftLintFramework17ViolationSeverityO7warningyA2CmF":{"name":"warning","abstract":"Non-fatal. If using SwiftLint as an Xcode build phase, Xcode will mark the build as having succeeded.
","parent_name":"ViolationSeverity"},"Enums/ViolationSeverity.html#/s:18SwiftLintFramework17ViolationSeverityO5erroryA2CmF":{"name":"error","abstract":"Fatal. If using SwiftLint as an Xcode build phase, Xcode will mark the build as having failed.
","parent_name":"ViolationSeverity"},"Enums/ViolationSeverity.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"ViolationSeverity"},"Enums/RuleListError.html#/s:18SwiftLintFramework13RuleListErrorO24duplicatedConfigurationsyAcA0D0_pXp_tcACmF":{"name":"duplicatedConfigurations(rule:)","abstract":"The rule list contains more than one configuration for the specified rule.
","parent_name":"RuleListError"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO4lintyA2CmF":{"name":"lint","abstract":"Describes rules that validate Swift source conventions.
","parent_name":"RuleKind"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO9idiomaticyA2CmF":{"name":"idiomatic","abstract":"Describes rules that validate common practices in the Swift community.
","parent_name":"RuleKind"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO5styleyA2CmF":{"name":"style","abstract":"Describes rules that validate stylistic choices.
","parent_name":"RuleKind"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO7metricsyA2CmF":{"name":"metrics","abstract":"Describes rules that validate magnitudes or measurements of Swift source.
","parent_name":"RuleKind"},"Enums/RuleKind.html#/s:18SwiftLintFramework8RuleKindO11performanceyA2CmF":{"name":"performance","abstract":"Describes rules that validate that code patterns with poor performance are avoided.
","parent_name":"RuleKind"},"Enums/RuleIdentifier.html#/s:18SwiftLintFramework14RuleIdentifierO3allyA2CmF":{"name":"all","abstract":"Special identifier that should be treated as referring to ‘all’ SwiftLint rules. One helpful usecase is in","parent_name":"RuleIdentifier"},"Enums/RuleIdentifier.html#/s:18SwiftLintFramework14RuleIdentifierO6singleyACSS_tcACmF":{"name":"single(identifier:)","abstract":"
Represents a single SwiftLint rule with the specified identifier.
","parent_name":"RuleIdentifier"},"Enums/RuleIdentifier.html#/s:18SwiftLintFramework14RuleIdentifierO20stringRepresentationSSvp":{"name":"stringRepresentation","abstract":"The spelling of the string for this idenfitier.
","parent_name":"RuleIdentifier"},"Enums/RuleIdentifier.html#/s:18SwiftLintFramework14RuleIdentifierOyACSScfc":{"name":"init(_:)","abstract":"Creates a RuleIdentifier by its string representation.
The configuration didn’t match internal expectations.
","parent_name":"ConfigurationError"},"Enums/ConfigurationError.html#/s:18SwiftLintFramework18ConfigurationErrorO28ambiguousMatchKindParametersyA2CmF":{"name":"ambiguousMatchKindParameters","abstract":"The configuration had both match_kind and excluded_match_kind parameters.
A generic configuration error specified by a string.
","parent_name":"ConfigurationError"},"Enums/ConfigurationError.html#/s:18SwiftLintFramework18ConfigurationErrorO19initialFileNotFoundyACSS_tcACmF":{"name":"initialFileNotFound(path:)","abstract":"The initial configuration file was not found.
","parent_name":"ConfigurationError"},"Enums/AccessControlLevel.html#/s:18SwiftLintFramework18AccessControlLevelO7privateyA2CmF":{"name":"private","abstract":"Accessible by the declaration’s immediate lexical scope.
","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:18SwiftLintFramework18AccessControlLevelO11fileprivateyA2CmF":{"name":"fileprivate","abstract":"Accessible by the declaration’s same file.
","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:18SwiftLintFramework18AccessControlLevelO8internalyA2CmF":{"name":"internal","abstract":"Accessible by the declaration’s same module, or modules importing it with the @testable attribute.
Accessible by the declaration’s same program.
","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:18SwiftLintFramework18AccessControlLevelO4openyA2CmF":{"name":"open","abstract":"Accessible and customizable (via subclassing or overrides) by the declaration’s same program.
","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"AccessControlLevel"},"Enums/AccessControlLevel.html#/s:SL1loiySbx_xtFZ":{"name":"<(_:_:)","parent_name":"AccessControlLevel"},"Enums/ExecutableInfo.html#/s:18SwiftLintFramework14ExecutableInfoO7buildIDSSSgvpZ":{"name":"buildID","abstract":"A stable identifier for this executable. Uses the Mach-O header UUID on macOS. Nil on Linux.
","parent_name":"ExecutableInfo"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO4callyA2CmF":{"name":"call","abstract":"A call to a named function or closure.
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO8argumentyA2CmF":{"name":"argument","abstract":"An argument value for a function or closure.
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO5arrayyA2CmF":{"name":"array","abstract":"An Array expression.
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO10dictionaryyA2CmF":{"name":"dictionary","abstract":"A Dictionary expression.
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO13objectLiteralyA2CmF":{"name":"objectLiteral","abstract":"An object literal expression. https://developer.apple.com/swift/blog/?id=33
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO7closureyA2CmF":{"name":"closure","abstract":"A closure expression. https://docs.swift.org/swift-book/LanguageGuide/Closures.html
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html#/s:18SwiftLintFramework0A14ExpressionKindO5tupleyA2CmF":{"name":"tuple","abstract":"A tuple expression. https://docs.swift.org/swift-book/ReferenceManual/Types.html#ID448
","parent_name":"SwiftExpressionKind"},"Enums/SwiftExpressionKind.html":{"name":"SwiftExpressionKind","abstract":"The kind of expression for a contiguous set of Swift source tokens.
"},"Enums/ExecutableInfo.html":{"name":"ExecutableInfo","abstract":"Information about this executable.
"},"Enums/AccessControlLevel.html":{"name":"AccessControlLevel","abstract":"The accessibility of a Swift source declaration.
"},"Enums/ConfigurationError.html":{"name":"ConfigurationError","abstract":"All possible configuration errors.
"},"Enums/RuleIdentifier.html":{"name":"RuleIdentifier","abstract":"An identifier representing a SwiftLint rule, or all rules.
"},"Enums/RuleKind.html":{"name":"RuleKind","abstract":"All the possible rule kinds (categories).
"},"Enums/RuleListError.html":{"name":"RuleListError","abstract":"All possible rule list configuration errors.
"},"Enums/ViolationSeverity.html":{"name":"ViolationSeverity","abstract":"The magnitude of a StyleViolation.
The rule list containing all available rules built into SwiftLint as well as native custom rules.
"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE09ActorDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE09ClassDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE08EnumDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE013ExtensionDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE012FunctionDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE013SubscriptDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE012VariableDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE012ProtocolDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/ViolationsSyntaxVisitor.html#/s:18SwiftLintFramework23ViolationsSyntaxVisitorC5visity0aE00eF12ContinueKindOAE010StructDeclE0VF":{"name":"visit(_:)","parent_name":"ViolationsSyntaxVisitor"},"Classes/RuleStorage.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"RuleStorage"},"Classes/RuleStorage.html#/s:18SwiftLintFramework11RuleStorageCACycfc":{"name":"init()","abstract":"Creates a RuleStorage with no initial stored data.
Creates a LinterCache by specifying a SwiftLint configuration and a file manager.
Persists the cache to disk.
","parent_name":"LinterCache"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC4fileAC012SourceKittenC00D0C_tcfc":{"name":"init(file:)","abstract":"Creates a SwiftLintFile with a SourceKitten File.
Creates a SwiftLintFile by specifying its path on disk.","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC20pathDeferringReadingACSS_tcfc":{"name":"init(pathDeferringReading:)","abstract":"
Creates a SwiftLintFile by specifying its path on disk. Unlike the SwiftLintFile(path:) initializer, this","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC8contentsACSS_tcfc":{"name":"init(contents:)","abstract":"
Creates a SwiftLintFile that is not backed by a file on disk by specifying its contents.
The path on disk for this file.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC8contentsSSvp":{"name":"contents","abstract":"The file’s contents.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC10stringView012SourceKittenC006StringF0Vvp":{"name":"stringView","abstract":"A string view into the contents of this file optimized for string manipulation operations.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC5linesSay012SourceKittenC04LineVGvp":{"name":"lines","abstract":"The parsed lines for this file’s contents.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:18SwiftLintFramework0aB4FileC15invalidateCacheyyF":{"name":"invalidateCache()","abstract":"Invalidates all cached data for this file.
","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"SwiftLintFile"},"Classes/SwiftLintFile.html":{"name":"SwiftLintFile","abstract":"A unit of Swift source code, either on disk or in memory.
"},"Classes/LinterCache.html":{"name":"LinterCache","abstract":"A persisted cache for storing and retrieving linter results.
"},"Classes/RuleStorage.html":{"name":"RuleStorage","abstract":"A storage mechanism for aggregating the results of CollectingRules.
A SwiftSyntax SyntaxVisitor that produces absolute positions where violations should be reported.
Reports violations as a newline-separated string of comma-separated values (CSV).
"},"Structs/CheckstyleReporter.html":{"name":"CheckstyleReporter","abstract":"Reports violations as XML conforming to the Checkstyle specification, as defined here:"},"Structs/CodeClimateReporter.html":{"name":"CodeClimateReporter","abstract":"
Reports violations as a JSON array in Code Climate format.
"},"Structs/EmojiReporter.html":{"name":"EmojiReporter","abstract":"Reports violations in the format that’s both fun and easy to read.
"},"Structs/GitHubActionsLoggingReporter.html":{"name":"GitHubActionsLoggingReporter","abstract":"Reports violations in the format GitHub-hosted virtual machine for Actions can recognize as messages.
"},"Structs/HTMLReporter.html":{"name":"HTMLReporter","abstract":"Reports violations as HTML.
"},"Structs/JSONReporter.html":{"name":"JSONReporter","abstract":"Reports violations as a JSON array.
"},"Structs/JUnitReporter.html":{"name":"JUnitReporter","abstract":"Reports violations as JUnit XML.
"},"Structs/MarkdownReporter.html":{"name":"MarkdownReporter","abstract":"Reports violations as markdown formated (with tables).
"},"rule-directory.html":{"name":"Rule Directory"},"Rules.html":{"name":"Rules"},"Reporters.html":{"name":"Reporters"},"Guides.html":{"name":"Guides","abstract":"The following guides are available globally.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Global%20Variables.html":{"name":"Global Variables","abstract":"The following global variables are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Extensions.html":{"name":"Extensions","abstract":"The following extensions are available globally.
"},"Functions.html":{"name":"Functions","abstract":"The following functions are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"}} \ No newline at end of file diff --git a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/self_in_property_initialization.html b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/self_in_property_initialization.html index fde89c849..148a0766b 100644 --- a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/self_in_property_initialization.html +++ b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/self_in_property_initialization.html @@ -316,7 +316,7 @@self refers to the unapplied NSObject.self() method, which is likely not expected. Make the variable lazy to be able to refer to the current instance or use ClassName.self.
self refers to the unapplied NSObject.self() method, which is likely not expected; make the variable lazy to be able to refer to the current instance or use ClassName.self
Prefer shorthand operators (+=, -=, *=, /=) over doing the operation and assigning.
+Prefer shorthand operators (+=, -=, *=, /=) over doing the operation and assigning
Imports should be sorted.
+Imports should be sorted
Else and catch should be on the same line, one space after the previous declaration.
+Else and catch should be on the same line, one space after the previous declaration
Operators should be declared as static functions, not free functions.
+Operators should be declared as static functions, not free functions
fileprivate should be avoided.
fileprivate should be avoided
@IBOutlets shouldn’t be declared as weak.
+@IBOutlets shouldn’t be declared as weak
Test cases should only contain private non-test members.
+Test cases should only contain private non-test members
Prefer someBool.toggle() over someBool = !someBool.
Prefer someBool.toggle() over someBool = !someBool
Trailing closure syntax should be used whenever possible.
+Trailing closure syntax should be used whenever possible
Files should have a single trailing newline.
+Files should have a single trailing newline
Lines should not have trailing semicolons.
+Lines should not have trailing semicolons
Lines should not have trailing whitespace.
+Lines should not have trailing whitespace
Type bodies should not span too many lines.
+Type bodies should not span too many lines
Prefer using Array(seq) over seq.map { $0 } to convert a sequence into an Array.
Prefer using Array(seq) over seq.map { $0 } to convert a sequence into an Array
Unimplemented functions should be marked as unavailable.
+Unimplemented functions should be marked as unavailable
Avoid using unneeded break statements.
+Avoid using unneeded break statements
Parentheses are not needed when declaring closure arguments.
+Parentheses are not needed when declaring closure arguments
Prefer capturing references as weak to avoid potential crashes.
+Prefer capturing references as weak to avoid potential crashes
Catch statements should not declare error variables without type casting.
+Catch statements should not declare error variables without type casting
Unused reference in a capture list should be removed.
+Unused reference in a capture list should be removed
Unused parameter in a closure should be replaced with _.
+Unused parameter in a closure should be replaced with _
Unused control flow label should be removed.
+Unused control flow label should be removed
Declarations should be referenced at least once within all files linted.
+Declarations should be referenced at least once within all files linted
All imported modules should be required to make the file compile.
+All imported modules should be required to make the file compile
Setter value is not used.
+Setter value is not used
Function parameters should be aligned vertically if they’re in multiple lines in a declaration.
+Function parameters should be aligned vertically if they’re in multiple lines in a declaration
Function parameters should be aligned vertically if they’re in multiple lines in a method call.
+Function parameters should be aligned vertically if they’re in multiple lines in a method call
Include a single empty line between switch cases.
+Include a single empty line between switch cases
Don’t include vertical whitespace (empty line) before closing braces.
+Don’t include vertical whitespace (empty line) before closing braces
foo(
- x: 5,
- y:6
-)
+func foo() {
+ run(5) { x in
+ print(x)
+ }
+}
+
+do {
+ print("x is 5")
+}
+
+do {
+ print("x is 5")
+}
print([
1
])
+foo(
+ x: 5,
+ y:6
+)
+
print([foo {
var sum = 0
for i in 1...5 { sum += i }
@@ -358,20 +372,6 @@
print("x is 5")
}
-do {
- print("x is 5")
-}
-
-do {
- print("x is 5")
-}
-
-func foo() {
- run(5) { x in
- print(x)
- }
-}
-
[1, 2].map { $0 }.filter { true }
[1, 2].map { $0 }.filter { num in true }
@@ -406,17 +406,35 @@
↓
]
-foo(
- x: 5,
- y:6
+func foo() {
+ run(5) { x in
+ print(x)
+ }
↓
-)
+}
+
+do {
+ print("x is 5")
+↓
+}
+
+do {
+ print("x is 5")
+↓
+
+}
print([
1
↓
])
+foo(
+ x: 5,
+ y:6
+↓
+)
+
print([foo {
var sum = 0
for i in 1...5 { sum += i }
@@ -432,25 +450,7 @@
do {
print("x is 5")
↓
-}
-
-do {
- print("x is 5")
-↓
-}
-
-do {
- print("x is 5")
-↓
-
-}
-
-func foo() {
- run(5) { x in
- print(x)
- }
-↓
}
diff --git a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/vertical_whitespace_opening_braces.html b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/vertical_whitespace_opening_braces.html
index d64253837..36ee6b4f3 100644
--- a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/vertical_whitespace_opening_braces.html
+++ b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/vertical_whitespace_opening_braces.html
@@ -316,7 +316,7 @@
Vertical Whitespace after Opening Braces
-Don’t include vertical whitespace (empty line) after opening braces.
+Don’t include vertical whitespace (empty line) after opening braces
- Identifier: vertical_whitespace_opening_braces
diff --git a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/void_function_in_ternary.html b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/void_function_in_ternary.html
index 2a46d9601..050e07a2c 100644
--- a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/void_function_in_ternary.html
+++ b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/void_function_in_ternary.html
@@ -316,7 +316,7 @@
Void Function in Ternary
-Using ternary to call Void functions should be avoided.
+Using ternary to call Void functions should be avoided
- Identifier: void_function_in_ternary
diff --git a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/void_return.html b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/void_return.html
index e0851924d..a7fca5d7d 100644
--- a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/void_return.html
+++ b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/void_return.html
@@ -316,7 +316,7 @@
Void Return
-Prefer -> Void over -> ().
+Prefer -> Void over -> ()
- Identifier: void_return
diff --git a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/weak_delegate.html b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/weak_delegate.html
index 946c7003a..5e2dd45d6 100644
--- a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/weak_delegate.html
+++ b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/weak_delegate.html
@@ -316,7 +316,7 @@
Weak Delegate
-Delegates should be weak to avoid reference cycles.
+Delegates should be weak to avoid reference cycles
- Identifier: weak_delegate
diff --git a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/xct_specific_matcher.html b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/xct_specific_matcher.html
index 6b5c5337a..21539ccf1 100644
--- a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/xct_specific_matcher.html
+++ b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/xct_specific_matcher.html
@@ -316,7 +316,7 @@
XCTest Specific Matcher
-Prefer specific XCTest matchers over XCTAssertEqual and XCTAssertNotEqual
+Prefer specific XCTest matchers over XCTAssertEqual and XCTAssertNotEqual.
- Identifier: xct_specific_matcher
diff --git a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/xctfail_message.html b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/xctfail_message.html
index 69ca46ef6..2aebb457c 100644
--- a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/xctfail_message.html
+++ b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/xctfail_message.html
@@ -316,7 +316,7 @@
XCTFail Message
-An XCTFail call should include a description of the assertion.
+An XCTFail call should include a description of the assertion
- Identifier: xctfail_message
diff --git a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/yoda_condition.html b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/yoda_condition.html
index 0a6054f17..e2ca1cbcb 100644
--- a/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/yoda_condition.html
+++ b/docsets/SwiftLintFramework.docset/Contents/Resources/Documents/yoda_condition.html
@@ -316,7 +316,7 @@
Yoda Condition
-The constant literal should be placed on the right-hand side of the comparison operator.
+The constant literal should be placed on the right-hand side of the comparison operator
- Identifier: yoda_condition
diff --git a/docsets/SwiftLintFramework.tgz b/docsets/SwiftLintFramework.tgz
index b4919069bccfd1b529a3f7cf6892c50135443d22..eab4204b5669ce12a34d6825e891bc071c18f438 100644
GIT binary patch
literal 480183
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