SwiftLint/Protocols/CorrectableRule.html

592 lines
30 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<title>CorrectableRule Protocol Reference</title>
<link rel="stylesheet" type="text/css" href="../css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="../css/highlight.css" />
<meta charset="utf-8">
<script src="../js/jquery.min.js" defer></script>
<script src="../js/jazzy.js" defer></script>
<script src="../js/lunr.min.js" defer></script>
<script src="../js/typeahead.jquery.js" defer></script>
<script src="../js/jazzy.search.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Protocol/CorrectableRule" class="dashAnchor"></a>
<a title="CorrectableRule Protocol Reference"></a>
<header class="header">
<p class="header-col header-col--primary">
<a class="header-link" href="../index.html">
SwiftLintCore 0.52.2 Docs
</a>
(100% documented)
</p>
<div class="header-col--secondary">
<form role="search" action="../search.json">
<input type="text" placeholder="Search documentation" data-typeahead>
</form>
</div>
<p class="header-col header-col--secondary">
<a class="header-link" href="https://github.com/realm/SwiftLint">
<img class="header-icon" src="../img/gh.png" alt="GitHub"/>
View on GitHub
</a>
</p>
<p class="header-col header-col--secondary">
<a class="header-link" href="dash-feed://https%3A%2F%2Frealm.github.io%2FSwiftLint%2Fdocsets%2FSwiftLintCore.xml">
<img class="header-icon" src="../img/dash.png" alt="Dash"/>
Install in Dash
</a>
</p>
</header>
<p class="breadcrumbs">
<a class="breadcrumb" href="../index.html">SwiftLintCore Reference</a>
<img class="carat" src="../img/carat.png" alt=""/>
CorrectableRule Protocol Reference
</p>
<div class="content-wrapper">
<nav class="navigation">
<ul class="nav-groups">
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Rules.html">Rules</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../rule-directory.html">Rule Directory</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Reporters.html">Reporters</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/CSVReporter.html">CSVReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/CheckstyleReporter.html">CheckstyleReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/CodeClimateReporter.html">CodeClimateReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/EmojiReporter.html">EmojiReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/GitHubActionsLoggingReporter.html">GitHubActionsLoggingReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/HTMLReporter.html">HTMLReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/JSONReporter.html">JSONReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/JUnitReporter.html">JUnitReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/MarkdownReporter.html">MarkdownReporter</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/CustomRuleTimer.html">CustomRuleTimer</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/DeclaredIdentifiersTrackingVisitor.html">DeclaredIdentifiersTrackingVisitor</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/LinterCache.html">LinterCache</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/RuleRegistry.html">RuleRegistry</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/RuleStorage.html">RuleStorage</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/SwiftLintFile.html">SwiftLintFile</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ViolationsSyntaxVisitor.html">ViolationsSyntaxVisitor</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Global%20Variables.html">Global Variables</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Global%20Variables.html#/s:13SwiftLintCore9coreRulesSayAA4Rule_pXpGvp">coreRules</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Global%20Variables.html#/s:13SwiftLintCore13reportersListSayAA8Reporter_pXpGvp">reportersList</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/AccessControlLevel.html">AccessControlLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/ExecutableInfo.html">ExecutableInfo</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/Issue.html">Issue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/RuleIdentifier.html">RuleIdentifier</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/RuleKind.html">RuleKind</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/RuleListError.html">RuleListError</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SwiftExpressionKind.html">SwiftExpressionKind</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/ViolationSeverity.html">ViolationSeverity</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Array.html">Array</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:13SwiftLintCore12reporterFrom10identifierAA8Reporter_pXpSS_tF">reporterFrom(identifier:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ASTRule.html">ASTRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnalyzerRule.html">AnalyzerRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:13SwiftLintCore17AnyCollectingRuleP">AnyCollectingRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/CacheDescriptionProvider.html">CacheDescriptionProvider</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/CollectingRule.html">CollectingRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ConfigurationProviderRule.html">ConfigurationProviderRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/CorrectableRule.html">CorrectableRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:13SwiftLintCore9OptInRuleP">OptInRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/Reporter.html">Reporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/Rule.html">Rule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/RuleConfiguration.html">RuleConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/SeverityBasedRuleConfiguration.html">SeverityBasedRuleConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:13SwiftLintCore17SourceKitFreeRuleP">SourceKitFreeRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/SubstitutionCorrectableASTRule.html">SubstitutionCorrectableASTRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/SubstitutionCorrectableRule.html">SubstitutionCorrectableRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/SwiftSyntaxCorrectableRule.html">SwiftSyntaxCorrectableRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/SwiftSyntaxRule.html">SwiftSyntaxRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ViolationsSyntaxRewriter.html">ViolationsSyntaxRewriter</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/ChildOptionSeverityConfiguration.html">ChildOptionSeverityConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/CollectedLinter.html">CollectedLinter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Command.html">Command</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Command/Action.html"> Action</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Command/Modifier.html"> Modifier</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Configuration.html">Configuration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Correction.html">Correction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Example.html">Example</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/GitLabJUnitReporter.html">GitLabJUnitReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Linter.html">Linter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Location.html">Location</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/ReasonedRuleViolation.html">ReasonedRuleViolation</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/RegexConfiguration.html">RegexConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Region.html">Region</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/RelativePathReporter.html">RelativePathReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/RuleDescription.html">RuleDescription</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/RuleList.html">RuleList</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/RuleListDocumentation.html">RuleListDocumentation</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/RuleParameter.html">RuleParameter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/SeverityConfiguration.html">SeverityConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/SeverityLevelsConfiguration.html">SeverityLevelsConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/SonarQubeReporter.html">SonarQubeReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Stack.html">Stack</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/StyleViolation.html">StyleViolation</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/SummaryReporter.html">SummaryReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/SwiftLintSyntaxMap.html">SwiftLintSyntaxMap</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/SwiftLintSyntaxToken.html">SwiftLintSyntaxToken</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/SwiftVersion.html">SwiftVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Version.html">Version</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/XcodeReporter.html">XcodeReporter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/YamlParser.html">YamlParser</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section class="section">
<div class="section-content top-matter">
<h1>CorrectableRule</h1>
<div class="declaration">
<div class="language">
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">CorrectableRule</span> <span class="p">:</span> <span class="kt"><a href="../Protocols/Rule.html">Rule</a></span></code></pre>
</div>
</div>
<p>A rule that can correct violations.</p>
<div class="slightly-smaller">
<a href="https://github.com/realm/SwiftLint/tree/main/Source/SwiftLintCore/Protocols/Rule.swift#L109-L136">Show on GitHub</a>
</div>
</div>
</section>
<section class="section">
<div class="section-content">
<div class="task-group">
<ul class="item-container">
<li class="item">
<div>
<code>
<a name="/s:13SwiftLintCore15CorrectableRuleP7correct4file17compilerArgumentsSayAA10CorrectionVGAA0aB4FileC_SaySSGtF"></a>
<a name="//apple_ref/swift/Method/correct(file:compilerArguments:)" class="dashAnchor"></a>
<a class="token" href="#/s:13SwiftLintCore15CorrectableRuleP7correct4file17compilerArgumentsSayAA10CorrectionVGAA0aB4FileC_SaySSGtF">correct(file:<wbr>compilerArguments:<wbr>)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Attempts to correct the violations to this rule in the specified file.</p>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">correct</span><span class="p">(</span><span class="nv">file</span><span class="p">:</span> <span class="kt"><a href="../Classes/SwiftLintFile.html">SwiftLintFile</a></span><span class="p">,</span> <span class="nv">compilerArguments</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="p">[</span><span class="kt"><a href="../Structs/Correction.html">Correction</a></span><span class="p">]</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>file</em>
</code>
</td>
<td>
<div>
<p>The file for which to correct violations.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>compilerArguments</em>
</code>
</td>
<td>
<div>
<p>The compiler arguments needed to compile this file.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>All corrections that were applied.</p>
</div>
<div class="slightly-smaller">
<a href="https://github.com/realm/SwiftLint/tree/main/Source/SwiftLintCore/Protocols/Rule.swift#L116">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:13SwiftLintCore15CorrectableRuleP7correct4fileSayAA10CorrectionVGAA0aB4FileC_tF"></a>
<a name="//apple_ref/swift/Method/correct(file:)" class="dashAnchor"></a>
<a class="token" href="#/s:13SwiftLintCore15CorrectableRuleP7correct4fileSayAA10CorrectionVGAA0aB4FileC_tF">correct(file:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Attempts to correct the violations to this rule in the specified file.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">correct</span><span class="p">(</span><span class="nv">file</span><span class="p">:</span> <span class="kt"><a href="../Classes/SwiftLintFile.html">SwiftLintFile</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">[</span><span class="kt"><a href="../Structs/Correction.html">Correction</a></span><span class="p">]</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>file</em>
</code>
</td>
<td>
<div>
<p>The file for which to correct violations.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>All corrections that were applied.</p>
</div>
<div class="slightly-smaller">
<a href="https://github.com/realm/SwiftLint/tree/main/Source/SwiftLintCore/Protocols/Rule.swift#L123">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:13SwiftLintCore15CorrectableRuleP7correct4file5using17compilerArgumentsSayAA10CorrectionVGAA0aB4FileC_AA0E7StorageCSaySSGtF"></a>
<a name="//apple_ref/swift/Method/correct(file:using:compilerArguments:)" class="dashAnchor"></a>
<a class="token" href="#/s:13SwiftLintCore15CorrectableRuleP7correct4file5using17compilerArgumentsSayAA10CorrectionVGAA0aB4FileC_AA0E7StorageCSaySSGtF">correct(file:<wbr>using:<wbr>compilerArguments:<wbr>)</a>
</code>
<span class="declaration-note">
Default implementation
</span>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Attempts to correct the violations to this rule in the specified file after collecting file info for all files
and returns all corrections that were applied.</p>
<div class="aside aside-note">
<p class="aside-title">Note</p>
<p>This function is called by the linter and is always implemented in extensions.</p>
</div>
</div>
<h4>Default Implementation</h4>
<div class="default_impl abstract">
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">correct</span><span class="p">(</span><span class="nv">file</span><span class="p">:</span> <span class="kt"><a href="../Classes/SwiftLintFile.html">SwiftLintFile</a></span><span class="p">,</span> <span class="n">using</span> <span class="nv">storage</span><span class="p">:</span> <span class="kt"><a href="../Classes/RuleStorage.html">RuleStorage</a></span><span class="p">,</span> <span class="nv">compilerArguments</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="p">[</span><span class="kt"><a href="../Structs/Correction.html">Correction</a></span><span class="p">]</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>file</em>
</code>
</td>
<td>
<div>
<p>The file for which to execute the rule.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>storage</em>
</code>
</td>
<td>
<div>
<p>The storage object containing all collected info.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>compilerArguments</em>
</code>
</td>
<td>
<div>
<p>The compiler arguments needed to compile this file.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div>
<h4>Return Value</h4>
<p>All corrections that were applied.</p>
</div>
<div class="slightly-smaller">
<a href="https://github.com/realm/SwiftLint/tree/main/Source/SwiftLintCore/Protocols/Rule.swift#L135">Show on GitHub</a>
</div>
</section>
</div>
</li>
</ul>
</div>
</div>
</section>
</article>
</div>
<section class="footer">
<p>© 2023 <a class="link" href="https://jpsim.com" target="_blank" rel="external noopener">JP Simard</a> under MIT.</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.14.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
</section>
</body>
</html>