Clou9 Ace Editor
Components & Dependencies

Intro

Logical decomposition is a representation of the organization of the main source code, where every and each file is put in exactly one logical component.

  • A software system can have one or more logical decompositions.
  • A logical decomposition can be defined in two ways in Sokrates.
  • First approach is based on the folders structure. Components are mapped to folders at defined folder depth relative to the source code root.
  • Second approach is based on explicit definition of each component. In such explicit definitions, components are explicitly named and their files are selected based on explicitly defined path and content filters.
  • A logical decomposition is considered invalid if a file is selected into two or more components.This constraint is introduced in order to facilitate measuring of dependencies among components.
  • Files not assigned to any component are put into a special "Unclassified" component.
Learn more...
Logical Decompositions Overview

Analyzed system has 3 logical decompositions:

  • primary (8 components)
  • lib (23 components)
  • modes (336 components)
Logical Decomposition #1: PRIMARY
The decompositions is based on folder structure at level 1 (relative to the source code root).
Components
The "primary" logical decomposition has 8 components.
  • 765 files, 124,365 lines of code (100.0% vs. main code).
  • "lib" is biggest, containing 80.4% of code.
  • "build_support" is smallest, containing 0.12% of code.


lib99987 LOC (80%) 667 files
api13705 LOC (11%) 25 files
demo3862 LOC (3%) 29 files
tool2191 LOC (1%) 16 files
ROOT1967 LOC (1%) 5 files
doc1540 LOC (1%) 12 files
experiments969 LOC (<1%) 9 files
build_support144 LOC (<1%) 2 files
Alternative Visuals
Dependencies
Dependencies among components are static code dependencies among files in different components.

No component dependencies found.

Logical Decomposition #2: LIB
The decompositions is based on folder structure at level 4 (relative to the source code root).
Components
The "lib" logical decomposition has 23 components.
  • 667 files, 99,987 lines of code (80.4% vs. main code).
  • "ace/mode" is biggest, containing 31.94% of code.
  • "ace/requirejs" is smallest, containing 0.05% of code.


ace/mode31933 LOC (25%) 336 files
ace/snippets12821 LOC (10%) 112 files
ace11576 LOC (9%) 31 files
ace/mode/html8734 LOC (7%) 1 files
ace/keyboard7840 LOC (6%) 8 files
ace/mode/css5652 LOC (4%) 1 files
ace/theme3832 LOC (3%) 74 files
ace/ext3753 LOC (3%) 23 files
ace/mode/folding1954 LOC (1%) 23 files
ace/mode/xml1647 LOC (1%) 3 files
ace/layer1419 LOC (1%) 6 files
ace/lib1406 LOC (1%) 11 files
ace/mouse1354 LOC (1%) 8 files
ace/mode/lua1351 LOC (1%) 1 files
ace/commands1261 LOC (1%) 5 files
ace/edit_session1122 LOC (<1%) 4 files
ace/mode/behaviour701 LOC (<1%) 6 files
ace/css487 LOC (<1%) 1 files
ace/worker425 LOC (<1%) 3 files
ace/autocomplete297 LOC (<1%) 3 files
ace/mode/json227 LOC (<1%) 1 files
ace/ext/menu_tools143 LOC (<1%) 3 files
ace/requirejs52 LOC (<1%) 3 files
Alternative Visuals
Dependencies
Dependencies among components are static code dependencies among files in different components.

No component dependencies found.

Logical Decomposition #3: MODES
The "modes" logical decomposition in based on 336 explicitly defined components.
Components
The "modes" logical decomposition has 336 components.
  • 336 files, 31,933 lines of code (25.7% vs. main code).
  • "csound_orchestra_highlight_rules.js" is biggest, containing 6.11% of code.
  • "svg_highlight_rules.js" is smallest, containing 0.04% of code.


csound_orchestra_highlight_rules.js1951 LOC (1%) 1 files
php_highlight_rules.js1044 LOC (<1%) 1 files
erlang_highlight_rules.js830 LOC (<1%) 1 files
kotlin_highlight_rules.js617 LOC (<1%) 1 files
ruby_highlight_rules.js582 LOC (<1%) 1 files
pgsql_highlight_rules.js563 LOC (<1%) 1 files
mediawiki_highlight_rules.js556 LOC (<1%) 1 files
mushcode_highlight_rules.js553 LOC (<1%) 1 files
crystal_highlight_rules.js425 LOC (<1%) 1 files
vala_highlight_rules.js411 LOC (<1%) 1 files
python_highlight_rules.js379 LOC (<1%) 1 files
elixir_highlight_rules.js376 LOC (<1%) 1 files
zeek_highlight_rules.js358 LOC (<1%) 1 files
perl6_highlight_rules.js332 LOC (<1%) 1 files
text.js314 LOC (<1%) 1 files
prisma_highlight_rules.js312 LOC (<1%) 1 files
soy_template_highlight_rules.js306 LOC (<1%) 1 files
ocaml_highlight_rules.js293 LOC (<1%) 1 files
d_highlight_rules.js276 LOC (<1%) 1 files
smithy_highlight_rules.js275 LOC (<1%) 1 files
mask_highlight_rules.js260 LOC (<1%) 1 files
csound_preprocessor_highlight_rules.js254 LOC (<1%) 1 files
gobstones_highlight_rules.js246 LOC (<1%) 1 files
livescript.js232 LOC (<1%) 1 files
praat_highlight_rules.js227 LOC (<1%) 1 files
matlab_highlight_rules.js222 LOC (<1%) 1 files
rst_highlight_rules.js221 LOC (<1%) 1 files
sh_highlight_rules.js205 LOC (<1%) 1 files
jade_highlight_rules.js205 LOC (<1%) 1 files
apex_highlight_rules.js201 LOC (<1%) 1 files
drools_highlight_rules.js197 LOC (<1%) 1 files
slim_highlight_rules.js193 LOC (<1%) 1 files
red_highlight_rules.js192 LOC (<1%) 1 files
prolog_highlight_rules.js192 LOC (<1%) 1 files
fortran_highlight_rules.js185 LOC (<1%) 1 files
apache_conf_highlight_rules.js185 LOC (<1%) 1 files
coffee_highlight_rules.js183 LOC (<1%) 1 files
qml_highlight_rules.js182 LOC (<1%) 1 files
asl_highlight_rules.js180 LOC (<1%) 1 files
text_highlight_rules.js180 LOC (<1%) 1 files
xml_highlight_rules.js179 LOC (<1%) 1 files
sjs_highlight_rules.js178 LOC (<1%) 1 files
redshift_highlight_rules.js178 LOC (<1%) 1 files
vbscript_highlight_rules.js175 LOC (<1%) 1 files
logtalk_highlight_rules.js174 LOC (<1%) 1 files
dart_highlight_rules.js174 LOC (<1%) 1 files
terraform_highlight_rules.js173 LOC (<1%) 1 files
markdown_highlight_rules.js172 LOC (<1%) 1 files
asciidoc_highlight_rules.js170 LOC (<1%) 1 files
nim_highlight_rules.js167 LOC (<1%) 1 files
nunjucks_highlight_rules.js163 LOC (<1%) 1 files
php_laravel_blade_highlight_rules.js157 LOC (<1%) 1 files
velocity_highlight_rules.js157 LOC (<1%) 1 files
swift_highlight_rules.js157 LOC (<1%) 1 files
groovy_highlight_rules.js155 LOC (<1%) 1 files
clojure_highlight_rules.js155 LOC (<1%) 1 files
scss_highlight_rules.js154 LOC (<1%) 1 files
stylus_highlight_rules.js151 LOC (<1%) 1 files
css_completions.js149 LOC (<1%) 1 files
r_highlight_rules.js148 LOC (<1%) 1 files
jssm_highlight_rules.js147 LOC (<1%) 1 files
scala_highlight_rules.js146 LOC (<1%) 1 files
xquery.js145 LOC (<1%) 1 files
puppet_highlight_rules.js144 LOC (<1%) 1 files
c9search_highlight_rules.js143 LOC (<1%) 1 files
hjson_highlight_rules.js143 LOC (<1%) 1 files
java_highlight_rules.js142 LOC (<1%) 1 files
lua_highlight_rules.js141 LOC (<1%) 1 files
ftl_highlight_rules.js140 LOC (<1%) 1 files
yaml_highlight_rules.js138 LOC (<1%) 1 files
tcl_highlight_rules.js138 LOC (<1%) 1 files
haml_highlight_rules.js135 LOC (<1%) 1 files
alda_highlight_rules.js135 LOC (<1%) 1 files
jsoniq.js134 LOC (<1%) 1 files
fsharp_highlight_rules.js134 LOC (<1%) 1 files
csound_score_highlight_rules.js134 LOC (<1%) 1 files
pig_highlight_rules.js132 LOC (<1%) 1 files
javascript_worker.js129 LOC (<1%) 1 files
elm_highlight_rules.js127 LOC (<1%) 1 files
razor_highlight_rules.js126 LOC (<1%) 1 files
julia_highlight_rules.js124 LOC (<1%) 1 files
perl_highlight_rules.js123 LOC (<1%) 1 files
lucene_highlight_rules.js122 LOC (<1%) 1 files
less_highlight_rules.js122 LOC (<1%) 1 files
lua.js121 LOC (<1%) 1 files
twig_highlight_rules.js121 LOC (<1%) 1 files
vbscript.js120 LOC (<1%) 1 files
turtle_highlight_rules.js120 LOC (<1%) 1 files
forth_highlight_rules.js118 LOC (<1%) 1 files
maze_highlight_rules.js113 LOC (<1%) 1 files
golang_highlight_rules.js112 LOC (<1%) 1 files
nix_highlight_rules.js110 LOC (<1%) 1 files
jsx_highlight_rules.js109 LOC (<1%) 1 files
gherkin_highlight_rules.js107 LOC (<1%) 1 files
php.js103 LOC (<1%) 1 files
scad_highlight_rules.js102 LOC (<1%) 1 files
snippets.js99 LOC (<1%) 1 files
applescript_highlight_rules.js97 LOC (<1%) 1 files
eiffel_highlight_rules.js95 LOC (<1%) 1 files
pascal_highlight_rules.js94 LOC (<1%) 1 files
smarty_highlight_rules.js93 LOC (<1%) 1 files
jack_highlight_rules.js92 LOC (<1%) 1 files
logiql.js91 LOC (<1%) 1 files
visualforce_highlight_rules.js90 LOC (<1%) 1 files
csharp_highlight_rules.js89 LOC (<1%) 1 files
cirru_highlight_rules.js89 LOC (<1%) 1 files
abap_highlight_rules.js89 LOC (<1%) 1 files
abc_highlight_rules.js88 LOC (<1%) 1 files
latex_highlight_rules.js88 LOC (<1%) 1 files
clojure.js84 LOC (<1%) 1 files
liquid_highlight_rules.js84 LOC (<1%) 1 files
scheme.js83 LOC (<1%) 1 files
haxe_highlight_rules.js82 LOC (<1%) 1 files
rust_highlight_rules.js82 LOC (<1%) 1 files
js_regex_highlight_rules.js82 LOC (<1%) 1 files
fsl_highlight_rules.js80 LOC (<1%) 1 files
wollok_highlight_rules.js80 LOC (<1%) 1 files
scheme_highlight_rules.js78 LOC (<1%) 1 files
django.js76 LOC (<1%) 1 files
edifact_highlight_rules.js76 LOC (<1%) 1 files
lisp_highlight_rules.js75 LOC (<1%) 1 files
verilog_highlight_rules.js75 LOC (<1%) 1 files
xquery_worker.js73 LOC (<1%) 1 files
html_highlight_rules.js73 LOC (<1%) 1 files
ini_highlight_rules.js72 LOC (<1%) 1 files
tex_highlight_rules.js72 LOC (<1%) 1 files
diff_highlight_rules.js71 LOC (<1%) 1 files
rdoc_highlight_rules.js71 LOC (<1%) 1 files
sql_highlight_rules.js69 LOC (<1%) 1 files
javascript.js69 LOC (<1%) 1 files
vhdl_highlight_rules.js69 LOC (<1%) 1 files
ruby.js68 LOC (<1%) 1 files
io_highlight_rules.js68 LOC (<1%) 1 files
logiql_highlight_rules.js67 LOC (<1%) 1 files
toml_highlight_rules.js65 LOC (<1%) 1 files
handlebars_highlight_rules.js65 LOC (<1%) 1 files
razor_completions.js64 LOC (<1%) 1 files
makefile_highlight_rules.js64 LOC (<1%) 1 files
sh.js63 LOC (<1%) 1 files
cobol_highlight_rules.js62 LOC (<1%) 1 files
fortran.js62 LOC (<1%) 1 files
aql_highlight_rules.js62 LOC (<1%) 1 files
python.js62 LOC (<1%) 1 files
mushcode.js60 LOC (<1%) 1 files
css_worker.js59 LOC (<1%) 1 files
json_highlight_rules.js59 LOC (<1%) 1 files
csound_document_highlight_rules.js59 LOC (<1%) 1 files
html.js58 LOC (<1%) 1 files
textile_highlight_rules.js58 LOC (<1%) 1 files
css.js58 LOC (<1%) 1 files
vala.js58 LOC (<1%) 1 files
c_cpp.js57 LOC (<1%) 1 files
protobuf_highlight_rules.js57 LOC (<1%) 1 files
gcode_highlight_rules.js56 LOC (<1%) 1 files
crystal.js56 LOC (<1%) 1 files
red.js55 LOC (<1%) 1 files
ada_highlight_rules.js55 LOC (<1%) 1 files
scad.js55 LOC (<1%) 1 files
json5_highlight_rules.js54 LOC (<1%) 1 files
xml_worker.js53 LOC (<1%) 1 files
html_worker.js53 LOC (<1%) 1 files
ocaml.js52 LOC (<1%) 1 files
batchfile_highlight_rules.js51 LOC (<1%) 1 files
ejs.js51 LOC (<1%) 1 files
behaviour.js51 LOC (<1%) 1 files
json.js50 LOC (<1%) 1 files
ada.js49 LOC (<1%) 1 files
jsp_highlight_rules.js49 LOC (<1%) 1 files
coffee.js49 LOC (<1%) 1 files
lsl.js49 LOC (<1%) 1 files
space_highlight_rules.js49 LOC (<1%) 1 files
coldfusion_highlight_rules.js47 LOC (<1%) 1 files
powershell.js46 LOC (<1%) 1 files
perl.js46 LOC (<1%) 1 files
csharp.js46 LOC (<1%) 1 files
properties_highlight_rules.js46 LOC (<1%) 1 files
liquid.js45 LOC (<1%) 1 files
perl6.js45 LOC (<1%) 1 files
less.js45 LOC (<1%) 1 files
markdown.js45 LOC (<1%) 1 files
scss.js45 LOC (<1%) 1 files
html_ruby_highlight_rules.js44 LOC (<1%) 1 files
html_elixir_highlight_rules.js44 LOC (<1%) 1 files
jsx.js43 LOC (<1%) 1 files
sass_highlight_rules.js43 LOC (<1%) 1 files
dot.js43 LOC (<1%) 1 files
haxe.js43 LOC (<1%) 1 files
tcl.js43 LOC (<1%) 1 files
golang.js43 LOC (<1%) 1 files
praat.js41 LOC (<1%) 1 files
glsl_highlight_rules.js41 LOC (<1%) 1 files
mask.js40 LOC (<1%) 1 files
doc_comment_highlight_rules.js40 LOC (<1%) 1 files
twig.js40 LOC (<1%) 1 files
jack.js37 LOC (<1%) 1 files
luapage_highlight_rules.js37 LOC (<1%) 1 files
gherkin.js37 LOC (<1%) 1 files
graphqlschema_highlight_rules.js36 LOC (<1%) 1 files
yaml.js36 LOC (<1%) 1 files
typescript_highlight_rules.js34 LOC (<1%) 1 files
coffee_worker.js34 LOC (<1%) 1 files
latex.js34 LOC (<1%) 1 files
php_worker.js34 LOC (<1%) 1 files
xml.js33 LOC (<1%) 1 files
json_worker.js30 LOC (<1%) 1 files
matching_parens_outdent.js30 LOC (<1%) 1 files
lua_worker.js30 LOC (<1%) 1 files
textile.js30 LOC (<1%) 1 files
tex.js29 LOC (<1%) 1 files
asciidoc.js29 LOC (<1%) 1 files
haskell_cabal_highlight_rules.js28 LOC (<1%) 1 files
mixal_highlight_rules.js28 LOC (<1%) 1 files
c9search.js28 LOC (<1%) 1 files
smithy.js28 LOC (<1%) 1 files
json5.js28 LOC (<1%) 1 files
razor.js28 LOC (<1%) 1 files
svg.js28 LOC (<1%) 1 files
csp_highlight_rules.js27 LOC (<1%) 1 files
matching_brace_outdent.js26 LOC (<1%) 1 files
slim.js25 LOC (<1%) 1 files
gitignore_highlight_rules.js25 LOC (<1%) 1 files
rhtml.js24 LOC (<1%) 1 files
r.js24 LOC (<1%) 1 files
html_ruby.js23 LOC (<1%) 1 files
typescript.js23 LOC (<1%) 1 files
pgsql.js23 LOC (<1%) 1 files
redshift.js23 LOC (<1%) 1 files
html_elixir.js23 LOC (<1%) 1 files
sqlserver.js23 LOC (<1%) 1 files
terraform.js23 LOC (<1%) 1 files
sjs.js23 LOC (<1%) 1 files
php_laravel_blade.js23 LOC (<1%) 1 files
rhtml_highlight_rules.js23 LOC (<1%) 1 files
puppet.js23 LOC (<1%) 1 files
abap.js22 LOC (<1%) 1 files
pascal.js22 LOC (<1%) 1 files
curly_highlight_rules.js21 LOC (<1%) 1 files
apex.js21 LOC (<1%) 1 files
coldfusion.js21 LOC (<1%) 1 files
java.js21 LOC (<1%) 1 files
glsl.js21 LOC (<1%) 1 files
dockerfile_highlight_rules.js21 LOC (<1%) 1 files
jsp.js21 LOC (<1%) 1 files
swift.js21 LOC (<1%) 1 files
io.js20 LOC (<1%) 1 files
gobstones.js20 LOC (<1%) 1 files
dart.js20 LOC (<1%) 1 files
plain_text.js20 LOC (<1%) 1 files
nix.js20 LOC (<1%) 1 files
erlang.js20 LOC (<1%) 1 files
haskell.js20 LOC (<1%) 1 files
rdoc.js20 LOC (<1%) 1 files
logtalk.js20 LOC (<1%) 1 files
qml.js20 LOC (<1%) 1 files
sql.js20 LOC (<1%) 1 files
rust.js20 LOC (<1%) 1 files
velocity.js20 LOC (<1%) 1 files
nim.js20 LOC (<1%) 1 files
kotlin.js20 LOC (<1%) 1 files
makefile.js20 LOC (<1%) 1 files
actionscript.js20 LOC (<1%) 1 files
mel.js20 LOC (<1%) 1 files
haml.js19 LOC (<1%) 1 files
prolog.js19 LOC (<1%) 1 files
verilog.js19 LOC (<1%) 1 files
visualforce.js19 LOC (<1%) 1 files
d.js19 LOC (<1%) 1 files
fsharp.js19 LOC (<1%) 1 files
curly.js19 LOC (<1%) 1 files
drools.js19 LOC (<1%) 1 files
objectivec.js19 LOC (<1%) 1 files
applescript.js19 LOC (<1%) 1 files
haskell_cabal.js19 LOC (<1%) 1 files
handlebars.js19 LOC (<1%) 1 files
elm.js19 LOC (<1%) 1 files
julia.js19 LOC (<1%) 1 files
nsis.js19 LOC (<1%) 1 files
protobuf.js19 LOC (<1%) 1 files
fsl.js19 LOC (<1%) 1 files
ini.js19 LOC (<1%) 1 files
abc.js19 LOC (<1%) 1 files
batchfile.js19 LOC (<1%) 1 files
autohotkey.js19 LOC (<1%) 1 files
wollok.js19 LOC (<1%) 1 files
stylus.js19 LOC (<1%) 1 files
maze.js19 LOC (<1%) 1 files
nginx.js19 LOC (<1%) 1 files
forth.js19 LOC (<1%) 1 files
luapage.js19 LOC (<1%) 1 files
cirru.js18 LOC (<1%) 1 files
graphqlschema.js18 LOC (<1%) 1 files
sass.js18 LOC (<1%) 1 files
jade.js18 LOC (<1%) 1 files
jssm.js18 LOC (<1%) 1 files
hjson.js18 LOC (<1%) 1 files
toml.js18 LOC (<1%) 1 files
scala.js18 LOC (<1%) 1 files
groovy.js18 LOC (<1%) 1 files
apache_conf.js18 LOC (<1%) 1 files
elixir.js18 LOC (<1%) 1 files
assembly_x86.js18 LOC (<1%) 1 files
pig.js18 LOC (<1%) 1 files
matlab.js17 LOC (<1%) 1 files
zeek.js17 LOC (<1%) 1 files
soy_template.js17 LOC (<1%) 1 files
space.js17 LOC (<1%) 1 files
prisma.js17 LOC (<1%) 1 files
csound_orchestra.js17 LOC (<1%) 1 files
asl.js17 LOC (<1%) 1 files
diff.js17 LOC (<1%) 1 files
dockerfile.js17 LOC (<1%) 1 files
vhdl.js16 LOC (<1%) 1 files
sparql.js16 LOC (<1%) 1 files
lisp.js16 LOC (<1%) 1 files
cobol.js16 LOC (<1%) 1 files
mediawiki.js16 LOC (<1%) 1 files
csound_score.js16 LOC (<1%) 1 files
mysql.js16 LOC (<1%) 1 files
gcode.js16 LOC (<1%) 1 files
rst.js16 LOC (<1%) 1 files
eiffel.js16 LOC (<1%) 1 files
alda.js16 LOC (<1%) 1 files
gitignore.js16 LOC (<1%) 1 files
turtle.js16 LOC (<1%) 1 files
aql.js16 LOC (<1%) 1 files
csound_document.js15 LOC (<1%) 1 files
smarty.js15 LOC (<1%) 1 files
lucene.js15 LOC (<1%) 1 files
properties.js15 LOC (<1%) 1 files
mixal.js15 LOC (<1%) 1 files
ftl.js15 LOC (<1%) 1 files
edifact.js15 LOC (<1%) 1 files
csp.js14 LOC (<1%) 1 files
tsx.js14 LOC (<1%) 1 files
nunjucks.js14 LOC (<1%) 1 files
svg_highlight_rules.js13 LOC (<1%) 1 files
Meta-Rules for Componentization
  • The following explicit meta-rules for components are defined:
    • path like ".*"
      • replace (".*/", "")
    Alternative Visuals
    Dependencies
    Dependencies among components are static code dependencies among files in different components.

    No component dependencies found.



    2020-09-11 22:46