JetBrains / kotlin
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
txt
properties
mjs
plist
pro
proto
podspec
storyboard
gitattributes
in
patch
re
flex
editorconfig
cmd
policy
ll
clang-format
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main2116270 LOC (37%) 51,394 files
test729811 LOC (12%) 21,334 files
generated373126 LOC (6%) 1,691 files
build and deployment11399 LOC (<1%) 161 files
other2484198 LOC (43%) 35,918 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
flex
mjs
pro
policy
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 51394 files match defined criteria (2,116,270 LOC, 100.0% vs. main code):
    • 45,706 *.kt files (1,732,904 LOC)
    • 3,094 *.java files (255,200 LOC)
    • 1,383 *.kts files (29,306 LOC)
    • 189 *.cpp files (27,452 LOC)
    • 138 *.xml files (14,238 LOC)
    • 19 *.c files (14,091 LOC)
    • 138 *.hpp files (10,102 LOC)
    • 222 *.h files (8,536 LOC)
    • 68 *.swift files (4,866 LOC)
    • 256 *.js files (4,668 LOC)
    • 20 *.mm files (3,816 LOC)
    • 15 *.proto files (2,667 LOC)
    • 44 *.ts files (1,828 LOC)
    • 3 *.py files (1,187 LOC)
    • 4 *.flex files (1,117 LOC)
    • 1 *.cc files (1,099 LOC)
    • 60 *.mjs files (948 LOC)
    • 2 *.g4 files (761 LOC)
    • 11 *.pro files (583 LOC)
    • 3 *.css files (225 LOC)
    • 2 *.toml files (174 LOC)
    • 5 *.groovy files (146 LOC)
    • 1 *.inc files (123 LOC)
    • 5 *.m files (104 LOC)
    • 1 *.policy files (66 LOC)
    • 1 *.pp files (30 LOC)
    • 2 *.html files (28 LOC)
    • 1 *.yaml files (5 LOC)
  • " *.kt" is biggest, containing 81.88% of LOC.
  • " *.yaml" is smallest, containing 0% of LOC.


*.kt1732904 LOC (81%) 45,706 files
*.java255200 LOC (12%) 3,094 files
*.kts29306 LOC (1%) 1,383 files
*.cpp27452 LOC (1%) 189 files
*.xml14238 LOC (<1%) 138 files
*.c14091 LOC (<1%) 19 files
*.hpp10102 LOC (<1%) 138 files
*.h8536 LOC (<1%) 222 files
*.swift4866 LOC (<1%) 68 files
*.js4668 LOC (<1%) 256 files
*.mm3816 LOC (<1%) 20 files
*.proto2667 LOC (<1%) 15 files
*.ts1828 LOC (<1%) 44 files
*.py1187 LOC (<1%) 3 files
*.flex1117 LOC (<1%) 4 files
*.cc1099 LOC (<1%) 1 file
*.mjs948 LOC (<1%) 60 files
*.g4761 LOC (<1%) 2 files
*.pro583 LOC (<1%) 11 files
*.css225 LOC (<1%) 3 files
*.toml174 LOC (<1%) 2 files
*.groovy146 LOC (<1%) 5 files
*.inc123 LOC (<1%) 1 file
*.m104 LOC (<1%) 5 files
*.policy66 LOC (<1%) 1 file
*.pp30 LOC (<1%) 1 file
*.html28 LOC (<1%) 2 files
*.yaml5 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
podspec
proto
in
ll
re
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*[-]tests[-].*".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*[.][Tt]ests/.*".
    • files with paths like ".*[.][Tt]est/.*".
    • files with paths like ".*/src/androidTest/.*".
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*/testing[.].*".
  • 21334 files match defined criteria (729,811 LOC, 34.5% vs. main code):
    • 18,970 *.kt files (636,992 LOC)
    • 330 *.java files (37,200 LOC)
    • 841 *.kts files (16,224 LOC)
    • 234 *.swift files (16,165 LOC)
    • 267 *.h files (9,837 LOC)
    • 361 *.gradle files (4,785 LOC)
    • 52 *.m files (3,932 LOC)
    • 173 *.xml files (2,815 LOC)
    • 15 *.cpp files (496 LOC)
    • 20 *.js files (468 LOC)
    • 23 *.c files (347 LOC)
    • 16 *.podspec files (216 LOC)
    • 1 *.mm files (125 LOC)
    • 6 *.html files (62 LOC)
    • 5 *.groovy files (48 LOC)
    • 2 *.proto files (30 LOC)
    • 1 *.sh files (26 LOC)
    • 6 *.in files (12 LOC)
    • 1 *.ll files (9 LOC)
    • 6 *.re files (8 LOC)
    • 2 *.css files (6 LOC)
    • 1 *.scala files (5 LOC)
    • 1 *.toml files (3 LOC)
  • " *.kt" is biggest, containing 87.28% of LOC.
  • " *.toml" is smallest, containing 0% of LOC.


*.kt636992 LOC (87%) 18,970 files
*.java37200 LOC (5%) 330 files
*.kts16224 LOC (2%) 841 files
*.swift16165 LOC (2%) 234 files
*.h9837 LOC (1%) 267 files
*.gradle4785 LOC (<1%) 361 files
*.m3932 LOC (<1%) 52 files
*.xml2815 LOC (<1%) 173 files
*.cpp496 LOC (<1%) 15 files
*.js468 LOC (<1%) 20 files
*.c347 LOC (<1%) 23 files
*.podspec216 LOC (<1%) 16 files
*.mm125 LOC (<1%) 1 file
*.html62 LOC (<1%) 6 files
*.groovy48 LOC (<1%) 5 files
*.proto30 LOC (<1%) 2 files
*.sh26 LOC (<1%) 1 file
*.in12 LOC (<1%) 6 files
*.ll9 LOC (<1%) 1 file
*.re8 LOC (<1%) 6 files
*.css6 LOC (<1%) 2 files
*.scala5 LOC (<1%) 1 file
*.toml3 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with any line of content like "//[ ]*Generated by .*".
    • files with paths like ".*[.](py|java|h|cc|cpp|m|rb|php)" AND any line of content like ".*Generated by the protocol buffer compiler[.][ ]+DO NOT EDIT[!].*".
    • files with paths like ".*_generated[.][a-z]+".
    • files with any line of content like "// This file was generated .*".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*/generated/.*".
    • files with paths like ".*/src/gen/.*".
  • 1691 files match defined criteria (373,126 LOC, 17.6% vs. main code):
    • 773 *.java files (276,596 LOC)
    • 911 *.kt files (76,205 LOC)
    • 6 *.json files (20,121 LOC)
    • 1 *.h files (204 LOC)
  • " *.java" is biggest, containing 74.13% of LOC.
  • " *.h" is smallest, containing 0.05% of LOC.


*.java276596 LOC (74%) 773 files
*.kt76205 LOC (20%) 911 files
*.json20121 LOC (5%) 6 files
*.h204 LOC (<1%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]gradle".
    • files with paths like ".*/build[.]xml".
    • files with paths like ".*/AndroidManifest[.]xml".
    • files with paths like ".*[.]bat".
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]podspec".
    • files with paths like ".*([.]|/)webpack([.]|/).*".
    • files with paths like ".*[.]dockerfile".
  • 161 files match defined criteria (11,399 LOC, 0.5% vs. main code):
    • 94 *.xml files (6,493 LOC)
    • 24 *.gradle files (2,837 LOC)
    • 10 *.kt files (1,066 LOC)
    • 22 *.sh files (591 LOC)
    • 10 *.bat files (368 LOC)
    • 1 *.dockerfile files (44 LOC)
  • " *.xml" is biggest, containing 56.96% of LOC.
  • " *.dockerfile" is smallest, containing 0.39% of LOC.


*.xml6493 LOC (56%) 94 files
*.gradle2837 LOC (24%) 24 files
*.kt1066 LOC (9%) 10 files
*.sh591 LOC (5%) 22 files
*.bat368 LOC (3%) 10 files
*.dockerfile44 LOC (<1%) 1 file
Other Code
txt
properties
plist
patch
storyboard
in
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*/[Ss]amples/.*".
    • files with paths like ".*[.]plist".
    • files with paths like ".*[.]storyboard".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*[.]patch".
    • files with paths like ".*/[Dd]ocumentation/.*".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/COPYRIGHT[.][a-z0-9]+".
    • files with paths like ".*[.]adoc".
  • 35918 files match defined criteria (2,484,198 LOC, 117.4% vs. main code):
    • 34,930 *.txt files (2,402,002 LOC)
    • 259 *.json files (51,632 LOC)
    • 220 *.md files (12,391 LOC)
    • 189 *.kt files (11,534 LOC)
    • 192 *.properties files (3,325 LOC)
    • 65 *.kts files (1,070 LOC)
    • 1 *.adoc files (636 LOC)
    • 25 *.plist files (547 LOC)
    • 6 *.patch files (454 LOC)
    • 17 *.java files (208 LOC)
    • 9 *.storyboard files (196 LOC)
    • 1 *.gradle files (77 LOC)
    • 1 *.bat files (68 LOC)
    • 1 *.xml files (42 LOC)
    • 1 *.sh files (15 LOC)
    • 1 *.in files (1 LOC)
  • " *.txt" is biggest, containing 96.69% of LOC.
  • " *.in" is smallest, containing 0% of LOC.


*.txt2402002 LOC (96%) 34,930 files
*.json51632 LOC (2%) 259 files
*.md12391 LOC (<1%) 220 files
*.kt11534 LOC (<1%) 189 files
*.properties3325 LOC (<1%) 192 files
*.kts1070 LOC (<1%) 65 files
*.adoc636 LOC (<1%) 1 file
*.plist547 LOC (<1%) 25 files
*.patch454 LOC (<1%) 6 files
*.java208 LOC (<1%) 17 files
*.storyboard196 LOC (<1%) 9 files
*.gradle77 LOC (<1%) 1 file
*.bat68 LOC (<1%) 1 file
*.xml42 LOC (<1%) 1 file
*.sh15 LOC (<1%) 1 file
*.in1 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2026-01-18 17:27