detekt | Static code analysis for Kotlin | Code Analyzer library

 by   detekt Kotlin Version: v1.23.0 License: Apache-2.0

kandi X-RAY | detekt Summary

kandi X-RAY | detekt Summary

detekt is a Kotlin library typically used in Code Quality, Code Analyzer applications. detekt has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

Meet detekt, a static code analysis tool for the Kotlin programming language. It operates on the abstract syntax tree provided by the Kotlin compiler.

            kandi-support Support

              detekt has a medium active ecosystem.
              It has 5453 star(s) with 735 fork(s). There are 59 watchers for this library.
              There were 4 major release(s) in the last 12 months.
              There are 147 open issues and 2108 have been closed. On average issues are closed in 163 days. There are 20 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of detekt is v1.23.0

            kandi-Quality Quality

              detekt has 0 bugs and 0 code smells.

            kandi-Security Security

              detekt has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              detekt code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              detekt is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              detekt releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.
              It has 76391 lines of code, 4030 functions and 1014 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of detekt
            Get all kandi verified functions for this library.

            detekt Key Features

            No Key Features are available at this moment for detekt.

            detekt Examples and Code Snippets

            No Code Snippets are available at this moment for detekt.

            Community Discussions


            Kotlin lowercase Function
            Asked 2022-Jan-29 at 18:58

            I am new to kotlin, so I am sorry in advance, if this is a simple misstake.

            I am trying at the moment to rewrite an api (written in Kotlin) to java 17. Everything worked so far. But now I am getting following deprecated message:

            'toLowerCase(): String' is deprecated. Use lowercase() instead.

            Of course I know what it means, so I tried doing it like in the following Picture:

            But why doesnt it find the lowercase Function?

            This is in my build.gradle:



            Answered 2022-Jan-29 at 18:58

            Ensure your kotlin-stdlib version is 1.5 or above. Check this out



            Running detekt from the command line locally doeesn't produce problems
            Asked 2022-Jan-23 at 10:37
            detekt 1.19.0


            Answered 2022-Jan-23 at 10:37

            I need to add this to my top level gradle build file



            InvocationTargetException with Android Studio Arctic Fox on M1 Apple silicon
            Asked 2021-Sep-23 at 23:08

            I am trying to build an android project on apple silicon with Android studio Artic Fox.

            But Project is not building. I tried like hundred times changing the room version but its not working. Here are the dependencies I am using so far:



            Answered 2021-Sep-23 at 23:08

            With the below dependencies I was able to build project successfully:



            How can I publish a javadoc.jar file with my Kotlin multiplatform project?
            Asked 2021-Mar-26 at 07:36

            I am trying to publish my Kotlin multiplatform library to Maven Central via Sonatype. This repository requires me to include a javadoc.jar file with my artifacts. Unfortunately, the IntelliJ IDEA project wizard and the Kotlin multiplatform docs do not help me do that. When running the Gradle task dokkaJavadoc (for the official Kotlin documentation tool Dokka), I get the error "Dokka Javadoc plugin currently does not support generating documentation for multiplatform project."

            I actually do not need genuine JavaDocs for publishing - an empty javadoc.jar or one with other docs generated by Dokka would suffice. Since I have been a longtime Maven user and these are my first steps with Gradle, I have no idea how to do that.




            Answered 2021-Mar-19 at 20:10

            This answer is a cross-post from Kotlin Discussions. Credit goes to Lamba92_v2 of the JetBrains Team, who linked his solution in his project kotlingram.

            I noticed I had another issue related to publishing: Signatures and POM information where not applied to all modules. But given Lamba92_v2's code I could resolve all publishing-related issues:



            What's the correct place to put dependency in pom.xml file?
            Asked 2021-Mar-15 at 05:38

            This is what my pom.xml looks like



            Answered 2021-Mar-15 at 04:35

            The BOM dependency should go in the section



            Jenkins-pipeline fail : No such DSL method 'androidLint' found among steps
            Asked 2020-Nov-21 at 17:16

            I get a failure for the stage 'Static analysis' during my jenkins-pipeline.

            Here is my Jenkinsfile :



            Answered 2020-Nov-21 at 17:16

            After investigation, it seems "androidLint" is not supported by "Warnings Next Generation Plugin", and has been replaced by "androidLintParser"

            the correct step with Warning Next Generation plugin is :



            Difference Ktlint vs. lint?
            Asked 2020-Aug-07 at 19:01

            According to this article, ktlint is an automatic linter with a built-in code style checker.

            When I decide to use ktlint, what is the difference between lint and ktlint?

            lint is optimized for Android

            ktlint is optimized for Kotlin?

            How is ktlint performing with integration systems like Bamboo? Will it apply autoamtically?



            Answered 2020-Aug-07 at 19:01

            Linting is the process of checking the source code for Programmatic as well as Stylistic errors. Lint and Linting is more general and doesn't apply to Android only.

            Ktlint is more specific and checks rules more specific to Kotlin language.

            I personally use detekt for checking my code. It has more configuration options.

            How is ktlint performing with integration systems like Bamboo? Will it apply autoamtically?

            Linting doesn't depend on integration with other systems. It just checks any code you have.

            You can add pre-commit hook, to check your code with ktlint before commits:

            Video Tutorial and Explanation

            Tutorial 1

            Tutorial 2



            Why is the lock condition not resolved between two threads using for and while loop
            Asked 2020-Mar-19 at 10:51

            I am a complete beginner with threads therefore I'm not able to resolve this problem myself.

            I have two threads which should run in parallel. The first thread should read in the data (simulate receive queue thread) and once data is ready the second thread shall process (processing thread) the data. The problem is, that the second thread will wait for a change of the conditional variable an infinite amount of time. If I remove the for loop of the first thread, conditional variable will notify the second thread but the thread will only execute once. Why is the conditional variable not notified if it is used within the for loop?

            My goal is to read in all data of a CSV file in the first thread and store it dependent on the rows content in a vector in the second thread.

            Thread one look like this



            Answered 2020-Mar-19 at 10:51

            I'm not a C++ expert, but the code seems understandable enough to see the issue.

            Your thread 1 grabs the lock once and doesn't release it until the end of its lifetime. It may signal that the condition is fulfilled, but it never actually releases the lock to allow other threads to act.

            To fix this, move std::lock_guard lck(mtx); inside the loop, after sleeping. This way, the thread will take and release the lock on each iteration, giving the other thread an opportunity to act while sleeping.



            Running into LinearAlloc overflows midway through integration tests
            Asked 2020-Mar-02 at 11:36

            This is for a largish 3-4 year running Android project, running on Gradle 5.4.1. Integration testing is with Mockito, espresso and dagger.

            I have run into an issue where we are adding a Pendo library to the project, the dependency was added to Gradle as standard. Everything runs fine, until we try to run integration tests (~2000), these are run in shards with Spoon.

            Around half way through the integration tests, on random tests each time, we run into a native crash killing the test run, due to LinearAlloc exceeding capacity. Running these tests in isolation, or in their classes locally they pass with no issues and have been stable for a long time.

            I brought the whole app back to the known good build, added the Pendo dependency only and this results in the same problem, however I don't believe this is due to Pendo, as I tested by coming back to a known good build (tested on again at this point for sanity) and adding a random new dependency, this resulted in the same problem.

            From what I can find this may be something to do with the method limits around Android. I should mention we are using multidex to break the app down. Proguard and minify are also being used.

            Part of the issue here is that I'm really not sure what to look at to figure out what's going on to cause this overflow. Following the logs for the test runs, nothing appears to be amiss, bar a fair bit of garbage collection (which I'm guessing means a leak somewhere). I'm unsure if this issue is down to some underlying leak, and the new libraries are pushing something just over the edge, or if there's some dependency limit in android that I'm unaware of, or some other way to break the files down so we aren't causing LinearAlloc to fill up.

            From reading, I know the limits of LinearAlloc were upped around Android 5, we are having problems on devices both above (Android 10) and below this (Android 4) and I don't really see much chat around this since 2017, so I feel like I'm missing something obvious, or something is misconfigured in the project given it was setup before then.

            Any help would be really appreciated. I've dumped a cut down version of the gradle file below



            Answered 2020-Mar-02 at 11:36

            Okay so this was a fun one, leaving this up incase anyone ever runs into a similar issue.

            It seems in this case, the error message we were getting out was fairly misleading. A good way to help diagnose these sort of errors is to look at the tombstone left by the crash, see for more info around that

            In this case proguard was our enemy, it seemed to be performing some sort of optimisation on the test code leading to variables being assigned incorrectly and was resolved by adding -optimizations *other optimizations*,!code/allocation/variable this might not work for your particular case, but maybe try configuring proguard to do no optimisation and see if that helps :D



            SonarQube Is there a gradle setting in detekt gradle plugin to generate report on remote host instead of in a file
            Asked 2020-Feb-19 at 20:06

            When I use sonarqube plugin I'm not able to generate report on remote host on using my specific branch as lateast version is not supporting it and is deprecated

            So When I use detekt plugin it generates report in file locally and not on remote host. How can provide gradle setting to generate html report on remote host Like it generates using property when we use sonarqube plugin

            my build.gradle looks like



            Answered 2020-Feb-19 at 20:06

            Hi my code is working for id("org.sonarqube") version 2.7 I don't need detekt plugin

            We have found for sonarqube kotlin was not enabled thats why it was always saying master branch empty when we tried to run it with any other branch, after server enabled kotlin support simply by adding sonarqube server host it's working for any branch.


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install detekt

            You can find other ways to install detekt here. See maven central for releases and sonatype for snapshots. If you want to use a SNAPSHOT version, you can find more info on this documentation page.


            Thanks to all the people who contributed to detekt!.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone detekt/detekt

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Code Analyzer Libraries


            by airbnb


            by standard


            by eslint


            by rome


            by python

            Try Top Libraries by detekt


            by detektKotlin


            by detektKotlin


            by detektKotlin


            by detektKotlin