JetBrains / compose-multiplatform-core
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
pro
proto
svelte
plist
cfg
glsl
lds
desktop
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.

main2406625 LOC (45%) 19,012 files
test1257237 LOC (23%) 9,925 files
generated38072 LOC (<1%) 63 files
build and deployment37565 LOC (<1%) 963 files
other1553035 LOC (29%) 13,029 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
svelte
pro
cfg
glsl
lds
desktop
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 19012 files match defined criteria (2,406,625 LOC, 100.0% vs. main code):
    • 10,165 *.kt files (1,509,927 LOC)
    • 4,456 *.java files (684,233 LOC)
    • 4,088 *.xml files (180,569 LOC)
    • 24 *.toml files (6,993 LOC)
    • 44 *.proto files (6,832 LOC)
    • 30 *.py files (4,980 LOC)
    • 14 *.cpp files (2,827 LOC)
    • 49 *.h files (1,725 LOC)
    • 12 *.cc files (1,366 LOC)
    • 19 *.m files (1,341 LOC)
    • 27 *.ts files (1,241 LOC)
    • 2 *.g4 files (1,001 LOC)
    • 11 *.kts files (997 LOC)
    • 7 *.svelte files (728 LOC)
    • 12 *.swift files (559 LOC)
    • 25 *.html files (533 LOC)
    • 8 *.js files (217 LOC)
    • 1 *.groovy files (152 LOC)
    • 7 *.pro files (113 LOC)
    • 2 *.cfg files (94 LOC)
    • 2 *.glsl files (83 LOC)
    • 1 *.json5 files (79 LOC)
    • 2 *.lds files (20 LOC)
    • 1 *.desktop files (11 LOC)
    • 2 *.css files (2 LOC)
    • 1 *.yaml files (2 LOC)
  • " *.kt" is biggest, containing 62.74% of LOC.
  • " *.yaml" is smallest, containing 0% of LOC.


*.kt1509927 LOC (62%) 10,165 files
*.java684233 LOC (28%) 4,456 files
*.xml180569 LOC (7%) 4,088 files
*.toml6993 LOC (<1%) 24 files
*.proto6832 LOC (<1%) 44 files
*.py4980 LOC (<1%) 30 files
*.cpp2827 LOC (<1%) 14 files
*.h1725 LOC (<1%) 49 files
*.cc1366 LOC (<1%) 12 files
*.m1341 LOC (<1%) 19 files
*.ts1241 LOC (<1%) 27 files
*.g41001 LOC (<1%) 2 files
*.kts997 LOC (<1%) 11 files
*.svelte728 LOC (<1%) 7 files
*.swift559 LOC (<1%) 12 files
*.html533 LOC (<1%) 25 files
*.js217 LOC (<1%) 8 files
*.groovy152 LOC (<1%) 1 file
*.pro113 LOC (<1%) 7 files
*.cfg94 LOC (<1%) 2 files
*.glsl83 LOC (<1%) 2 files
*.json579 LOC (<1%) 1 file
*.lds20 LOC (<1%) 2 files
*.desktop11 LOC (<1%) 1 file
*.css2 LOC (<1%) 2 files
*.yaml2 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
proto
pro
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/src/androidTest/.*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*/test[-]data/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*[-]tests[-].*".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/[Mm]ocks/.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/[Ss]pecs/.*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*/testing[.].*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*/tests_.*".
  • 9925 files match defined criteria (1,257,237 LOC, 52.2% vs. main code):
    • 4,836 *.kt files (753,277 LOC)
    • 2,752 *.java files (442,386 LOC)
    • 2,094 *.xml files (51,777 LOC)
    • 181 *.gradle files (6,021 LOC)
    • 19 *.proto files (1,112 LOC)
    • 5 *.py files (806 LOC)
    • 6 *.cpp files (792 LOC)
    • 11 *.html files (369 LOC)
    • 1 *.toml files (332 LOC)
    • 6 *.sh files (179 LOC)
    • 4 *.h files (80 LOC)
    • 2 *.kts files (62 LOC)
    • 5 *.pro files (23 LOC)
    • 3 *.js files (21 LOC)
  • " *.kt" is biggest, containing 59.92% of LOC.
  • " *.js" is smallest, containing 0% of LOC.


*.kt753277 LOC (59%) 4,836 files
*.java442386 LOC (35%) 2,752 files
*.xml51777 LOC (4%) 2,094 files
*.gradle6021 LOC (<1%) 181 files
*.proto1112 LOC (<1%) 19 files
*.py806 LOC (<1%) 5 files
*.cpp792 LOC (<1%) 6 files
*.html369 LOC (<1%) 11 files
*.toml332 LOC (<1%) 1 file
*.sh179 LOC (<1%) 6 files
*.h80 LOC (<1%) 4 files
*.kts62 LOC (<1%) 2 files
*.pro23 LOC (<1%) 5 files
*.js21 LOC (<1%) 3 files
Generated Code
Automatically generated files, not manually changed after generation.
txt
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with any line of content like "// This file was generated .*".
    • files with paths like ".*/generated/.*".
    • files with paths like ".*/package[-]lock[.]json".
  • 63 files match defined criteria (38,072 LOC, 1.6% vs. main code):
    • 51 *.kt files (26,919 LOC)
    • 3 *.json files (8,641 LOC)
    • 8 *.txt files (2,509 LOC)
    • 1 *.md files (3 LOC)
  • " *.kt" is biggest, containing 70.71% of LOC.
  • " *.md" is smallest, containing 0.01% of LOC.


*.kt26919 LOC (70%) 51 files
*.json8641 LOC (22%) 3 files
*.txt2509 LOC (6%) 8 files
*.md3 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 ".*[.]gradle".
    • files with paths like ".*/AndroidManifest[.]xml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]sh".
    • files with paths like ".*([.]|/)webpack([.]|/).*".
    • files with paths like ".*[.]bat".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*/package[.]json".
  • 963 files match defined criteria (37,565 LOC, 1.6% vs. main code):
    • 634 *.gradle files (29,925 LOC)
    • 93 *.sh files (3,936 LOC)
    • 218 *.xml files (2,443 LOC)
    • 18 *.bat files (1,261 LOC)
  • " *.gradle" is biggest, containing 79.66% of LOC.
  • " *.bat" is smallest, containing 3.36% of LOC.


*.gradle29925 LOC (79%) 634 files
*.sh3936 LOC (10%) 93 files
*.xml2443 LOC (6%) 218 files
*.bat1261 LOC (3%) 18 files
Other Code
txt
properties
plist
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Ss]amples/.*".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]plist".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[Dd]ocumentation/.*".
  • 13029 files match defined criteria (1,553,035 LOC, 64.5% vs. main code):
    • 10,010 *.txt files (1,283,280 LOC)
    • 1,303 *.kt files (155,901 LOC)
    • 395 *.java files (39,767 LOC)
    • 127 *.json files (33,820 LOC)
    • 792 *.xml files (29,805 LOC)
    • 163 *.md files (3,642 LOC)
    • 124 *.properties files (3,166 LOC)
    • 88 *.gradle files (2,426 LOC)
    • 1 *.py files (364 LOC)
    • 11 *.html files (303 LOC)
    • 1 *.kts files (242 LOC)
    • 5 *.svg files (143 LOC)
    • 5 *.plist files (89 LOC)
    • 2 *.css files (60 LOC)
    • 1 *.sh files (25 LOC)
    • 1 *.js files (2 LOC)
  • " *.txt" is biggest, containing 82.63% of LOC.
  • " *.js" is smallest, containing 0% of LOC.


*.txt1283280 LOC (82%) 10,010 files
*.kt155901 LOC (10%) 1,303 files
*.java39767 LOC (2%) 395 files
*.json33820 LOC (2%) 127 files
*.xml29805 LOC (1%) 792 files
*.md3642 LOC (<1%) 163 files
*.properties3166 LOC (<1%) 124 files
*.gradle2426 LOC (<1%) 88 files
*.py364 LOC (<1%) 1 file
*.html303 LOC (<1%) 11 files
*.kts242 LOC (<1%) 1 file
*.svg143 LOC (<1%) 5 files
*.plist89 LOC (<1%) 5 files
*.css60 LOC (<1%) 2 files
*.sh25 LOC (<1%) 1 file
*.js2 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2026-01-18 17:37