Source Code Analysis Scope
Files includes and excluded from analyses
mjs
properties
sc
editorconfig
asc
pub

scoping details...
  • 23 extensions are included in analyses: scala, html, scss, svg, js, ts, md, mjs, xml, txt, json, css, yml, properties, java, yaml, sh, sbt, sc, editorconfig, gitignore, asc, pub
  • 13 criteria are used to exclude files from analysis:
    • exclude files with path like ".*/cache/.*" (Caches) (6 files).
    • exclude files with path like ".*/testdata/.*" (Test data) (5 files).
    • exclude files with path like "(?i).*/jquery.*[.]js" (jQuery files) (2 files).
    • exclude files with path like ".*/docs/.*" (Documentation) (65 files).
    • exclude files with path like ".*/[Vv]endors?/.*" (Dependencies) (4 files).
    • exclude files with path like ".*\.d\.ts" (Typescript definition files) (13 files).
    • exclude files with path like ".*/controls\.js" (Prototype) (1 file).
    • exclude files with path like ".*/extern(al)?/.*" (Dependencies) (3 files).
    • exclude files with path like ".*/bootstrap[.](js|css|less|scss|styl)" (Bootstrap) (1 file).
    • exclude files with path like ".*/_sokrates/.*" (Sokrates files) (0 files).
    • exclude files with path like ".*/_sokrates_landscape/.*" (Sokrates landscape files) (0 files).
    • exclude files with path like ".*/git[-][a-zA-Z0-9_]+[.]txt" (Git data exports for sokrates analyses) (0 files).
    • exclude files with path like ".*/sokrates_.*?[.]json" (Sokrates conventions and configurations) (0 files).
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.
main153170 LOC (72%) 2,092 files
test39679 LOC (18%) 356 files
generated0 LOC (0%) 0 files
build and deployment1019 LOC (<1%) 22 files
other16905 LOC (8%) 274 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
mjs
pub
asc
sc
Explore:   circles  |  sunburst

scala60008 LOC (39%) 805 files
scss47043 LOC (30%) 398 files
js20563 LOC (13%) 234 files
html18991 LOC (12%) 505 files
ts3639 LOC (2%) 70 files
mjs1473 LOC (<1%) 45 files
css631 LOC (<1%) 10 files
xml424 LOC (<1%) 15 files
java195 LOC (<1%) 4 files
yaml189 LOC (<1%) 3 files
pub9 LOC (<1%) 1 file
asc4 LOC (<1%) 1 file
sc1 LOC (<1%) 1 file

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 2092 files match defined criteria (153,170 LOC, 100.0% vs. main code):
    • 805 scala files (60,008 LOC)
    • 398 scss files (47,043 LOC)
    • 234 js files (20,563 LOC)
    • 505 html files (18,991 LOC)
    • 70 ts files (3,639 LOC)
    • 45 mjs files (1,473 LOC)
    • 10 css files (631 LOC)
    • 15 xml files (424 LOC)
    • 4 java files (195 LOC)
    • 3 yaml files (189 LOC)
    • 1 pub files (9 LOC)
    • 1 asc files (4 LOC)
    • 1 sc files (1 LOC)
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
mjs
Explore:   circles  |  sunburst

scala20610 LOC (51%) 256 files
xml8326 LOC (20%) 5 files
js5764 LOC (14%) 60 files
html2953 LOC (7%) 7 files
ts1940 LOC (4%) 25 files
mjs65 LOC (<1%) 2 files
scss21 LOC (<1%) 1 file

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*/__mock[^/]*/.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*[.]spec[.]js".
    • files with paths like ".*[.]spec[.]ts".
    • files with paths like ".*/jest[.][a-zA-Z0-9\.]+".
  • 356 files match defined criteria (39,679 LOC, 25.9% vs. main code):
    • 256 scala files (20,610 LOC)
    • 5 xml files (8,326 LOC)
    • 60 js files (5,764 LOC)
    • 7 html files (2,953 LOC)
    • 25 ts files (1,940 LOC)
    • 2 mjs files (65 LOC)
    • 1 scss files (21 LOC)
Build and Deployment Code
Source code used to configure or support build and deployment process.
mjs
editorconfig
Explore:   circles  |  sunburst

sbt257 LOC (25%) 2 files
yaml235 LOC (23%) 8 files
js231 LOC (22%) 6 files
sh148 LOC (14%) 2 files
gitignore70 LOC (6%) 1 file
mjs50 LOC (4%) 2 files
editorconfig28 LOC (2%) 1 file

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*([.]|/)webpack([.]|/).*".
    • files with paths like "(.*/)?[.]yarnrc([.].*)?".
    • files with paths like "(.*/)?[.]stylelintrc([.].*)?".
    • files with paths like ".*[.]editorconfig".
    • files with paths like "(.*/)?[.]editorconfig".
    • files with paths like ".*[.]sbt".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/package[.]json".
    • files with paths like "(.*/)?[.]eslintrc([.].*)?".
    • files with paths like ".*/[.]github/workflows/.*[.]ya?ml".
    • files with paths like "(.*/)?[.](idea|vscode|vs|gradle|mvn|settings|metadata|circleci)/.*".
  • 22 files match defined criteria (1,019 LOC, 0.7% vs. main code):
    • 2 sbt files (257 LOC)
    • 8 yaml files (235 LOC)
    • 6 js files (231 LOC)
    • 2 sh files (148 LOC)
    • 1 gitignore files (70 LOC)
    • 2 mjs files (50 LOC)
    • 1 editorconfig files (28 LOC)
Other Code
properties
Explore:   circles  |  sunburst

json15159 LOC (89%) 12 files
txt725 LOC (4%) 8 files
md485 LOC (2%) 18 files
svg426 LOC (2%) 229 files
properties110 LOC (<1%) 7 files

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*[.]json".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/vendor/.*".
  • 274 files match defined criteria (16,905 LOC, 11.0% vs. main code):
    • 12 json files (15,159 LOC)
    • 8 txt files (725 LOC)
    • 18 md files (485 LOC)
    • 229 svg files (426 LOC)
    • 7 properties files (110 LOC)
About This Analysis
learn more about scopes (main, test, generated, build, 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.

learn more about used code analyzers...
  • *.scala files are analyzed with ScalaAnalyzer:
    • 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
  • *.scss files are analyzed with ScssAnalyzer:
    • 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
  • *.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
  • *.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
  • *.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
  • *.mjs 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
  • *.css files are analyzed with CssAnalyzer:
    • 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
  • *.java files are analyzed with JavaAnalyzer:
    • 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 package names)
  • *.yaml files are analyzed with YamlAnalyzer:
    • 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
  • *.pub 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
  • *.asc 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
  • *.sc files are analyzed with ScalaAnalyzer:
    • 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