File Complexity Overall
  • There are 76 files with units, with 9,161 lines of code.
    • 1 very complex files (McCabe index sum 251+; 1,036 lines of code)
    • 1 complex files (McCabe index sum 126-250; 577 lines of code)
    • 12 medium complex files (McCabe index sum 51-125; 2,796 lines of code)
    • 17 slightly complex files (McCabe index sum 26-50; 2,152 lines of code)
    • 45 simple files (McCabe index sum 1-25; 2,600 lines of code)
  • 38 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system11% | 6% | 30% | 23% | 28%
Legend:
251+
126-250
51-125
26-50
1-25


explore: grouped by folders | grouped by complexity
File Complexity per Extension
251+
126-250
51-125
26-50
1-25
js11% | 6% | 30% | 23% | 28%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
src11% | 6% | 31% | 24% | 26%
ROOT0% | 0% | 0% | 0% | 100%
Most Complex Files (Top 50)

The McCabe index of a file grows with its size: per 100 lines tells a large but plain file from a dense one, and most complex unit whether the complexity sits in one unit or is spread over many.

File# lines# unitsMcCabe index
(sum)
per 100
lines
most complex
unit
Map.js
in src/js/modules/leaflet/src/map
1036 104 342 33 19
GridLayer.js
in src/js/modules/leaflet/src/layer/tile
577 50 177 31 19
Canvas.js
in src/js/modules/leaflet/src/layer/vector
328 30 100 30 9
DomEvent.js
in src/js/modules/leaflet/src/dom
189 18 96 51 21
Leaflet.GoogleMutant.js
in src/js/modules
316 24 83 26 11
Popup.js
in src/js/modules/leaflet/src/layer
298 25 83 28 12
Tooltip.js
in src/js/modules/leaflet/src/layer
245 26 81 33 10
GeoJSON.js
in src/js/modules/leaflet/src/layer
237 19 81 34 22
DomUtil.js
in src/js/modules/leaflet/src/dom
208 28 76 37 8
Control.Layers.js
in src/js/modules/leaflet/src/control
264 23 75 28 11
Marker.js
in src/js/modules/leaflet/src/layer/marker
216 24 56 26 15
Polyline.js
in src/js/modules/leaflet/src/layer/vector
198 19 56 28 10
Events.js
in src/js/modules/leaflet/src/core
159 10 53 33 11
Layer.js
in src/js/modules/leaflet/src/layer
138 16 52 38 13
LatLngBounds.js
in src/js/modules/leaflet/src/geo
129 19 47 36 9
Util.js
in src/js/modules/leaflet/src/core
136 19 46 34 5
ImageOverlay.js
in src/js/modules/leaflet/src/layer
158 20 44 28 9
Draggable.js
in src/js/modules/leaflet/src/dom
125 8 42 34 14
TileLayer.js
in src/js/modules/leaflet/src/layer/tile
168 12 41 24 7
LineUtil.js
in src/js/modules/leaflet/src/geometry
149 11 40 27 7
relocator.js
in src/js/modules
196 7 37 19 12
Point.js
in src/js/modules/leaflet/src/geometry
119 25 36 30 8
Map.Keyboard.js
in src/js/modules/leaflet/src/map/handler
127 11 34 27 14
Map.Drag.js
in src/js/modules/leaflet/src/map/handler
154 12 34 22 7
SVG.js
in src/js/modules/leaflet/src/layer/vector
132 16 34 26 8
Bounds.js
in src/js/modules/leaflet/src/geometry
90 13 33 37 7
Polygon.js
in src/js/modules/leaflet/src/layer/vector
96 8 31 32 9
DivOverlay.js
in src/js/modules/leaflet/src/layer
122 14 29 24 6
Class.js
in src/js/modules/leaflet/src/core
72 9 28 39 8
Map.TouchZoom.js
in src/js/modules/leaflet/src/map/handler
88 5 27 31 15
DomEvent.Pointer.js
in src/js/modules/leaflet/src/dom
91 11 27 30 6
LayerGroup.js
in src/js/modules/leaflet/src/layer
76 14 25 33 4
SVG.VML.js
in src/js/modules/leaflet/src/layer/vector
103 10 24 23 10
Icon.js
in src/js/modules/leaflet/src/layer/marker
61 8 23 38 9
Control.js
in src/js/modules/leaflet/src/control
94 13 23 24 5
Control.Scale.js
in src/js/modules/leaflet/src/control
78 9 23 29 5
Map.BoxZoom.js
in src/js/modules/leaflet/src/map/handler
103 12 22 21 4
DomEvent.DoubleTap.js
in src/js/modules/leaflet/src/dom
60 4 20 33 9
Map.Tap.js
in src/js/modules/leaflet/src/map/handler
87 7 19 22 8
Renderer.js
in src/js/modules/leaflet/src/layer/vector
88 11 19 22 3
Control.Zoom.js
in src/js/modules/leaflet/src/control
87 9 19 22 5
CircleMarker.js
in src/js/modules/leaflet/src/layer/vector
64 13 18 28 3
Control.Attribution.js
in src/js/modules/leaflet/src/control
77 7 18 23 6
70 5 16 23 9
TileLayer.WMS.js
in src/js/modules/leaflet/src/layer/tile
66 5 15 23 5
Marker.Drag.js
in src/js/modules/leaflet/src/layer/marker
100 9 15 15 2
CRS.js
in src/js/modules/leaflet/src/geo/crs
57 9 14 25 3
Circle.js
in src/js/modules/leaflet/src/layer/vector
65 5 13 20 6
Renderer.getRenderer.js
in src/js/modules/leaflet/src/layer/vector
29 3 13 45 6
Path.js
in src/js/modules/leaflet/src/layer/vector
64 9 13 20 2
About This Analysis
  • File complexity is the sum of the McCabe indexes (conditional complexity) of the units (methods, functions...) in a file.
  • Files are classified in five categories based on that sum: 1-25 (simple files), 26-50 (slightly complex files), 51-125 (medium complex files), 126-250 (complex files), 251+ (very complex files). The default bands are five times the unit complexity bands, as a file is a group of units.
  • Only main code files with units are classified. Files without units (languages without unit analysis, or files without functions) have no complexity to measure and are left out rather than counted as simple.
  • A very complex file holds many decisions, which often means it has too many responsibilities: a candidate to split, and a place where changes need more testing.
Learn more...