CINXE.COM

<!doctype html> <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-1.22.0 docs-doc-page docs-doc-id-rules/comments" data-has-hydrated="false"> <head> <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v3.7.0"> <title data-rh="true">Comments Rule Set | detekt</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://detekt.dev/docs/1.22.0/rules/comments"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="1.22.0"><meta data-rh="true" name="docusaurus_tag" content="docs-default-1.22.0"><meta data-rh="true" name="docsearch:version" content="1.22.0"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-1.22.0"><meta data-rh="true" property="og:title" content="Comments Rule Set | detekt"><meta data-rh="true" name="description" content="This rule set provides rules that address issues in comments and documentation"><meta data-rh="true" property="og:description" content="This rule set provides rules that address issues in comments and documentation"><meta data-rh="true" name="keywords" content="rules,comments"><link data-rh="true" rel="icon" href="/img/favicon.svg"><link data-rh="true" rel="canonical" href="https://detekt.dev/docs/1.22.0/rules/comments"><link data-rh="true" rel="alternate" href="https://detekt.dev/docs/1.22.0/rules/comments" hreflang="en"><link data-rh="true" rel="alternate" href="https://detekt.dev/docs/1.22.0/rules/comments" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://5PZNXB7M3G-dsn.algolia.net" crossorigin="anonymous"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="detekt RSS Feed"> <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="detekt Atom Feed"> <link rel="search" type="application/opensearchdescription+xml" title="detekt" href="/opensearch.xml"><link rel="stylesheet" href="/assets/css/styles.80918a2e.css"> <script src="/assets/js/runtime~main.d365f883.js" defer="defer"></script> <script src="/assets/js/main.b5fbed7b.js" defer="defer"></script> </head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/favicon.svg"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/favicon.svg" alt="detekt logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/favicon.svg" alt="detekt logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">detekt</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/1.22.0/intro">Docs</a><a class="navbar__item navbar__link" href="/blog">Blog</a><a href="https://detekt.dev/kdoc/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">APIs</a><a class="navbar__item navbar__link" href="/marketplace">Marketplace</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/docs/1.22.0/rules/comments">1.22.0</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/next/rules/comments">Next</a></li><li><a class="dropdown__link" href="/docs/rules/comments">1.23.8</a></li><li><a class="dropdown__link" href="/docs/1.23.7/rules/comments">1.23.7</a></li><li><a class="dropdown__link" href="/docs/1.23.6/rules/comments">1.23.6</a></li><li><a class="dropdown__link" href="/docs/1.23.5/rules/comments">1.23.5</a></li><li><a class="dropdown__link" href="/docs/1.23.4/rules/comments">1.23.4</a></li><li><a class="dropdown__link" href="/docs/1.23.3/rules/comments">1.23.3</a></li><li><a class="dropdown__link" href="/docs/1.23.1/rules/comments">1.23.1</a></li><li><a class="dropdown__link" href="/docs/1.23.0/rules/comments">1.23.0</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/docs/1.22.0/rules/comments">1.22.0</a></li><li><a class="dropdown__link" href="/docs/1.21.0/rules/comments">1.21.0</a></li><li><a class="dropdown__link" href="/changelog">All changelogs</a></li></ul></div><a href="https://github.com/detekt/detekt" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite" aria-pressed="false"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/1.22.0/intro">Welcome</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/1.22.0/introduction/configurations">Introduction</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/1.22.0/gettingstarted/cli">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/docs/1.22.0/rules/comments">Rules Documentation</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/1.22.0/rules/comments">Comments Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/complexity">Complexity Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/coroutines">Coroutines Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/empty-blocks">Empty-blocks Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/exceptions">Exceptions Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/formatting">Formatting Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/libraries">Libraries Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/naming">Naming Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/performance">Performance Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/potential-bugs">Potential-bugs Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/ruleauthors">Ruleauthors Rule Set</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/1.22.0/rules/style">Style Rule Set</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/changelog">Changelogs</a></div></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="theme-doc-version-banner alert alert--warning margin-bottom--md" role="alert"><div>This is documentation for <!-- -->detekt<!-- --> <b>1.22.0</b>, which is no longer actively maintained.</div><div class="margin-top--md">For up-to-date documentation, see the <b><a href="/docs/rules/comments">latest version</a></b> (<!-- -->1.23.8<!-- -->).</div></div><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Rules Documentation</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Comments Rule Set</span><meta itemprop="position" content="2"></li></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: 1.22.0</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Comments Rule Set</h1></header><p>This rule set provides rules that address issues in comments and documentation of the code.</p> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="absentorwrongfilelicense">AbsentOrWrongFileLicense<a href="#absentorwrongfilelicense" class="hash-link" aria-label="Direct link to AbsentOrWrongFileLicense" title="Direct link to AbsentOrWrongFileLicense">​</a></h3> <p>This rule will report every Kotlin source file which doesn&#x27;t have the required license header. The rule validates each Kotlin source and operates in two modes: if <code>licenseTemplateIsRegex = false</code> (or missing) the rule checks whether the input file header starts with the read text from the passed file in the <code>licenseTemplateFile</code> configuration option. If <code>licenseTemplateIsRegex = true</code> the rule matches the header with a regular expression produced from the passed template license file (defined via <code>licenseTemplateFile</code> configuration option).</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 5min</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="configuration-options">Configuration options:<a href="#configuration-options" class="hash-link" aria-label="Direct link to Configuration options:" title="Direct link to Configuration options:">​</a></h4> <ul> <li> <p><code>licenseTemplateFile</code> (default: <code>&#x27;license.template&#x27;</code>)</p> <p>path to file with license header template resolved relatively to config file</p> </li> <li> <p><code>licenseTemplateIsRegex</code> (default: <code>false</code>)</p> <p>whether or not the license header template is a regex template</p> </li> </ul> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="commentoverprivatefunction">CommentOverPrivateFunction<a href="#commentoverprivatefunction" class="hash-link" aria-label="Direct link to CommentOverPrivateFunction" title="Direct link to CommentOverPrivateFunction">​</a></h3> <p>This rule reports comments and documentation that has been added to private functions. These comments get reported because they probably explain the functionality of the private function. However, private functions should be small enough and have an understandable name so that they are self-explanatory and do not need this comment in the first place.</p> <p>Instead of simply removing this comment to solve this issue prefer to split up the function into smaller functions with better names if necessary. Giving the function a better, more descriptive name can also help in solving this issue.</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 20min</p> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="commentoverprivateproperty">CommentOverPrivateProperty<a href="#commentoverprivateproperty" class="hash-link" aria-label="Direct link to CommentOverPrivateProperty" title="Direct link to CommentOverPrivateProperty">​</a></h3> <p>This rule reports comments and documentation above private properties. This can indicate that the property has a confusing name or is not in a small enough context to be understood. Private properties should be named in a self-explanatory way and readers of the code should be able to understand why the property exists and what purpose it solves without the comment.</p> <p>Instead of simply removing the comment to solve this issue, prefer renaming the property to a more self-explanatory name. If this property is inside a bigger class, it makes sense to refactor and split up the class. This can increase readability and make the documentation obsolete.</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 20min</p> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="deprecatedblocktag">DeprecatedBlockTag<a href="#deprecatedblocktag" class="hash-link" aria-label="Direct link to DeprecatedBlockTag" title="Direct link to DeprecatedBlockTag">​</a></h3> <p>This rule reports use of the <code>@deprecated</code> block tag in KDoc comments. Deprecation must be specified using a <code>@Deprecated</code> annotation as adding a <code>@deprecated</code> block tag in KDoc comments <a href="https://kotlinlang.org/docs/kotlin-doc.html#suppress" target="_blank" rel="noopener noreferrer">has no effect and is not supported</a>. The <code>@Deprecated</code> annotation constructor has dedicated fields for a message and a type (warning, error, etc.). You can also use the <code>@ReplaceWith</code> annotation to specify how to solve the deprecation automatically via the IDE.</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 5min</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="noncompliant-code">Noncompliant Code:<a href="#noncompliant-code" class="hash-link" aria-label="Direct link to Noncompliant Code:" title="Direct link to Noncompliant Code:">​</a></h4> <div class="language-kotlin codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-kotlin codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">/**</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* This function prints a message followed by a new line.</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">*</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @deprecated Useless, the Kotlin standard library can already do this. Replace with println.</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">*/</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">printThenNewline</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">what</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="compliant-code">Compliant Code:<a href="#compliant-code" class="hash-link" aria-label="Direct link to Compliant Code:" title="Direct link to Compliant Code:">​</a></h4> <div class="language-kotlin codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-kotlin codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">/**</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* This function prints a message followed by a new line.</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">*/</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token annotation builtin">@Deprecated</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;Useless, the Kotlin standard library can already do this.&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token annotation builtin">@ReplaceWith</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;println(what)&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">printThenNewline</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">what</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="endofsentenceformat">EndOfSentenceFormat<a href="#endofsentenceformat" class="hash-link" aria-label="Direct link to EndOfSentenceFormat" title="Direct link to EndOfSentenceFormat">​</a></h3> <p>This rule validates the end of the first sentence of a KDoc comment. It should end with proper punctuation or with a correct URL.</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 5min</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="configuration-options-1">Configuration options:<a href="#configuration-options-1" class="hash-link" aria-label="Direct link to Configuration options:" title="Direct link to Configuration options:">​</a></h4> <ul> <li> <p><code>endOfSentenceFormat</code> (default: <code>&#x27;([.?!][ \t\n\r\f&lt;])|([.?!:]$)&#x27;</code>)</p> <p>regular expression which should match the end of the first sentence in the KDoc</p> </li> </ul> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="kdocreferencesnonpublicproperty">KDocReferencesNonPublicProperty<a href="#kdocreferencesnonpublicproperty" class="hash-link" aria-label="Direct link to KDocReferencesNonPublicProperty" title="Direct link to KDocReferencesNonPublicProperty">​</a></h3> <p>This rule will report any KDoc comments that refer to non-public properties of a class. Clients do not need to know the implementation details.</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 5min</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="noncompliant-code-1">Noncompliant Code:<a href="#noncompliant-code-1" class="hash-link" aria-label="Direct link to Noncompliant Code:" title="Direct link to Noncompliant Code:">​</a></h4> <div class="language-kotlin codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-kotlin codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">/**</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* Comment</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* [prop1] - non-public property</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* [prop2] - public property</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">*/</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> Test </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> prop1 </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> prop2 </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="compliant-code-1">Compliant Code:<a href="#compliant-code-1" class="hash-link" aria-label="Direct link to Compliant Code:" title="Direct link to Compliant Code:">​</a></h4> <div class="language-kotlin codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-kotlin codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">/**</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* Comment</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* [prop2] - public property</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">*/</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> Test </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> prop1 </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> prop2 </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="outdateddocumentation">OutdatedDocumentation<a href="#outdateddocumentation" class="hash-link" aria-label="Direct link to OutdatedDocumentation" title="Direct link to OutdatedDocumentation">​</a></h3> <p>This rule will report any class, function or constructor with KDoc that does not match the declaration signature. If KDoc is not present or does not contain any @param or @property tags, rule violation will not be reported. By default, both type and value parameters need to be matched and declarations orders must be preserved. You can turn off these features using configuration options.</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 10min</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="configuration-options-2">Configuration options:<a href="#configuration-options-2" class="hash-link" aria-label="Direct link to Configuration options:" title="Direct link to Configuration options:">​</a></h4> <ul> <li> <p><code>matchTypeParameters</code> (default: <code>true</code>)</p> <p>if type parameters should be matched</p> </li> <li> <p><code>matchDeclarationsOrder</code> (default: <code>true</code>)</p> <p>if the order of declarations should be preserved</p> </li> <li> <p><code>allowParamOnConstructorProperties</code> (default: <code>false</code>)</p> <p>if we allow constructor parameters to be marked as @param instead of @property</p> </li> </ul> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="noncompliant-code-2">Noncompliant Code:<a href="#noncompliant-code-2" class="hash-link" aria-label="Direct link to Noncompliant Code:" title="Direct link to Noncompliant Code:">​</a></h4> <div class="language-kotlin codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-kotlin codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">/**</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @param someParam</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @property someProp</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">*/</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">MyClass</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">otherParam</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> otherProp</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">/**</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @param T</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @param someParam</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">*/</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">T</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> S</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">myFun</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">someParam</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="compliant-code-2">Compliant Code:<a href="#compliant-code-2" class="hash-link" aria-label="Direct link to Compliant Code:" title="Direct link to Compliant Code:">​</a></h4> <div class="language-kotlin codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-kotlin codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">/**</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @param someParam</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @property someProp</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">*/</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">MyClass</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">someParam</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> someProp</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">/**</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @param T</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @param S</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">* @param someParam</span><br></span><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">*/</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">T</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> S</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">myFun</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">someParam</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="undocumentedpublicclass">UndocumentedPublicClass<a href="#undocumentedpublicclass" class="hash-link" aria-label="Direct link to UndocumentedPublicClass" title="Direct link to UndocumentedPublicClass">​</a></h3> <p>This rule reports public classes, objects and interfaces which do not have the required documentation. Enable this rule if the codebase should have documentation on every public class, interface and object.</p> <p>By default, this rule also searches for nested and inner classes and objects. This default behavior can be changed with the configuration options of this rule.</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 20min</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="configuration-options-3">Configuration options:<a href="#configuration-options-3" class="hash-link" aria-label="Direct link to Configuration options:" title="Direct link to Configuration options:">​</a></h4> <ul> <li> <p><code>searchInNestedClass</code> (default: <code>true</code>)</p> <p>if nested classes should be searched</p> </li> <li> <p><code>searchInInnerClass</code> (default: <code>true</code>)</p> <p>if inner classes should be searched</p> </li> <li> <p><code>searchInInnerObject</code> (default: <code>true</code>)</p> <p>if inner objects should be searched</p> </li> <li> <p><code>searchInInnerInterface</code> (default: <code>true</code>)</p> <p>if inner interfaces should be searched</p> </li> <li> <p><code>searchInProtectedClass</code> (default: <code>false</code>)</p> <p>if protected classes should be searched</p> </li> </ul> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="undocumentedpublicfunction">UndocumentedPublicFunction<a href="#undocumentedpublicfunction" class="hash-link" aria-label="Direct link to UndocumentedPublicFunction" title="Direct link to UndocumentedPublicFunction">​</a></h3> <p>This rule will report any public function which does not have the required documentation. If the codebase should have documentation on all public functions enable this rule to enforce this. Overridden functions are excluded by this rule.</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 20min</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="configuration-options-4">Configuration options:<a href="#configuration-options-4" class="hash-link" aria-label="Direct link to Configuration options:" title="Direct link to Configuration options:">​</a></h4> <ul> <li> <p><code>searchProtectedFunction</code> (default: <code>false</code>)</p> <p>if protected functions should be searched</p> </li> </ul> <h3 class="anchor anchorWithStickyNavbar_LWe7" id="undocumentedpublicproperty">UndocumentedPublicProperty<a href="#undocumentedpublicproperty" class="hash-link" aria-label="Direct link to UndocumentedPublicProperty" title="Direct link to UndocumentedPublicProperty">​</a></h3> <p>This rule will report any public property which does not have the required documentation. This also includes public properties defined in a primary constructor. If the codebase should have documentation on all public properties enable this rule to enforce this. Overridden properties are excluded by this rule.</p> <p><strong>Active by default</strong>: No</p> <p><strong>Debt</strong>: 20min</p> <h4 class="anchor anchorWithStickyNavbar_LWe7" id="configuration-options-5">Configuration options:<a href="#configuration-options-5" class="hash-link" aria-label="Direct link to Configuration options:" title="Direct link to Configuration options:">​</a></h4> <ul> <li> <p><code>searchProtectedProperty</code> (default: <code>false</code>)</p> <p>if protected functions should be searched</p> </li> </ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/detekt/detekt/edit/main/website/versioned_docs/version-1.22.0/rules/comments.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/1.22.0/gettingstarted/git-pre-commit-hook"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Run detekt using a Git pre-commit hook</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/1.22.0/rules/complexity"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Complexity Rule Set</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#absentorwrongfilelicense" class="table-of-contents__link toc-highlight">AbsentOrWrongFileLicense</a></li><li><a href="#commentoverprivatefunction" class="table-of-contents__link toc-highlight">CommentOverPrivateFunction</a></li><li><a href="#commentoverprivateproperty" class="table-of-contents__link toc-highlight">CommentOverPrivateProperty</a></li><li><a href="#deprecatedblocktag" class="table-of-contents__link toc-highlight">DeprecatedBlockTag</a></li><li><a href="#endofsentenceformat" class="table-of-contents__link toc-highlight">EndOfSentenceFormat</a></li><li><a href="#kdocreferencesnonpublicproperty" class="table-of-contents__link toc-highlight">KDocReferencesNonPublicProperty</a></li><li><a href="#outdateddocumentation" class="table-of-contents__link toc-highlight">OutdatedDocumentation</a></li><li><a href="#undocumentedpublicclass" class="table-of-contents__link toc-highlight">UndocumentedPublicClass</a></li><li><a href="#undocumentedpublicfunction" class="table-of-contents__link toc-highlight">UndocumentedPublicFunction</a></li><li><a href="#undocumentedpublicproperty" class="table-of-contents__link toc-highlight">UndocumentedPublicProperty</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/gettingstarted/gradle">Getting Started with Gradle</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/gettingstarted/cli">Getting Started with the CLI</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/rules/comments">Rules Documentation</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://kotlinlang.slack.com/archives/C88E12QH4" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://stackoverflow.com/questions/tagged/detekt" target="_blank" rel="noopener noreferrer" class="footer__link-item">Stack Overflow<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a href="https://github.com/detekt/detekt" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://detekt.dev/kdoc" target="_blank" rel="noopener noreferrer" class="footer__link-item">KDoc<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2025 detekt team - Built with Docusaurus.</div></div></div></footer></div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10