<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>revive</title><link>https://revive.run/</link><description>Recent content on revive</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://revive.run/index.xml" rel="self" type="application/rss+xml"/><item><title>Documentation</title><link>https://revive.run/docs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://revive.run/docs/</guid><description>&lt;p&gt;&lt;a href="https://github.com/mgechev/revive/actions/workflows/test.yaml" rel="external"&gt;&#10;&#10;&#10;&#10;&#10;&#10; &#10;&#10;&#10;&#10; &#10; &#10; &lt;svg xmlns="http://www.w3.org/2000/svg" width="101" height="20"&gt;&#10; &lt;title&gt;Test - passing&lt;/title&gt;&#10; &lt;defs&gt;&#10; &lt;linearGradient id="workflow-fill" x1="50%" y1="0%" x2="50%" y2="100%"&gt;&#10; &lt;stop stop-color="#444D56" offset="0%"&gt;&lt;/stop&gt;&#10; &lt;stop stop-color="#24292E" offset="100%"&gt;&lt;/stop&gt;&#10; &lt;/linearGradient&gt;&#10; &lt;linearGradient id="state-fill" x1="50%" y1="0%" x2="50%" y2="100%"&gt;&#10; &lt;stop stop-color="#34D058" offset="0%"&gt;&lt;/stop&gt;&#10; &lt;stop stop-color="#28A745" offset="100%"&gt;&lt;/stop&gt;&#10; &lt;/linearGradient&gt;&#10; &lt;/defs&gt;&#10; &lt;g fill="none" fill-rule="evenodd"&gt;&#10; &lt;g font-family="&amp;#39;DejaVu Sans&amp;#39;,Verdana,Geneva,sans-serif" font-size="11"&gt;&#10; &lt;path id="workflow-bg" d="M0,3 C0,1.3431 1.3552,0 3.02702703,0 L51,0 L51,20 L3.02702703,20 C1.3552,20 0,18.6569 0,17 L0,3 Z" fill="url(#workflow-fill)" fill-rule="nonzero"&gt;&lt;/path&gt;&#10; &lt;text fill="#010101" fill-opacity=".3"&gt;&#10; &lt;tspan x="22.1981982" y="15" aria-hidden="true"&gt;Test&lt;/tspan&gt;&#10; &lt;/text&gt;&#10; &lt;text fill="#FFFFFF"&gt;&#10; &lt;tspan x="22.1981982" y="14"&gt;Test&lt;/tspan&gt;&#10; &lt;/text&gt;&#10; &lt;/g&gt;&#10; &lt;g transform="translate(51)" font-family="&amp;#39;DejaVu Sans&amp;#39;,Verdana,Geneva,sans-serif" font-size="11"&gt;&#10; &lt;path d="M0 0h46.939C48.629 0 50 1.343 50 3v14c0 1.657-1.37 3-3.061 3H0V0z" id="state-bg" fill="url(#state-fill)" fill-rule="nonzero"&gt;&lt;/path&gt;&#10; &lt;text fill="#010101" fill-opacity=".3" aria-hidden="true"&gt;&#10; &lt;tspan x="4" y="15"&gt;passing&lt;/tspan&gt;&#10; &lt;/text&gt;&#10; &lt;text fill="#FFFFFF"&gt;&#10; &lt;tspan x="4" y="14"&gt;passing&lt;/tspan&gt;&#10; &lt;/text&gt;&#10; &lt;/g&gt;&#10; &lt;path fill="#959DA5" d="M11 3c-3.868 0-7 3.132-7 7a6.996 6.996 0 0 0 4.786 6.641c.35.062.482-.148.482-.332 0-.166-.01-.718-.01-1.304-1.758.324-2.213-.429-2.353-.822-.079-.202-.42-.823-.717-.99-.245-.13-.595-.454-.01-.463.552-.009.946.508 1.077.718.63 1.058 1.636.76 2.039.577.061-.455.245-.761.446-.936-1.557-.175-3.185-.779-3.185-3.456 0-.762.271-1.392.718-1.882-.07-.175-.315-.892.07-1.855 0 0 .586-.183 1.925.718a6.5 6.5 0 0 1 1.75-.236 6.5 6.5 0 0 1 1.75.236c1.338-.91 1.925-.718 1.925-.718.385.963.14 1.68.07 1.855.446.49.717 1.112.717 1.882 0 2.686-1.636 3.28-3.194 3.456.254.219.473.639.473 1.295 0 .936-.009 1.689-.009 1.925 0 .184.131.402.481.332A7.011 7.011 0 0 0 18 10c0-3.867-3.133-7-7-7z"&gt;&lt;/path&gt;&#10; &lt;/g&gt;&#10;&lt;/svg&gt;&#10;&#10;&#10; &#10; &#10;&lt;/a&gt;&#10;&lt;a href="https://pkg.go.dev/github.com/mgechev/revive" rel="external"&gt;&#10;&#10;&#10;&#10;&#10;&#10; &#10;&#10;&#10;&#10; &#10; &#10; &lt;svg width="90" height="20" xmlns="http://www.w3.org/2000/svg"&gt;&lt;g fill="none" fill-rule="evenodd"&gt;&lt;path d="M2 0h26v20H2a2 2 0 01-2-2V2a2 2 0 012-2z" fill="#5C5C5C"/&gt;&lt;path d="M87.99 0H28v20h59.99a2 2 0 002-2V2a2 2 0 00-2-2z" fill="#007D9C"/&gt;&lt;path d="M35.177 14v-2.915c0-.374.072-.682.215-.924.142-.242.324-.423.544-.544.22-.122.444-.182.671-.182.169 0 .303.01.401.027.1.019.19.043.27.072l.165-1.034a.977.977 0 00-.275-.082 2.004 2.004 0 00-.33-.028c-.425 0-.783.093-1.072.28-.29.188-.508.46-.655.82l-.11-.99H34V14h1.177zm5.66.11c.542 0 1.019-.114 1.43-.341.41-.227.714-.543.912-.946l-.935-.44c-.14.257-.322.453-.55.589-.227.135-.52.203-.88.203-.33 0-.616-.073-.858-.22a1.439 1.439 0 01-.56-.649 2.169 2.169 0 01-.177-.655l-.004-.049h4.03c.01-.059.018-.124.025-.196l.008-.112c.008-.117.011-.242.011-.374 0-.484-.1-.918-.302-1.303a2.19 2.19 0 00-.87-.903c-.377-.216-.826-.324-1.347-.324-.528 0-.995.115-1.402.346a2.442 2.442 0 00-.957.99c-.231.43-.347.937-.347 1.524s.116 1.095.347 1.524c.23.429.555.759.973.99.418.23.902.346 1.452.346zm1.302-3.41h-2.895l.02-.115c.016-.068.033-.134.053-.197l.067-.183c.125-.293.303-.513.534-.66.23-.147.508-.22.83-.22.47 0 .829.156 1.078.468.156.194.255.437.296.728l.017.179zM46.32 14V9.424h1.75V8.5h-1.783v-.704c0-.27.064-.476.19-.617l.069-.065c.172-.14.409-.209.71-.209.131 0 .249.013.351.038a.927.927 0 01.275.116l.22-.847a1.06 1.06 0 00-.423-.192 2.516 2.516 0 00-.622-.072c-.293 0-.559.038-.797.115a1.68 1.68 0 00-.61.341c-.17.15-.296.336-.38.556-.085.22-.127.47-.127.748V8.5h-1.034v.924h1.034V14h1.177zm5.1.11c.543 0 1.02-.114 1.43-.341.411-.227.715-.543.913-.946l-.935-.44c-.139.257-.322.453-.55.589-.227.135-.52.203-.88.203-.33 0-.616-.073-.858-.22a1.439 1.439 0 01-.56-.649 2.169 2.169 0 01-.177-.655l-.004-.049h4.03c.01-.059.018-.124.025-.196l.008-.112c.008-.117.011-.242.011-.374 0-.484-.1-.918-.302-1.303a2.19 2.19 0 00-.869-.903c-.378-.216-.827-.324-1.348-.324-.528 0-.995.115-1.402.346a2.442 2.442 0 00-.957.99c-.231.43-.347.937-.347 1.524s.116 1.095.347 1.524c.231.429.555.759.973.99.418.23.902.346 1.452.346zm1.303-3.41h-2.895l.02-.115c.016-.068.033-.134.053-.197l.067-.183c.125-.293.303-.513.534-.66.231-.147.508-.22.83-.22.47 0 .83.156 1.078.468.156.194.255.437.296.728l.017.179zM56.53 14v-2.915c0-.374.072-.682.215-.924.143-.242.324-.423.544-.544.22-.122.444-.182.671-.182.17 0 .303.01.402.027.099.019.189.043.27.072l.164-1.034a.977.977 0 00-.275-.082 2.004 2.004 0 00-.33-.028c-.425 0-.782.093-1.072.28-.29.188-.508.46-.655.82l-.11-.99h-1V14h1.176zm5.66.11c.542 0 1.019-.114 1.43-.341.41-.227.715-.543.913-.946l-.935-.44c-.14.257-.323.453-.55.589-.228.135-.521.203-.88.203-.33 0-.616-.073-.858-.22a1.439 1.439 0 01-.561-.649 2.169 2.169 0 01-.176-.655l-.005-.049h4.03c.01-.059.019-.124.025-.196l.009-.112c.007-.117.01-.242.01-.374 0-.484-.1-.918-.302-1.303a2.19 2.19 0 00-.869-.903c-.377-.216-.827-.324-1.347-.324-.528 0-.996.115-1.403.346a2.442 2.442 0 00-.957.99c-.23.43-.346.937-.346 1.524s.115 1.095.346 1.524c.231.429.556.759.974.99.418.23.902.346 1.452.346zm1.303-3.41h-2.896l.021-.115c.015-.068.032-.134.052-.197l.068-.183c.124-.293.302-.513.533-.66.231-.147.508-.22.83-.22.47 0 .83.156 1.079.468.156.194.254.437.295.728l.018.179zM67.3 14v-2.926c0-.418.075-.752.225-1.001.15-.25.34-.43.567-.545.227-.113.462-.17.704-.17.337 0 .617.104.841.313.224.21.336.585.336 1.128V14h1.177v-3.564c0-.462-.092-.843-.275-1.144a1.74 1.74 0 00-.743-.676 2.387 2.387 0 00-1.05-.226c-.301 0-.585.048-.853.143a1.722 1.722 0 00-.693.457c-.116.125-.217.27-.3.433l-.017.037-.051-.96h-1.045V14H67.3zm8.043.11c.418 0 .788-.068 1.11-.204a2.19 2.19 0 00.81-.572c.215-.245.375-.533.478-.863l-1.067-.363c-.044.227-.127.42-.248.577a1.197 1.197 0 01-.456.364 1.54 1.54 0 01-.65.126c-.322 0-.6-.073-.835-.22a1.397 1.397 0 01-.54-.649c-.124-.286-.186-.634-.186-1.045 0-.418.06-.77.181-1.056.121-.286.299-.504.534-.655.234-.15.517-.225.847-.225.337 0 .61.09.82.27.208.18.36.438.456.775l1.11-.44c-.11-.3-.27-.568-.483-.803a2.148 2.148 0 00-.787-.545c-.312-.128-.687-.192-1.127-.192-.528 0-1 .114-1.414.341a2.386 2.386 0 00-.968.985c-.23.429-.346.94-.346 1.534 0 .594.115 1.105.346 1.534.231.43.556.758.974.985.418.227.898.341 1.44.341zm6.192 0c.543 0 1.02-.114 1.43-.341.411-.227.715-.543.913-.946l-.935-.44c-.139.257-.322.453-.55.589-.227.135-.52.203-.88.203-.33 0-.616-.073-.858-.22a1.439 1.439 0 01-.56-.649 2.169 2.169 0 01-.177-.655l-.004-.049h4.03c.01-.059.018-.124.025-.196l.008-.112c.008-.117.011-.242.011-.374 0-.484-.1-.918-.302-1.303a2.19 2.19 0 00-.87-.903c-.377-.216-.826-.324-1.347-.324-.528 0-.995.115-1.402.346a2.442 2.442 0 00-.957.99c-.231.43-.347.937-.347 1.524s.116 1.095.347 1.524c.23.429.555.759.973.99.418.23.902.346 1.452.346zm1.303-3.41h-2.895l.02-.115c.016-.068.033-.134.053-.197l.067-.183c.125-.293.303-.513.534-.66.23-.147.508-.22.83-.22.47 0 .83.156 1.078.468.156.194.255.437.296.728l.017.179zM6.358 8.736c-.035 0-.043-.017-.026-.044l.184-.236c.018-.026.061-.044.096-.044h3.13c.034 0 .043.026.026.053l-.15.227c-.017.027-.061.053-.087.053l-3.173-.009zm-1.323.806c-.035 0-.044-.017-.026-.043l.184-.237c.017-.026.061-.043.096-.043h3.996c.036 0 .053.026.044.052l-.07.21c-.009.035-.043.053-.079.053l-4.145.009zm2.121.807c-.035 0-.044-.026-.026-.053l.122-.219c.018-.026.053-.052.088-.052h1.753c.035 0 .052.026.052.061l-.017.21c0 .036-.035.062-.062.062l-1.91-.01zm9.097-1.77c-.552.14-.93.245-1.472.385-.132.035-.14.044-.255-.087-.13-.15-.227-.246-.411-.333-.553-.272-1.088-.193-1.587.13-.596.386-.902.956-.893 1.666.008.701.49 1.28 1.182 1.376.597.079 1.095-.131 1.49-.578.08-.097.149-.202.237-.325h-1.691c-.184 0-.228-.114-.167-.263.114-.271.324-.727.447-.955a.236.236 0 01.219-.14h3.19c-.017.237-.017.473-.053.71a3.737 3.737 0 01-.718 1.718c-.631.832-1.455 1.35-2.498 1.489-.858.114-1.656-.052-2.357-.577a2.753 2.753 0 01-1.113-1.947c-.114-.955.167-1.814.745-2.568.622-.814 1.446-1.332 2.454-1.515.823-.15 1.612-.053 2.322.429.465.307.797.727 1.017 1.236.052.078.017.123-.088.149m2.901 4.846c-.798-.018-1.525-.246-2.139-.771a2.749 2.749 0 01-.946-1.692c-.158-.99.114-1.866.71-2.646.64-.842 1.41-1.28 2.454-1.464.894-.157 1.735-.07 2.497.447.693.473 1.122 1.113 1.236 1.954.149 1.183-.192 2.147-1.008 2.971a4.014 4.014 0 01-2.103 1.122c-.237.044-.473.052-.701.08zm2.085-3.54c-.008-.114-.008-.202-.025-.29-.158-.868-.956-1.358-1.788-1.165-.816.183-1.341.7-1.534 1.524a1.444 1.444 0 00.806 1.657c.482.21.964.184 1.429-.052.692-.36 1.069-.92 1.113-1.674h-.001z" fill="#FAFAFA" fill-rule="nonzero"/&gt;&lt;/g&gt;&lt;/svg&gt;&#10; &#10; &#10;&lt;/a&gt;&#10;&lt;a href="https://deepwiki.com/mgechev/revive" rel="external"&gt;&#10;&#10;&#10;&#10;&#10;&#10; &#10;&#10;&#10;&#10; &#10; &#10; &lt;svg xmlns="http://www.w3.org/2000/svg" width="109" height="20" role="img" aria-label="Ask DeepWiki"&gt;&lt;title&gt;Ask DeepWiki&lt;/title&gt;&lt;linearGradient id="s" x2="0" y2="100%"&gt;&lt;stop offset="0" stop-color="#bbb" stop-opacity=".1"/&gt;&lt;stop offset="1" stop-opacity=".1"/&gt;&lt;/linearGradient&gt;&lt;clipPath id="r"&gt;&lt;rect width="109" height="20" rx="3" fill="#fff"/&gt;&lt;/clipPath&gt;&lt;g clip-path="url(#r)"&gt;&lt;rect width="24" height="20" fill="black"/&gt;&lt;rect x="24" width="85" height="20" fill="#007ec6"/&gt;&lt;rect width="109" height="20" fill="url(#s)"/&gt;&lt;/g&gt;&lt;g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"&gt;&lt;image x="5" y="3" width="14" height="14" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAPoAAAD6AG1e1JrAAACIUlEQVRYw+2XP2gUQRTGv7d3JhYWQawkIBaCVWzETos0gmAnVoKNTSoLK0E7EQQrC20sBVFBtLPQRgTBtBaKjYgIQUSxiJq7fT+LvCGPJZdNLt4dQj5Y3u7sznzfzLw/s9IO/icANiniCujEfWdsQgBLxAbsbraPZcmBfcAt4DNwKQsZNfEUsAB8YRV12LfA6ZHuedg7AO7ed/c+UBcbQhbiu+6wXIM6EnZWkszMJe2Ke0n6I2la0v51hFeSMLN6OwIK6jJwEBdUYb2MAxRSz6sY4geiahFgLe1Hwq6YWe3us8AN4FQQU4QM64SPY69Xyr43fADgNjAPXHb3peSsD4FDQ0VLEjAHvIhBPS6AHvA1bBO9JPAXcHFbIRtJ5yzwIQZ9CZwAusDJENIkLqsG8DpNyIZJwSUk9wLHgakcesC1JCCjiHm1kYDNOEjptCxpSVK/8f73OFLxPLAYM3oCzEX7MXf/lJbc/8kWpA4HgQdpYI9IWAbeh83whi84cHXL+58EPBoQhnmm94EzwE3gZ2p/Dhzdbhg+TaRr01x7ftb4/jBwFzjXrCvDpmLW9crVLNeR9CaapoGemb2TdCERW1tNaBNQ8jktwmozqwtpqRNtdWAjARYk39IS12ZWRX7vmJmA71nQZgi36gN7gCvAj5xc3P0jcH7kx7Ik5IC73wsh14GZsZySow5002l4Jr0b6+m4eSyvpAn8lEzsx2QHo8RfUrlN+uPq4ksAAAAASUVORK5CYII="/&gt;&lt;text aria-hidden="true" x="655" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="750"&gt;Ask DeepWiki&lt;/text&gt;&lt;text x="655" y="140" transform="scale(.1)" fill="#fff" textLength="750"&gt;Ask DeepWiki&lt;/text&gt;&lt;/g&gt;&lt;/svg&gt;&#10;&#10; &#10; &#10;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Rules</title><link>https://revive.run/r/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://revive.run/r/</guid><description>&lt;p&gt;This is the complete list of the linting rules provided by &lt;code&gt;revive&lt;/code&gt;,&#10;with their behavior, configuration options, and examples.&lt;/p&gt;&#10;&lt;h2 id="configuration-options-format"&gt;Configuration options format &lt;a href="#configuration-options-format" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;By convention, configuration options are documented using the &lt;code&gt;kebab-case&lt;/code&gt; format (e.g., &lt;code&gt;max-lit-count&lt;/code&gt;, &lt;code&gt;allow-strs&lt;/code&gt;, &lt;code&gt;skip-comments&lt;/code&gt;).&#10;For backward compatibility, &lt;code&gt;camelCase&lt;/code&gt; (e.g., &lt;code&gt;maxLitCount&lt;/code&gt;, &lt;code&gt;allowStrs&lt;/code&gt;, &lt;code&gt;skipComments&lt;/code&gt;)&#10;and &lt;code&gt;lowercase&lt;/code&gt; (e.g., &lt;code&gt;maxlitcount&lt;/code&gt;, &lt;code&gt;allowstrs&lt;/code&gt;, &lt;code&gt;skipcomments&lt;/code&gt;) formats are still supported but are deprecated.&lt;/p&gt;&#10;&lt;h2 id="add-constant"&gt;add-constant &lt;a href="#add-constant" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;em&gt;Go version&lt;/em&gt;: 1.0.&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;Description&lt;/em&gt;: Suggests using constant for &lt;a href="https://en.wikipedia.org/wiki/Magic_number_(programming)#Unnamed_numerical_constants" rel="external"&gt;magic numbers&lt;/a&gt;&#10;and string literals.&lt;/p&gt;</description></item><item><title>Developing a Custom Rule</title><link>https://revive.run/docs/rule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://revive.run/docs/rule/</guid><description>&lt;p&gt;Each rule needs to implement the &lt;code&gt;lint.Rule&lt;/code&gt; interface:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code class="language-go"&gt;type Rule interface {&#10; Name() string&#10; Apply(*File, Arguments) []Failure&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;The &lt;code&gt;Arguments&lt;/code&gt; type is an alias of the type &lt;code&gt;[]interface{}&lt;/code&gt;. The arguments of the rule are passed from the configuration file.&lt;/p&gt;&#10;&lt;h2 id="example"&gt;Example &lt;a href="#example" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Let us develop a rule called &lt;code&gt;ArgumentsLimitRule&lt;/code&gt; which sets a restriction on the number of arguments that a function may accept. As we explained above, our rule needs to implement the &lt;code&gt;Rule&lt;/code&gt; interface:&lt;/p&gt;</description></item><item><title>Developing a Custom Formatter</title><link>https://revive.run/docs/formatter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://revive.run/docs/formatter/</guid><description>&lt;p&gt;Each formatter needs to implement the following interface:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code class="language-go"&gt;type Formatter interface {&#10; Format(&amp;lt;-chan Failure, RulesConfig) (string, error)&#10; Name() string&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;The &lt;code&gt;Format&lt;/code&gt; method accepts a channel of &lt;code&gt;Failure&lt;/code&gt; instances and the configuration of the enabled rules. The &lt;code&gt;Name()&lt;/code&gt; method should return a string different from the names of the already existing rules. This string is used when specifying the formatter when invoking the &lt;code&gt;revive&lt;/code&gt; CLI tool.&lt;/p&gt;&#10;&lt;h2 id="example"&gt;Example &lt;a href="#example" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Let us implement a sample formatter which outputs the rule failures to plain text.&lt;/p&gt;</description></item><item><title>API</title><link>https://revive.run/docs/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://revive.run/docs/api/</guid><description/></item></channel></rss>