JetBrains / NuGet.Client
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
nuspec
csproj
txt
xaml
resx
props
vstemplate
targets
proj
cmd
cshtml
aspx
patch
vcxproj
asax
project
editorconfig
fsproj
vsixmanifest
xsd
gitattributes
fs
filters
vssettings
xslt
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.

main402384 LOC (47%) 3,104 files
test355490 LOC (42%) 1,788 files
generated13297 LOC (1%) 47 files
build and deployment6000 LOC (<1%) 68 files
other67212 LOC (7%) 178 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
xslt
vsixmanifest
vssettings
cmd
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 3104 files match defined criteria (402,384 LOC, 100.0% vs. main code):
    • 2,432 *.cs files (217,357 LOC)
    • 507 *.xlf files (164,751 LOC)
    • 66 *.ps1 files (7,626 LOC)
    • 38 *.xaml files (6,026 LOC)
    • 14 *.targets files (1,918 LOC)
    • 2 *.xml files (1,338 LOC)
    • 15 *.props files (698 LOC)
    • 2 *.psm1 files (670 LOC)
    • 10 *.proj files (616 LOC)
    • 1 *.cmake files (347 LOC)
    • 1 *.xslt files (299 LOC)
    • 1 *.py files (250 LOC)
    • 2 *.ps1xml files (242 LOC)
    • 2 *.psd1 files (73 LOC)
    • 1 *.vsixmanifest files (68 LOC)
    • 1 *.vssettings files (68 LOC)
    • 9 *.cmd files (37 LOC)
  • " *.cs" is biggest, containing 54.02% of LOC.
  • " *.cmd" is smallest, containing 0.01% of LOC.


*.cs217357 LOC (54%) 2,432 files
*.xlf164751 LOC (40%) 507 files
*.ps17626 LOC (1%) 66 files
*.xaml6026 LOC (1%) 38 files
*.targets1918 LOC (<1%) 14 files
*.xml1338 LOC (<1%) 2 files
*.props698 LOC (<1%) 15 files
*.psm1670 LOC (<1%) 2 files
*.proj616 LOC (<1%) 10 files
*.cmake347 LOC (<1%) 1 file
*.xslt299 LOC (<1%) 1 file
*.py250 LOC (<1%) 1 file
*.ps1xml242 LOC (<1%) 2 files
*.psd173 LOC (<1%) 2 files
*.vsixmanifest68 LOC (<1%) 1 file
*.vssettings68 LOC (<1%) 1 file
*.cmd37 LOC (<1%) 9 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
nuspec
csproj
vstemplate
project
vcxproj
cshtml
aspx
props
xaml
proj
filters
targets
fsproj
fs
asax
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/test[.].*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[.][Tt]ests[.].*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*[.][Tt]est/.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.][Tt]ests/.*".
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
    • files with paths like ".*/TestUtilities/.*".
    • files with paths like ".*/[Mm]ocks/.*".
  • 1788 files match defined criteria (355,490 LOC, 88.3% vs. main code):
    • 1,394 *.cs files (319,063 LOC)
    • 27 *.xml files (18,084 LOC)
    • 23 *.ps1 files (9,359 LOC)
    • 185 *.nuspec files (3,377 LOC)
    • 76 *.csproj files (2,551 LOC)
    • 23 *.vstemplate files (690 LOC)
    • 1 *.psm1 files (529 LOC)
    • 1 *.project files (357 LOC)
    • 2 *.vcxproj files (339 LOC)
    • 3 *.css files (258 LOC)
    • 8 *.cshtml files (232 LOC)
    • 6 *.aspx files (221 LOC)
    • 5 *.cpp files (89 LOC)
    • 12 *.props files (79 LOC)
    • 1 *.psd1 files (59 LOC)
    • 6 *.xaml files (50 LOC)
    • 1 *.proj files (49 LOC)
    • 5 *.h files (38 LOC)
    • 1 *.filters files (24 LOC)
    • 3 *.targets files (24 LOC)
    • 1 *.fsproj files (11 LOC)
    • 1 *.fs files (4 LOC)
    • 2 *.asax files (2 LOC)
    • 1 *.js files (1 LOC)
  • " *.cs" is biggest, containing 89.75% of LOC.
  • " *.js" is smallest, containing 0% of LOC.


*.cs319063 LOC (89%) 1,394 files
*.xml18084 LOC (5%) 27 files
*.ps19359 LOC (2%) 23 files
*.nuspec3377 LOC (<1%) 185 files
*.csproj2551 LOC (<1%) 76 files
*.vstemplate690 LOC (<1%) 23 files
*.psm1529 LOC (<1%) 1 file
*.project357 LOC (<1%) 1 file
*.vcxproj339 LOC (<1%) 2 files
*.css258 LOC (<1%) 3 files
*.cshtml232 LOC (<1%) 8 files
*.aspx221 LOC (<1%) 6 files
*.cpp89 LOC (<1%) 5 files
*.props79 LOC (<1%) 12 files
*.psd159 LOC (<1%) 1 file
*.xaml50 LOC (<1%) 6 files
*.proj49 LOC (<1%) 1 file
*.h38 LOC (<1%) 5 files
*.filters24 LOC (<1%) 1 file
*.targets24 LOC (<1%) 3 files
*.fsproj11 LOC (<1%) 1 file
*.fs4 LOC (<1%) 1 file
*.asax2 LOC (<1%) 2 files
*.js1 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 ".*[.]designer[.](cs|vb)".
  • 47 files match defined criteria (13,297 LOC, 3.3% vs. main code). All matches are in *.cs files.


*.cs13297 LOC (100%) 47 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 ".*[.]csproj".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]nuspec".
    • files with paths like ".*/[.]gitattributes".
  • 68 files match defined criteria (6,000 LOC, 1.5% vs. main code):
    • 29 *.sh files (3,686 LOC)
    • 39 *.csproj files (2,314 LOC)
  • " *.sh" is biggest, containing 61.43% of LOC.
  • " *.csproj" is smallest, containing 38.57% of LOC.


*.sh3686 LOC (61%) 29 files
*.csproj2314 LOC (38%) 39 files
Other Code
txt
xsd
patch
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]patch".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/resources/.*[.]xsd".
    • files with paths like ".*/[.]gitignore".
  • 178 files match defined criteria (67,212 LOC, 16.7% vs. main code):
    • 64 *.json files (47,300 LOC)
    • 74 *.txt files (19,156 LOC)
    • 34 *.md files (540 LOC)
    • 1 *.xsd files (171 LOC)
    • 5 *.patch files (45 LOC)
  • " *.json" is biggest, containing 70.37% of LOC.
  • " *.patch" is smallest, containing 0.07% of LOC.


*.json47300 LOC (70%) 64 files
*.txt19156 LOC (28%) 74 files
*.md540 LOC (<1%) 34 files
*.xsd171 LOC (<1%) 1 file
*.patch45 LOC (<1%) 5 files
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)
  • *.xlf 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
  • *.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
  • *.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
  • *.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
  • *.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
  • *.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
  • *.psm1 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
  • *.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
  • *.cmake 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
  • *.xslt 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
  • *.py files are analyzed with PythonAnalyzer:
    • 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
    • Basic heuristic dependency analysis
  • *.ps1xml 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
  • *.psd1 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
  • *.vsixmanifest 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
  • *.vssettings 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
  • *.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:09