JetBrains / Avalonia
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
xaml
csproj
props
txt
plist
targets
fs
razor
editorconfig
glsl
dotsettings
resx
gitmodules
cmd
fsproj
gitattributes
fx
proj
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.

main276005 LOC (62%) 2,946 files
test111500 LOC (25%) 721 files
generated16538 LOC (3%) 10 files
build and deployment1259 LOC (<1%) 49 files
other36386 LOC (8%) 523 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
xaml
targets
props
proj
cmd
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 2946 files match defined criteria (276,005 LOC, 100.0% vs. main code):
    • 2,613 *.cs files (244,967 LOC)
    • 161 *.xaml files (18,745 LOC)
    • 34 *.mm files (7,041 LOC)
    • 33 *.ts files (1,893 LOC)
    • 17 *.xml files (1,198 LOC)
    • 28 *.h files (924 LOC)
    • 11 *.targets files (533 LOC)
    • 39 *.props files (456 LOC)
    • 2 *.tsx files (90 LOC)
    • 3 *.ps1 files (66 LOC)
    • 2 *.js files (44 LOC)
    • 1 *.proj files (25 LOC)
    • 1 *.html files (17 LOC)
    • 1 *.cmd files (6 LOC)
  • " *.cs" is biggest, containing 88.75% of LOC.
  • " *.cmd" is smallest, containing 0% of LOC.


*.cs244967 LOC (88%) 2,613 files
*.xaml18745 LOC (6%) 161 files
*.mm7041 LOC (2%) 34 files
*.ts1893 LOC (<1%) 33 files
*.xml1198 LOC (<1%) 17 files
*.h924 LOC (<1%) 28 files
*.targets533 LOC (<1%) 11 files
*.props456 LOC (<1%) 39 files
*.tsx90 LOC (<1%) 2 files
*.ps166 LOC (<1%) 3 files
*.js44 LOC (<1%) 2 files
*.proj25 LOC (<1%) 1 file
*.html17 LOC (<1%) 1 file
*.cmd6 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
csproj
xaml
props
fs
fsproj
targets
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*[.]UnitTests/.*".
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
    • files with paths like ".*[.][Tt]ests/.*".
    • files with paths like ".*[.][Tt]ests[.].*".
  • 721 files match defined criteria (111,500 LOC, 40.4% vs. main code):
    • 655 *.cs files (110,307 LOC)
    • 28 *.csproj files (629 LOC)
    • 13 *.xml files (198 LOC)
    • 1 *.ts files (84 LOC)
    • 10 *.xaml files (71 LOC)
    • 4 *.props files (62 LOC)
    • 5 *.fs files (49 LOC)
    • 1 *.css files (48 LOC)
    • 1 *.fsproj files (21 LOC)
    • 1 *.sh files (20 LOC)
    • 1 *.js files (9 LOC)
    • 1 *.targets files (2 LOC)
  • " *.cs" is biggest, containing 98.93% of LOC.
  • " *.targets" is smallest, containing 0% of LOC.


*.cs110307 LOC (98%) 655 files
*.csproj629 LOC (<1%) 28 files
*.xml198 LOC (<1%) 13 files
*.ts84 LOC (<1%) 1 file
*.xaml71 LOC (<1%) 10 files
*.props62 LOC (<1%) 4 files
*.fs49 LOC (<1%) 5 files
*.css48 LOC (<1%) 1 file
*.fsproj21 LOC (<1%) 1 file
*.sh20 LOC (<1%) 1 file
*.js9 LOC (<1%) 1 file
*.targets2 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 paths like ".*[.]cs" AND any line of content like "[/][/][ ]*".
    • files with paths like ".*/package[-]lock[.]json".
  • 10 files match defined criteria (16,538 LOC, 6.0% vs. main code):
    • 3 *.json files (11,452 LOC)
    • 7 *.cs files (5,086 LOC)
  • " *.json" is biggest, containing 69.25% of LOC.
  • " *.cs" is smallest, containing 30.75% of LOC.


*.json11452 LOC (69%) 3 files
*.cs5086 LOC (30%) 7 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]csproj".
    • files with paths like ".*/AndroidManifest[.]xml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*/[.]gitmodules".
    • files with paths like ".*/[.]gitattributes".
  • 49 files match defined criteria (1,259 LOC, 0.5% vs. main code):
    • 44 *.csproj files (1,208 LOC)
    • 5 *.sh files (51 LOC)
  • " *.csproj" is biggest, containing 95.95% of LOC.
  • " *.sh" is smallest, containing 4.05% of LOC.


*.csproj1208 LOC (95%) 44 files
*.sh51 LOC (4%) 5 files
Other Code
xaml
csproj
txt
plist
glsl
fx
razor
props
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*/[Ss]amples/.*".
    • files with paths like ".*[.]plist".
    • files with paths like ".*[.]xib".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*[.]svg".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/README[.][a-z0-9]+".
  • 523 files match defined criteria (36,386 LOC, 13.2% vs. main code):
    • 292 *.cs files (15,108 LOC)
    • 24 *.json files (11,927 LOC)
    • 80 *.xaml files (6,026 LOC)
    • 33 *.csproj files (746 LOC)
    • 10 *.md files (728 LOC)
    • 30 *.txt files (628 LOC)
    • 17 *.xml files (378 LOC)
    • 15 *.plist files (316 LOC)
    • 4 *.xib files (172 LOC)
    • 3 *.css files (129 LOC)
    • 2 *.glsl files (62 LOC)
    • 2 *.html files (44 LOC)
    • 1 *.fx files (41 LOC)
    • 4 *.razor files (29 LOC)
    • 3 *.js files (28 LOC)
    • 1 *.props files (12 LOC)
    • 1 *.sh files (7 LOC)
    • 1 *.svg files (5 LOC)
  • " *.cs" is biggest, containing 41.52% of LOC.
  • " *.svg" is smallest, containing 0.01% of LOC.


*.cs15108 LOC (41%) 292 files
*.json11927 LOC (32%) 24 files
*.xaml6026 LOC (16%) 80 files
*.csproj746 LOC (2%) 33 files
*.md728 LOC (2%) 10 files
*.txt628 LOC (1%) 30 files
*.xml378 LOC (1%) 17 files
*.plist316 LOC (<1%) 15 files
*.xib172 LOC (<1%) 4 files
*.css129 LOC (<1%) 3 files
*.glsl62 LOC (<1%) 2 files
*.html44 LOC (<1%) 2 files
*.fx41 LOC (<1%) 1 file
*.razor29 LOC (<1%) 4 files
*.js28 LOC (<1%) 3 files
*.props12 LOC (<1%) 1 file
*.sh7 LOC (<1%) 1 file
*.svg5 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.
  • *.cs files are analyzed with CSharpAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis (based on namespace heuristics)
  • *.xaml files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.mm files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.ts files are analyzed with TypeScriptAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.xml files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.h files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.targets files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.props files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.tsx files are analyzed with TypeScriptAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.ps1 files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.js files are analyzed with JavaScriptAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.proj files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.html files are analyzed with HtmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.cmd files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis


2026-01-18 17:17