mirror of
https://github.com/realm/SwiftLint.git
synced 2026-05-07 20:12:49 +00:00
523 lines
30 KiB
HTML
523 lines
30 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<title>Macros 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/Section/Macros" class="dashAnchor"></a>
|
||
|
||
<a title="Macros Reference"></a>
|
||
|
||
<header class="header">
|
||
<p class="header-col header-col--primary">
|
||
<a class="header-link" href="index.html">
|
||
SwiftLintCore 0.59.1 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</a>
|
||
<img class="carat" src="img/carat.png" alt=""/>
|
||
Macros 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="Classes.html">Classes</a>
|
||
<ul class="nav-group-tasks">
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Classes/BodyLengthVisitor.html">BodyLengthVisitor</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Classes/CodeBlockVisitor.html">CodeBlockVisitor</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Classes/CodeIndentingRewriter.html">CodeIndentingRewriter</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Classes/CodeIndentingRewriter/IndentationStyle.html">– IndentationStyle</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/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/ViolationsSyntaxRewriter.html">ViolationsSyntaxRewriter</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="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/CurrentRule.html">CurrentRule</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Enums/IdentifierDeclaration.html">IdentifierDeclaration</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/OptionType.html">OptionType</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/SwiftSyntaxKindBridge.html">SwiftSyntaxKindBridge</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>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Extensions/Bool.html">Bool</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Extensions/Double.html">Double</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Extensions/Int.html">Int</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Extensions/Optional.html">Optional</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Extensions/Set.html">Set</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Extensions/String.html">String</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/AcceptableByConfigurationElement.html">AcceptableByConfigurationElement</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/ConditionallySourceKitFree.html">ConditionallySourceKitFree</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/Documentable.html">Documentable</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Protocols.html#/s:13SwiftLintCore19InlinableOptionTypeP">InlinableOptionType</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/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/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/VersionComparable.html">VersionComparable</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/Baseline.html">Baseline</a>
|
||
</li>
|
||
<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/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/ConfigurationElement.html">ConfigurationElement</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Structs/ConfigurationElement/DeprecationNotice.html">– DeprecationNotice</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/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/ReasonedRuleViolation/ViolationCorrection.html">– ViolationCorrection</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/RegexConfiguration/ExecutionMode.html">– ExecutionMode</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/RuleConfigurationDescription.html">RuleConfigurationDescription</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Structs.html#/s:13SwiftLintCore35RuleConfigurationDescriptionBuilderV">RuleConfigurationDescriptionBuilder</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Structs/RuleConfigurationOption.html">RuleConfigurationOption</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/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/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/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>
|
||
</ul>
|
||
</li>
|
||
<li class="nav-group-name">
|
||
<a class="nav-group-name-link" href="Macros.html">Macros</a>
|
||
<ul class="nav-group-tasks">
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Macros.html#/s:13SwiftLintCore32AcceptableByConfigurationElementyycfm">AcceptableByConfigurationElement()</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Macros.html#/s:13SwiftLintCore16AutoConfigParseryycfm">AutoConfigParser()</a>
|
||
</li>
|
||
<li class="nav-group-task">
|
||
<a class="nav-group-task-link" href="Macros.html#/s:13SwiftLintCore0A10SyntaxRule15foldExpressions16explicitRewriter11correctable5optInySb_S3btcfm">SwiftSyntaxRule(foldExpressions:explicitRewriter:correctable:optIn:)</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
<article class="main-content">
|
||
|
||
<section class="section">
|
||
<div class="section-content top-matter">
|
||
<h1>Macros</h1>
|
||
<p>The following macros are available globally.</p>
|
||
|
||
</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:13SwiftLintCore16AutoConfigParseryycfm"></a>
|
||
<a name="//apple_ref/swift/Macro/AutoConfigParser()" class="dashAnchor"></a>
|
||
<a class="token" href="#/s:13SwiftLintCore16AutoConfigParseryycfm">AutoConfigParser()</a>
|
||
</code>
|
||
</div>
|
||
<div class="height-container">
|
||
<div class="pointer-container"></div>
|
||
<section class="section">
|
||
<div class="pointer"></div>
|
||
<div class="abstract">
|
||
<p>Macro to be attached to rule configurations. It generates the configuration parsing logic
|
||
automatically based on the defined <code><a href="Structs/ConfigurationElement.html">@ConfigurationElement</a></code>s.</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">@attached</span><span class="p">(</span><span class="n">member</span><span class="p">,</span> <span class="nv">names</span><span class="p">:</span> <span class="nf">named</span><span class="p">(</span><span class="n">apply</span><span class="p">)</span>
|
||
<span class="p">)</span> <span class="kd">public</span> <span class="kd">macro</span> <span class="kt">AutoConfigParser</span><span class="p">()</span> <span class="o">=</span> <span class="k">#externalMacro</span><span class="p">(</span>
|
||
<span class="nv">module</span><span class="p">:</span> <span class="s">"SwiftLintCoreMacros"</span><span class="p">,</span>
|
||
<span class="nv">type</span><span class="p">:</span> <span class="s">"AutoConfigParser"</span>
|
||
<span class="p">)</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="slightly-smaller">
|
||
<a href="https://github.com/realm/SwiftLint/tree/main/Source/SwiftLintCore/Helpers/Macros.swift#L7">Show on GitHub</a>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</li>
|
||
<li class="item">
|
||
<div>
|
||
<code>
|
||
<a name="/s:13SwiftLintCore32AcceptableByConfigurationElementyycfm"></a>
|
||
<a name="//apple_ref/swift/Macro/AcceptableByConfigurationElement()" class="dashAnchor"></a>
|
||
<a class="token" href="#/s:13SwiftLintCore32AcceptableByConfigurationElementyycfm">AcceptableByConfigurationElement()</a>
|
||
</code>
|
||
</div>
|
||
<div class="height-container">
|
||
<div class="pointer-container"></div>
|
||
<section class="section">
|
||
<div class="pointer"></div>
|
||
<div class="abstract">
|
||
<p>Macro that lets an enum with a <code>String</code> raw type automatically conform to <code><a href="Protocols/AcceptableByConfigurationElement.html">AcceptableByConfigurationElement</a></code>.</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">@attached</span><span class="p">(</span><span class="kd">extension</span><span class="p">,</span> <span class="nv">conformances</span><span class="p">:</span> <span class="kt"><a href="Protocols/AcceptableByConfigurationElement.html">AcceptableByConfigurationElement</a></span><span class="p">,</span> <span class="nv">names</span><span class="p">:</span> <span class="nf">named</span><span class="p">(</span><span class="nf">init</span><span class="p">(</span><span class="nv">fromAny</span><span class="p">:</span><span class="nv">context</span><span class="p">:)</span>
|
||
<span class="p">),</span> <span class="nf">named</span><span class="p">(</span><span class="n">asOption</span><span class="p">))</span> <span class="kd">public</span> <span class="kd">macro</span> <span class="kt"><a href="Protocols/AcceptableByConfigurationElement.html">AcceptableByConfigurationElement</a></span><span class="p">()</span> <span class="o">=</span> <span class="k">#externalMacro</span><span class="p">(</span>
|
||
<span class="nv">module</span><span class="p">:</span> <span class="s">"SwiftLintCoreMacros"</span><span class="p">,</span>
|
||
<span class="nv">type</span><span class="p">:</span> <span class="s">"AcceptableByConfigurationElement"</span>
|
||
<span class="p">)</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="slightly-smaller">
|
||
<a href="https://github.com/realm/SwiftLint/tree/main/Source/SwiftLintCore/Helpers/Macros.swift#L29">Show on GitHub</a>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</li>
|
||
<li class="item">
|
||
<div>
|
||
<code>
|
||
<a name="/s:13SwiftLintCore0A10SyntaxRule15foldExpressions16explicitRewriter11correctable5optInySb_S3btcfm"></a>
|
||
<a name="//apple_ref/swift/Macro/SwiftSyntaxRule(foldExpressions:explicitRewriter:correctable:optIn:)" class="dashAnchor"></a>
|
||
<a class="token" href="#/s:13SwiftLintCore0A10SyntaxRule15foldExpressions16explicitRewriter11correctable5optInySb_S3btcfm">SwiftSyntaxRule(foldExpressions:<wbr>explicitRewriter:<wbr>correctable:<wbr>optIn:<wbr>)</a>
|
||
</code>
|
||
</div>
|
||
<div class="height-container">
|
||
<div class="pointer-container"></div>
|
||
<section class="section">
|
||
<div class="pointer"></div>
|
||
<div class="abstract">
|
||
<p>Macro that adds a conformance to the <code><a href="Protocols/SwiftSyntaxRule.html">SwiftSyntaxRule</a></code> protocol and a default <code>makeVisitor(file:)</code> implementation
|
||
that creates a visitor defined in the rule struct.</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">@attached</span><span class="p">(</span><span class="kd">extension</span><span class="p">,</span> <span class="nv">conformances</span><span class="p">:</span> <span class="kt"><a href="Protocols/SwiftSyntaxRule.html">SwiftSyntaxRule</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/SwiftSyntaxCorrectableRule.html">SwiftSyntaxCorrectableRule</a></span><span class="p">,</span> <span class="kt"><a href="Protocols.html#/s:13SwiftLintCore9OptInRuleP">OptInRule</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/Rule.html">Rule</a></span><span class="p">,</span> <span class="nv">names</span><span class="p">:</span> <span class="nf">named</span><span class="p">(</span><span class="nf">makeVisitor</span><span class="p">(</span><span class="nv">file</span><span class="p">:)</span>
|
||
<span class="p">),</span> <span class="nf">named</span><span class="p">(</span><span class="nf">preprocess</span><span class="p">(</span><span class="nv">file</span><span class="p">:)),</span> <span class="nf">named</span><span class="p">(</span><span class="nf">makeRewriter</span><span class="p">(</span><span class="nv">file</span><span class="p">:)))</span> <span class="kd">public</span> <span class="kd">macro</span> <span class="kt"><a href="Protocols/SwiftSyntaxRule.html">SwiftSyntaxRule</a></span><span class="p">(</span><span class="nv">foldExpressions</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span> <span class="nv">explicitRewriter</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span> <span class="nv">correctable</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span> <span class="nv">optIn</span><span class="p">:</span> <span class="kt">Bool</span> <span class="o">=</span> <span class="kc">false</span><span class="p">)</span> <span class="o">=</span> <span class="k">#externalMacro</span><span class="p">(</span>
|
||
<span class="nv">module</span><span class="p">:</span> <span class="s">"SwiftLintCoreMacros"</span><span class="p">,</span>
|
||
<span class="nv">type</span><span class="p">:</span> <span class="s">"SwiftSyntaxRule"</span>
|
||
<span class="p">)</span></code></pre>
|
||
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<h4>Parameters</h4>
|
||
<table class="graybox">
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>
|
||
<em>foldExpressions</em>
|
||
</code>
|
||
</td>
|
||
<td>
|
||
<div>
|
||
<p>Setting it to <code>true</code> adds an implementation of <code>preprocess(file:)</code> which folds expressions
|
||
before they are passed to the visitor.</p>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>
|
||
<em>explicitRewriter</em>
|
||
</code>
|
||
</td>
|
||
<td>
|
||
<div>
|
||
<p>Set it to <code>true</code> to add a <code>makeRewriter(file:)</code> implementation which creates a rewriter
|
||
defined in the rule struct. In this case, the rule automatically conforms to
|
||
<code><a href="Protocols/SwiftSyntaxCorrectableRule.html">SwiftSyntaxCorrectableRule</a></code>.</p>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>
|
||
<em>correctable</em>
|
||
</code>
|
||
</td>
|
||
<td>
|
||
<div>
|
||
<p>Set it to <code>true</code> to make the rule conform to <code><a href="Protocols/SwiftSyntaxCorrectableRule.html">SwiftSyntaxCorrectableRule</a></code> without an explicit
|
||
rewriter.</p>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>
|
||
<em>optIn</em>
|
||
</code>
|
||
</td>
|
||
<td>
|
||
<div>
|
||
<p>Set it to <code>true</code> to make the rule conform to <code><a href="Protocols.html#/s:13SwiftLintCore9OptInRuleP">OptInRule</a></code>.</p>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="slightly-smaller">
|
||
<a href="https://github.com/realm/SwiftLint/tree/main/Source/SwiftLintCore/Helpers/Macros.swift#L63">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.15.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
|
||
</section>
|
||
</body>
|
||
</html>
|