CINXE.COM
<!doctype html> <html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default" data-has-hydrated="false"> <head> <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v3.7.0"> <title data-rh="true">Calling it One Zero | 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/blog/2019/08/04/calling-it-one-zero"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Calling it One Zero | detekt"><meta data-rh="true" name="description" content="Today we are announcing the 1.0 release of detekt, a static code analysis tool for Kotlin."><meta data-rh="true" property="og:description" content="Today we are announcing the 1.0 release of detekt, a static code analysis tool for Kotlin."><meta data-rh="true" property="og:type" content="article"><meta data-rh="true" property="article:published_time" content="2019-08-04T00:00:00.000Z"><meta data-rh="true" property="article:tag" content="news"><link data-rh="true" rel="icon" href="/img/favicon.svg"><link data-rh="true" rel="canonical" href="https://detekt.dev/blog/2019/08/04/calling-it-one-zero"><link data-rh="true" rel="alternate" href="https://detekt.dev/blog/2019/08/04/calling-it-one-zero" hreflang="en"><link data-rh="true" rel="alternate" href="https://detekt.dev/blog/2019/08/04/calling-it-one-zero" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://5PZNXB7M3G-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","@id":"https://detekt.dev/blog/2019/08/04/calling-it-one-zero","mainEntityOfPage":"https://detekt.dev/blog/2019/08/04/calling-it-one-zero","url":"https://detekt.dev/blog/2019/08/04/calling-it-one-zero","headline":"Calling it One Zero","name":"Calling it One Zero","description":"Today we are announcing the 1.0 release of detekt, a static code analysis tool for Kotlin.","datePublished":"2019-08-04T00:00:00.000Z","author":[],"keywords":[],"isPartOf":{"@type":"Blog","@id":"https://detekt.dev/blog","name":"Blog"}}</script><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.49574ca9.js" defer="defer"></script> <script src="/assets/js/main.8ff3ed71.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 class="navbar__item navbar__link" href="/docs/intro">Docs</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" 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/intro">1.23.8</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/next/intro">Next</a></li><li><a class="dropdown__link" href="/docs/intro">1.23.8</a></li><li><a class="dropdown__link" href="/docs/1.23.7/intro">1.23.7</a></li><li><a class="dropdown__link" href="/docs/1.23.6/intro">1.23.6</a></li><li><a class="dropdown__link" href="/docs/1.23.5/intro">1.23.5</a></li><li><a class="dropdown__link" href="/docs/1.23.4/intro">1.23.4</a></li><li><a class="dropdown__link" href="/docs/1.23.3/intro">1.23.3</a></li><li><a class="dropdown__link" href="/docs/1.23.1/intro">1.23.1</a></li><li><a class="dropdown__link" href="/docs/1.23.0/intro">1.23.0</a></li><li><a class="dropdown__link" href="/docs/1.22.0/intro">1.22.0</a></li><li><a class="dropdown__link" href="/docs/1.21.0/intro">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="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_re4s thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_pO2u margin-bottom--md">Recent posts</div><div role="group"><h3 class="yearGroupHeading_rMGB">2020</h3><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2020/09/27/additional-diff-config-task">Recipe: diff your detekt config with the default one</a></li></ul></div><div role="group"><h3 class="yearGroupHeading_rMGB">2019</h3><ul class="sidebarItemList_Yudw clean-list"><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2019/08/14/custom-console-reports">Howto: make detekt silent</a></li><li class="sidebarItem__DBe"><a aria-current="page" class="sidebarItemLink_mo7H sidebarItemLinkActive_I1ZP" href="/blog/2019/08/04/calling-it-one-zero">Calling it One Zero</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2019/06/29/using-detekt-snapshots">Howto: using snapshot releases of detekt</a></li><li class="sidebarItem__DBe"><a class="sidebarItemLink_mo7H" href="/blog/2019/06/08/migrating-the-test-pattern">Howto: migrating from the *test-pattern*</a></li></ul></div></nav></aside><main class="col col--7"><article class=""><header><h1 class="title_f1Hy">Calling it One Zero</h1><div class="container_mt6G margin-vert--md"><time datetime="2019-08-04T00:00:00.000Z">August 4, 2019</time> 路 <!-- -->3 min read</div></header><div id="__blog-post-container" class="markdown"><p>Today we are announcing the <strong>1.0</strong> release of detekt, a static code analysis tool for Kotlin. It operates on the abstract syntax tree provided by the Kotlin compiler and finds common programming flaws like unused or too complex constructs. Think of it as <em>pmd</em> or <em>checkstyle</em> but for Kotlin.</p> <p><strong>1.0</strong> offers the following features:</p> <ul> <li>Code smell analysis for your Kotlin projects</li> <li>Complexity reports based on lines of code, cyclomatic complexity and amount of code smells</li> <li>Highly configurable rule sets</li> <li>Suppression of findings with Kotlin's <code>@Suppress</code> and Java's <code>@SuppressWarnings</code> annotations</li> <li>Specification of quality gates which will break your build</li> <li>Code Smell baseline for legacy projects</li> <li><a href="/docs/gettingstarted/gradle">Gradle plugin</a> for code analysis via Gradle builds</li> <li>Gradle tasks to use local <code>IntelliJ</code> distribution for formatting and inspecting Kotlin code</li> <li><a href="https://github.com/arturbosch/sonar-kotlin" target="_blank" rel="noopener noreferrer">SonarQube integration</a></li> <li>Extensibility by enabling incorporation of personal rule sets, <code>FileProcessListener's</code> and <code>OutputReport's</code></li> <li><a href="https://github.com/detekt/detekt-intellij-plugin" target="_blank" rel="noopener noreferrer">IntelliJ integration</a></li> <li>Unofficial <a href="https://github.com/Ozsie/detekt-maven-plugin" target="_blank" rel="noopener noreferrer">Maven plugin</a> by <a href="https://github.com/Ozsie" target="_blank" rel="noopener noreferrer">Ozsie</a></li> </ul> <p>Here are some metrics describing detekt's lifespan so far:</p> <p><img decoding="async" loading="lazy" alt="lifespan" src="/assets/images/1-lifespan-b89210c1bdb421987179e6da2646ff37.png" width="816" height="323" class="img_ev3q"></p> <p>detekt is almost <strong>3</strong> years old already!<br> <!-- -->As GitHub tells us the project is pretty active.<br> <!-- -->You may argue that in 2018 it was more active looking at the number of commits, however that year we also changed our merge strategy from merge-with-rebase to squash-and-merge. That said, it is much harder to achieve these high commit numbers now ;).</p> <p><img decoding="async" loading="lazy" alt="numbers" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDoAAABMCAIAAAADe0AhAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4Xu2dCXxNx9vHxR5LiH1fIkHsu8QeS5WoWFu0Wtp/7dVa2qpqq4qiammLUpXa910oRTSUxJLY9z0hrUqChAjC+7sZ7+lxzpnrXiTnRn63+ei5c+bMec53njszzzPPzHF69OhROn5IgARIgARIgARIgARIgARIwPEIpHc8kSgRCZAACZAACZAACZAACZAACVgI0FyhHpAACZAACZAACZAACZAACTgoAZorDloxFIsESIAESIAESIAESIAESIDmCnWABEiABEiABEiABEiABEjAQQnQXHHQiqFYJEACJEACJEACJEACJEACNFeoAyRAAiRAAiRAAiRAAiRAAg5KgOaKg1YMxSIBEiABEiABEiABEiABEqC5Qh0gARIgARIgARIgARIgARJwUAI0Vxy0YigWCZAACZAACZAACZAACZAAzRXqAAmQAAmQAAmQAAmQAAmQgIMSyGgo163Y23G379y7f9/wLBNJgAQyZ8p47/4DciABEtAQyJo1y927CcRCAiRAAiRAArYTyJwpU47s2VxyZje8xMBcSbJVbufL64oLcLHhZUwkARIgARIgARIgARIgARIggeckICZIrkfFoBxDi8UgGEzYKjBUaKs8J31eTgIkQAIkQAIkQAIkQAIkYIWAMDowUwIbxDCbgbnCEBdDUkwkARIgARIgARIgARIgARJIJgIyG8TAXIEEnFdJpmpgsSRAAiRAAiRAAiRAAiRAAhoCVqwPY3OFBEmABEiABEiABEiABEiABEjAdAI0V0yvAgpAAiRAAiRAAiRAAiRAAiRgTIDmijEXppIACZAACZAACZAACZAACZhOgOaK6VVAAUiABEiABEiABEiABEiABIwJ0Fwx5sJUEiABEiABEiABEiABEiAB0wnQXDG9CigACZAACZAACZAACZAACZCAMQGaK8ZcmEoCJEACJEACJEACJEACJGA6AZorplcBBSABEiABEiABEiABEiABEjAmQHPFmAtTSYAESIAESIAESIAESIAETCdAc8X0KqAAJEACJEACJEACJEACJEACxgRorhhzYSoJkAAJkECqJhAffzd4f9iUGXMOHT2Rqh+EwpMACZBAGieQ0dznj7gaGbzvIP6NuPJ3saKF8rq6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" width="1082" height="76" class="img_ev3q"></p> <p>There are <strong>2516</strong> commits, <strong>52</strong> releases on GitHub and a total <strong>93</strong> contributors at the time of writing. <strong>20</strong> out of the 93 authors contributed once or more in the last three months.</p> <p><img decoding="async" loading="lazy" alt="numbers" src="/assets/images/3-bintray-absolute-924adc575a374ccf834da3e88b3fc7ec.png" width="1160" height="516" class="img_ev3q"></p> <p><strong>~780k</strong> downloads in the last <strong>30 days</strong> is a pretty high number... three months ago it was around <strong>500k</strong>. Weekends clearly stand out. That's when the CI has to rest ;).</p> <p>This does however not mean one download equals one user. There are like eight detekt modules each with a jar and pom which needs to be downloaded. As most of the downloads are bound to be CI, it is hard to calculate the actual number of detekt users.</p> <p><img decoding="async" loading="lazy" alt="numbers" src="/assets/images/4-bintray-percent-46d42d5abfba0157bd16dc6f6077e3c0.png" width="1151" height="533" class="img_ev3q"></p> <p>What I also noticed is the high number of "early adopters" in the Kotlin world (or just detekt).</p> <ul> <li>RC09 was released in Sep 2018</li> <li>RC10 was released in Nov 2018</li> <li>RC11 was released in Nov 2018</li> <li>RC12 was released in Dec 2018</li> <li>RC14 was released in Feb 2019</li> <li>RC15 was released in Jun 2019</li> <li>RC16 was released in Jun 2019</li> </ul> <p><strong>65%</strong> of users are on a version published in 2019. But we clearly lost some users in the older versions due to breaking changes in RC13 and RC15. We are excited to see how many users will jump on the 1.x.x release train and how these numbers will look like.</p> <p>Last but not least here is a worldmap of where detekt users are coming from.</p> <p><img decoding="async" loading="lazy" alt="numbers" src="/assets/images/5-bintray-world-b0ef653e07203593d6fec23013825ec8.png" width="1166" height="644" class="img_ev3q"></p> <p>References:</p> <ul> <li><a href="https://bintray.com/arturbosch/code-analysis/detekt#statistics" target="_blank" rel="noopener noreferrer">https://bintray.com/arturbosch/code-analysis/detekt#statistics</a></li> <li><a href="https://github.com/detekt/detekt/graphs/contributors" target="_blank" rel="noopener noreferrer">https://github.com/detekt/detekt/graphs/contributors</a></li> </ul></div><footer class="docusaurus-mt-lg"><div class="row margin-top--sm theme-blog-footer-edit-meta-row"><div class="col"><b>Tags:</b><ul class="tags_jXut padding--none margin-left--sm"><li class="tag_QGVx"><a class="tag_zVej tagRegular_sFm0" href="/blog/tags/news">news</a></li></ul></div></div><div class="row margin-top--sm theme-blog-footer-edit-meta-row"><div class="col"><a href="https://github.com/detekt/detekt/edit/main/website/blog/2019-08-04-calling-it-one-zero.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="Blog post page navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/blog/2019/08/14/custom-console-reports"><div class="pagination-nav__sublabel">Newer post</div><div class="pagination-nav__label">Howto: make detekt silent</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/blog/2019/06/29/using-detekt-snapshots"><div class="pagination-nav__sublabel">Older post</div><div class="pagination-nav__label">Howto: using snapshot releases of detekt</div></a></nav></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>