Skip to content

Latest commit

 

History

History
1275 lines (1040 loc) · 132 KB

File metadata and controls

1275 lines (1040 loc) · 132 KB

Metrics

Home

Static metrics are calculated from target-specific preprocessed MiniLang files inside the configured source roots. External imported modules, generated documentation, and excluded paths are not measured.

Project summary

Metric Value
Blank lines 2803
Clone groups 54
Cognitive complexity 3109 (maximum per function: 287)
Comment lines 2293
Cyclomatic complexity 2277 (average: 6.02, maximum: 139)
Documentation coverage 99.95% (2186 of 2187 documentation items)
Duplicated lines 370 (6.26%)
Files 2
Functions 378
Maintainability index 0 / 100
Physical lines 11003
Source lines 5907
Statements 4932

Documentation coverage

Coverage is split by documentation contract so strong API summaries cannot hide undocumented parameters or data members.

Category Documented Total Coverage
API declarations 491 491 100%
Constants 206 207 99.52%
Enum variants 0 0 100%
Fields 93 93 100%
Globals 33 33 100%
Overall 2186 2187 99.95%
Parameters 1363 1363 100%

Halstead metrics

Distinct operators Distinct operands Total operators Total operands Vocabulary Length Volume Difficulty Effort Estimated defects
51 2251 30846 22996 2302 53842 601343.64 260.51 156653358.62 200.45

Files

File SLOC Functions Cyclomatic total / avg / max Cognitive total / max Duplication Halstead volume MI
MiniGuiLib/minigui.ml 3927 270 1368 / 5.07 / 87 1763 / 186 331 (8.43%) 345361.22 0
tools/minigui.ml 1980 108 909 / 8.42 / 139 1346 / 287 39 (1.97%) 212332.97 0

Functions

Function Location LOC Statements Cyclomatic Cognitive Max nesting Halstead volume MI
addError tools/minigui.ml:224 3 1 1 0 0 104 75.33
addGeneratedNode tools/minigui.ml:2069 355 352 139 287 6 43836.68 0
allowedControlEvents tools/minigui.ml:1458 13 20 12 11 1 1654.28 51.55
allowedControlProps tools/minigui.ml:1479 26 47 26 25 1 3503.73 40.82
arrItems tools/minigui.ml:312 5 5 4 3 1 169.92 68.6
asBool tools/minigui.ml:298 4 3 3 2 1 120.93 71.88
asInt tools/minigui.ml:271 4 3 3 2 1 120.93 71.88
asString tools/minigui.ml:263 4 3 3 2 1 120.93 71.88
basenameNoExt tools/minigui.ml:750 15 15 7 8 2 625.76 53.82
boolProp tools/minigui.ml:1876 5 4 2 1 1 229.25 67.96
charAt tools/minigui.ml:321 4 3 3 2 1 133.98 71.57
clampDimension tools/minigui.ml:1837 13 12 6 5 1 474.17 56.16
cloneJson tools/minigui.ml:1347 21 13 7 12 3 913.14 49.49
codePointUtf8 tools/minigui.ml:394 8 11 8 7 1 885.61 58.59
collectTreeItemLiterals tools/minigui.ml:1943 24 20 9 10 2 1242.77 47.01
commonControlProps tools/minigui.ml:1473 3 1 1 0 0 385.74 71.35
componentByName tools/minigui.ml:1272 7 6 4 4 2 283.28 63.86
contains tools/minigui.ml:1062 7 6 4 4 2 220.08 64.62
controlDefaultHeight tools/minigui.ml:1766 38 71 42 41 1 2261.06 36.4
controlText tools/minigui.ml:1886 5 4 2 1 1 210.91 68.21
copyNodeWithPrefix tools/minigui.ml:1391 14 11 4 4 2 659.92 54.72
createCallFor tools/minigui.ml:2014 42 79 41 40 1 2574.3 35.19
dimensionProp tools/minigui.ml:1823 7 8 6 5 1 408.07 62.48
dirname tools/minigui.ml:724 10 10 5 5 2 353.3 59.67
documentLoaded tools/minigui.ml:1257 7 6 4 4 2 293.25 63.75
ensureDir tools/minigui.ml:885 14 14 6 10 3 484.48 55.39
expandComponents tools/minigui.ml:1410 28 21 6 8 2 1207.41 46.05
findFunctionArity tools/minigui.ml:1668 11 12 4 3 1 553.96 57.54
generateCode tools/minigui.ml:2430 80 75 30 60 3 8344.77 26.99
hasProp tools/minigui.ml:250 9 10 6 6 2 377.83 60.33
hasValue tools/minigui.ml:230 3 1 1 0 0 66.61 76.69
hexVal tools/minigui.ml:384 7 8 7 6 1 301.85 63.26
identOk tools/minigui.ml:1083 11 13 8 8 2 1239.1 54.55
idSeen tools/minigui.ml:1606 3 1 1 0 0 53.15 77.38
intArrayLiteral tools/minigui.ml:1925 11 11 5 5 2 784.5 56.34
intPart tools/minigui.ml:278 16 15 7 9 3 587.76 53.4
intProp tools/minigui.ml:1811 5 4 2 1 1 229.25 67.96
isContainerControl tools/minigui.ml:1515 3 1 1 0 0 85.95 75.91
isControl tools/minigui.ml:1508 4 3 2 1 1 711.69 66.63
isDigit tools/minigui.ml:335 4 2 1 0 0 88 73.12
isIdentChar tools/minigui.ml:355 3 1 1 0 0 81.41 76.08
isIdentStart tools/minigui.ml:349 3 1 1 0 0 60.94 76.96
isLayout tools/minigui.ml:1521 3 1 1 0 0 106.27 75.27
isLetter tools/minigui.ml:342 4 2 1 0 0 144.43 71.61
isNull tools/minigui.ml:305 4 3 2 1 1 100 72.59
isRooted tools/minigui.ml:711 6 6 5 4 1 269.88 65.33
isWs tools/minigui.ml:361 3 1 1 0 0 91.38 75.73
jArray tools/minigui.ml:199 3 1 1 0 0 101.58 75.41
jBool tools/minigui.ml:186 3 1 1 0 0 102.8 75.37
jNull tools/minigui.ml:168 3 1 1 0 0 98.99 75.48
jNumber tools/minigui.ml:180 3 1 1 0 0 102.8 75.37
jObject tools/minigui.ml:193 3 1 1 0 0 108 75.22
joinPath tools/minigui.ml:781 8 10 6 5 1 385.14 61.39
jsonParseError tools/minigui.ml:211 3 1 1 0 0 62.27 76.89
jsonParseOk tools/minigui.ml:205 3 1 1 0 0 55.35 77.25
jsonScalarToString tools/minigui.ml:1169 9 9 5 5 2 254.19 61.67
jString tools/minigui.ml:174 3 1 1 0 0 102.8 75.37
layoutInt tools/minigui.ml:1864 5 4 2 1 1 171.3 68.84
listContains tools/minigui.ml:1073 7 6 5 5 2 266.27 63.91
loadGraph tools/minigui.ml:1285 58 47 21 41 5 3358.02 34.02
main tools/minigui.ml:2602 50 61 21 22 2 2980.57 35.79
MiniGuiLib.minigui._advancedCreate MiniGuiLib/minigui.ml:5825 8 7 2 1 1 766.38 59.83
MiniGuiLib.minigui._advancedDraw MiniGuiLib/minigui.ml:5852 4 2 1 0 0 182.66 70.9
MiniGuiLib.minigui._advancedFormat MiniGuiLib/minigui.ml:5864 6 7 3 2 1 261.34 65.7
MiniGuiLib.minigui._advancedProperty MiniGuiLib/minigui.ml:5839 3 1 1 0 0 98.99 75.48
MiniGuiLib.minigui._appForWindow MiniGuiLib/minigui.ml:1118 5 4 2 1 1 120.93 69.9
MiniGuiLib.minigui._asInt MiniGuiLib/minigui.ml:961 16 15 7 9 3 587.76 53.4
MiniGuiLib.minigui._defaultWndProc MiniGuiLib/minigui.ml:1098 17 12 6 11 4 549.84 53.16
MiniGuiLib.minigui._dialogInputCancel MiniGuiLib/minigui.ml:1603 6 6 4 3 1 256.76 65.62
MiniGuiLib.minigui._dialogInputOk MiniGuiLib/minigui.ml:1592 7 8 5 4 1 379.78 62.83
MiniGuiLib.minigui._ensureRuntimeState MiniGuiLib/minigui.ml:789 60 87 30 29 1 2071.86 33.96
MiniGuiLib.minigui._ensureTimerProc MiniGuiLib/minigui.ml:1411 7 4 2 1 1 102.19 67.23
MiniGuiLib.minigui._ensureWindowProc MiniGuiLib/minigui.ml:1389 7 4 2 1 1 102.19 67.23
MiniGuiLib.minigui._getWindowText MiniGuiLib/minigui.ml:1082 10 11 4 3 1 360.55 59.74
MiniGuiLib.minigui._installSpecificWindowProc MiniGuiLib/minigui.ml:1429 23 17 8 14 4 584.2 49.85
MiniGuiLib.minigui._installWindowProc MiniGuiLib/minigui.ml:1421 4 2 1 0 0 68.11 73.9
MiniGuiLib.minigui._itemCount MiniGuiLib/minigui.ml:1035 8 7 4 4 2 224.66 63.3
MiniGuiLib.minigui._itemTextAt MiniGuiLib/minigui.ml:1014 18 14 6 11 4 531.36 52.73
MiniGuiLib.minigui._joinText MiniGuiLib/minigui.ml:981 10 7 4 6 3 335.2 59.97
MiniGuiLib.minigui._miniGuiTimerProc MiniGuiLib/minigui.ml:1402 7 4 2 1 1 144.75 66.17
MiniGuiLib.minigui._miniGuiWndProc MiniGuiLib/minigui.ml:1129 209 194 87 186 4 10888.38 9.42
MiniGuiLib.minigui._normalizeEditText MiniGuiLib/minigui.ml:1063 16 10 5 7 3 459.83 54.42
MiniGuiLib.minigui._ord MiniGuiLib/minigui.ml:1005 5 4 2 1 1 122.62 69.86
MiniGuiLib.minigui._readI32LE MiniGuiLib/minigui.ml:936 4 2 1 0 0 230.7 70.19
MiniGuiLib.minigui._readPtrLE MiniGuiLib/minigui.ml:953 5 3 1 0 0 485.51 65.81
MiniGuiLib.minigui._readS32LE MiniGuiLib/minigui.ml:944 5 4 2 1 1 131.69 69.64
MiniGuiLib.minigui._registerWindowClass MiniGuiLib/minigui.ml:1357 26 26 6 5 1 982.03 47.38
MiniGuiLib.minigui._releaseRuntimeResources MiniGuiLib/minigui.ml:854 50 46 8 13 3 1093.67 40.58
MiniGuiLib.minigui._textContains MiniGuiLib/minigui.ml:1047 13 13 7 10 3 470.65 56.04
MiniGuiLib.minigui._utf16Z MiniGuiLib/minigui.ml:994 8 9 4 3 1 437.47 61.27
MiniGuiLib.minigui._writePtrLE MiniGuiLib/minigui.ml:921 11 9 1 0 0 600 57.7
MiniGuiLib.minigui._writeU32LE MiniGuiLib/minigui.ml:909 7 5 1 0 0 293.44 64.15
MiniGuiLib.minigui.Application.addControl MiniGuiLib/minigui.ml:1634 14 8 5 9 3 412.93 56.01
MiniGuiLib.minigui.Application.addWindow MiniGuiLib/minigui.ml:1621 9 6 2 1 1 189.99 62.96
MiniGuiLib.minigui.Application.create MiniGuiLib/minigui.ml:1613 4 2 1 0 0 203.16 70.57
MiniGuiLib.minigui.Application.dispose MiniGuiLib/minigui.ml:1868 8 6 3 3 2 197.15 63.83
MiniGuiLib.minigui.Application.pollResize MiniGuiLib/minigui.ml:1763 24 19 11 20 5 986.18 47.45
MiniGuiLib.minigui.Application.pump MiniGuiLib/minigui.ml:1860 5 4 2 1 1 116.76 70.01
MiniGuiLib.minigui.Application.redrawAll MiniGuiLib/minigui.ml:1805 24 15 10 21 4 878.12 47.94
MiniGuiLib.minigui.Application.resizeWindow MiniGuiLib/minigui.ml:1680 80 76 25 64 5 3885.09 29.99
MiniGuiLib.minigui.Application.run MiniGuiLib/minigui.ml:1832 22 20 7 7 2 654.6 50.06
MiniGuiLib.minigui.Application.setStartupWindow MiniGuiLib/minigui.ml:1652 4 2 1 0 0 62.91 74.14
MiniGuiLib.minigui.Application.syncDynamicControls MiniGuiLib/minigui.ml:1790 12 12 7 11 3 507.8 56.57
MiniGuiLib.minigui.Application.timerProc MiniGuiLib/minigui.ml:1671 3 1 1 0 0 92.51 75.69
MiniGuiLib.minigui.Application.windowProc MiniGuiLib/minigui.ml:1662 3 1 1 0 0 92.51 75.69
MiniGuiLib.minigui.Button.create MiniGuiLib/minigui.ml:2423 8 7 2 1 1 856.15 59.5
MiniGuiLib.minigui.Calendar.create MiniGuiLib/minigui.ml:3360 9 8 2 1 1 877.63 58.31
MiniGuiLib.minigui.Chart.clear MiniGuiLib/minigui.ml:8278 3 1 1 0 0 99.91 75.46
MiniGuiLib.minigui.Chart.create MiniGuiLib/minigui.ml:8272 3 1 1 0 0 179.31 73.68
MiniGuiLib.minigui.Chart.setValues MiniGuiLib/minigui.ml:8287 23 22 7 10 3 1048.21 48.2
MiniGuiLib.minigui.CheckBox.create MiniGuiLib/minigui.ml:2673 9 9 3 2 1 970.74 57.86
MiniGuiLib.minigui.CodeEditor.create MiniGuiLib/minigui.ml:8125 3 1 1 0 0 179.31 73.68
MiniGuiLib.minigui.CodeEditor.setLanguage MiniGuiLib/minigui.ml:8132 3 1 1 0 0 77.71 76.22
MiniGuiLib.minigui.ColorPicker.create MiniGuiLib/minigui.ml:2517 10 10 3 2 1 1008.11 56.75
MiniGuiLib.minigui.ComboBox.create MiniGuiLib/minigui.ml:3384 12 12 3 2 1 1160.75 54.6
MiniGuiLib.minigui.ContextMenu.create MiniGuiLib/minigui.ml:3115 12 8 3 3 2 887.12 55.41
MiniGuiLib.minigui.Control._ensureStyle MiniGuiLib/minigui.ml:3590 15 16 4 3 1 475.6 55.06
MiniGuiLib.minigui.Control._layoutIndex MiniGuiLib/minigui.ml:3708 11 10 6 8 3 346.13 58.7
MiniGuiLib.minigui.Control._styleIndex MiniGuiLib/minigui.ml:3578 9 6 4 6 3 220.08 62.24
MiniGuiLib.minigui.Control.addItem MiniGuiLib/minigui.ml:4049 9 13 9 8 1 646.11 58.3
MiniGuiLib.minigui.Control.addListViewItem MiniGuiLib/minigui.ml:4354 27 23 3 3 2 1258.58 46.67
MiniGuiLib.minigui.Control.addTreeViewItem MiniGuiLib/minigui.ml:4385 3 1 1 0 0 79.95 76.13
MiniGuiLib.minigui.Control.addTreeViewItemWithParent MiniGuiLib/minigui.ml:4393 10 8 1 0 0 440 59.54
MiniGuiLib.minigui.Control.applyCtlColor MiniGuiLib/minigui.ml:3660 16 16 5 5 2 454 54.46
MiniGuiLib.minigui.Control.applyEffectiveVisible MiniGuiLib/minigui.ml:4635 8 7 5 4 1 254.19 62.79
MiniGuiLib.minigui.Control.clampLayoutHeight MiniGuiLib/minigui.ml:3798 8 9 6 5 1 361.37 61.58
MiniGuiLib.minigui.Control.clampLayoutWidth MiniGuiLib/minigui.ml:3786 8 9 6 5 1 361.37 61.58
MiniGuiLib.minigui.Control.clearItems MiniGuiLib/minigui.ml:4020 25 21 9 8 1 823.09 47.88
MiniGuiLib.minigui.Control.ensureListViewColumn MiniGuiLib/minigui.ml:4061 15 16 5 4 1 733.21 53.61
MiniGuiLib.minigui.Control.findById MiniGuiLib/minigui.ml:3904 12 9 6 11 4 372.92 57.65
MiniGuiLib.minigui.Control.getCellText MiniGuiLib/minigui.ml:4344 6 7 6 5 1 325.48 64.63
MiniGuiLib.minigui.Control.getItemTextAtClick MiniGuiLib/minigui.ml:4464 15 16 6 6 2 509.05 54.59
MiniGuiLib.minigui.Control.getListViewSelectedText MiniGuiLib/minigui.ml:4502 7 8 5 4 1 271.03 63.86
MiniGuiLib.minigui.Control.getScrollValue MiniGuiLib/minigui.ml:4888 13 13 5 4 1 451.89 56.44
MiniGuiLib.minigui.Control.getSelectedIndex MiniGuiLib/minigui.ml:4527 9 13 9 8 1 620 58.42
MiniGuiLib.minigui.Control.getSelectedText MiniGuiLib/minigui.ml:4738 21 22 9 8 1 864.67 49.38
MiniGuiLib.minigui.Control.getText MiniGuiLib/minigui.ml:3472 24 22 7 7 2 862.57 48.39
MiniGuiLib.minigui.Control.getTreeViewSelectedText MiniGuiLib/minigui.ml:4482 17 20 6 5 1 808 51.99
MiniGuiLib.minigui.Control.getValue MiniGuiLib/minigui.ml:4814 8 7 5 4 1 287.92 62.41
MiniGuiLib.minigui.Control.isChecked MiniGuiLib/minigui.ml:4000 5 5 3 2 1 188.87 68.41
MiniGuiLib.minigui.Control.isDescendantOf MiniGuiLib/minigui.ml:4648 24 24 12 23 5 862.78 47.72
MiniGuiLib.minigui.Control.isEditable MiniGuiLib/minigui.ml:4159 5 5 3 2 1 146.95 69.17
MiniGuiLib.minigui.Control.layoutBounds MiniGuiLib/minigui.ml:3813 36 34 13 16 2 1786.26 41.53
MiniGuiLib.minigui.Control.layoutValue MiniGuiLib/minigui.ml:3765 17 22 8 7 1 594.54 52.66
MiniGuiLib.minigui.Control.listViewCellRect MiniGuiLib/minigui.ml:4212 21 23 8 8 2 1220.04 48.47
MiniGuiLib.minigui.Control.listViewColumnAtX MiniGuiLib/minigui.ml:4177 10 12 5 4 1 394.2 59.34
MiniGuiLib.minigui.Control.listViewColumnCount MiniGuiLib/minigui.ml:4167 6 6 3 2 1 171.3 66.98
MiniGuiLib.minigui.Control.listViewFieldAt MiniGuiLib/minigui.ml:4249 18 14 6 11 4 540.54 52.68
MiniGuiLib.minigui.Control.listViewFieldCount MiniGuiLib/minigui.ml:4236 9 6 4 6 3 236.84 62.02
MiniGuiLib.minigui.Control.listViewHitTest MiniGuiLib/minigui.ml:4192 15 19 8 7 1 950.05 52.42
MiniGuiLib.minigui.Control.moveCurrent MiniGuiLib/minigui.ml:3871 29 26 10 10 2 1158.78 45.3
MiniGuiLib.minigui.Control.replaceListViewField MiniGuiLib/minigui.ml:4272 13 9 4 4 2 420.6 56.79
MiniGuiLib.minigui.Control.replaceListViewRowText MiniGuiLib/minigui.ml:4290 13 9 4 4 2 393.46 56.99
MiniGuiLib.minigui.Control.resizeSplitterTargets MiniGuiLib/minigui.ml:3947 32 38 13 14 2 1695.75 42.81
MiniGuiLib.minigui.Control.scrollViewerTo MiniGuiLib/minigui.ml:4709 26 23 13 18 4 1271.57 45.65
MiniGuiLib.minigui.Control.setBackground MiniGuiLib/minigui.ml:3621 15 16 4 3 1 544.62 54.65
MiniGuiLib.minigui.Control.setBorder MiniGuiLib/minigui.ml:3641 4 3 2 1 1 104.25 72.47
MiniGuiLib.minigui.Control.setBounds MiniGuiLib/minigui.ml:3856 8 7 2 1 1 282.03 62.87
MiniGuiLib.minigui.Control.setCellText MiniGuiLib/minigui.ml:4330 9 10 6 5 1 529.1 59.31
MiniGuiLib.minigui.Control.setChecked MiniGuiLib/minigui.ml:4009 8 9 4 3 1 252.17 62.95
MiniGuiLib.minigui.Control.setColumnWidth MiniGuiLib/minigui.ml:4124 9 12 7 6 1 402.36 60.01
MiniGuiLib.minigui.Control.setColumnWidths MiniGuiLib/minigui.ml:4137 8 7 4 3 1 289.51 62.53
MiniGuiLib.minigui.Control.setEditable MiniGuiLib/minigui.ml:4149 7 8 4 3 1 215.49 64.69
MiniGuiLib.minigui.Control.setEnabled MiniGuiLib/minigui.ml:3500 6 6 3 2 1 186.91 66.72
MiniGuiLib.minigui.Control.setFont MiniGuiLib/minigui.ml:3651 4 3 2 1 1 171.9 70.95
MiniGuiLib.minigui.Control.setForeground MiniGuiLib/minigui.ml:3609 8 7 2 1 1 295.07 62.74
MiniGuiLib.minigui.Control.setItems MiniGuiLib/minigui.ml:4513 11 9 5 5 2 454.95 58
MiniGuiLib.minigui.Control.setLayout MiniGuiLib/minigui.ml:3728 32 33 10 9 1 1134.42 44.43
MiniGuiLib.minigui.Control.setListViewCellNative MiniGuiLib/minigui.ml:4309 15 17 7 6 1 774.35 53.17
MiniGuiLib.minigui.Control.setListViewColumns MiniGuiLib/minigui.ml:4080 22 25 9 8 1 1272 47.77
MiniGuiLib.minigui.Control.setMaxLength MiniGuiLib/minigui.ml:3695 10 10 12 11 1 544.36 57.42
MiniGuiLib.minigui.Control.setPosition MiniGuiLib/minigui.ml:3984 4 3 2 1 1 175.69 70.88
MiniGuiLib.minigui.Control.setReadOnly MiniGuiLib/minigui.ml:3680 11 11 12 12 2 553.96 56.46
MiniGuiLib.minigui.Control.setScrollRange MiniGuiLib/minigui.ml:4827 20 20 7 6 1 816.85 50.29
MiniGuiLib.minigui.Control.setScrollSteps MiniGuiLib/minigui.ml:4852 13 14 6 5 1 475.97 56.15
MiniGuiLib.minigui.Control.setScrollValue MiniGuiLib/minigui.ml:4869 16 16 7 6 1 555 53.58
MiniGuiLib.minigui.Control.setSelectedIndex MiniGuiLib/minigui.ml:4540 32 27 10 10 2 1247.29 44.14
MiniGuiLib.minigui.Control.setSize MiniGuiLib/minigui.ml:3993 4 3 2 1 1 175.69 70.88
MiniGuiLib.minigui.Control.setTabIndex MiniGuiLib/minigui.ml:3571 4 3 2 1 1 94.01 72.78
MiniGuiLib.minigui.Control.setText MiniGuiLib/minigui.ml:3457 12 12 5 4 1 422.64 57.4
MiniGuiLib.minigui.Control.setTooltip MiniGuiLib/minigui.ml:3528 39 40 11 14 3 1789.71 41.04
MiniGuiLib.minigui.Control.setTreeItems MiniGuiLib/minigui.ml:4435 25 23 9 13 3 1041.63 47.16
MiniGuiLib.minigui.Control.setValue MiniGuiLib/minigui.ml:4790 21 22 12 17 2 976.01 48.61
MiniGuiLib.minigui.Control.setValueRange MiniGuiLib/minigui.ml:4764 22 21 10 13 2 921.5 48.61
MiniGuiLib.minigui.Control.setVisible MiniGuiLib/minigui.ml:3510 14 13 6 6 2 456.34 55.57
MiniGuiLib.minigui.Control.splitterOrientation MiniGuiLib/minigui.ml:3919 6 6 3 2 1 169.46 67.01
MiniGuiLib.minigui.Control.splitterTargetAfterId MiniGuiLib/minigui.ml:3935 4 3 2 1 1 108.42 72.35
MiniGuiLib.minigui.Control.splitterTargetBeforeId MiniGuiLib/minigui.ml:3928 4 3 2 1 1 108.42 72.35
MiniGuiLib.minigui.Control.treeItemLevel MiniGuiLib/minigui.ml:4406 9 6 4 3 1 239.75 61.98
MiniGuiLib.minigui.Control.treeItemText MiniGuiLib/minigui.ml:4418 13 8 6 6 2 492.41 56.04
MiniGuiLib.minigui.Control.updateListViewColumnWidths MiniGuiLib/minigui.ml:4105 14 17 9 8 1 660.59 54.04
MiniGuiLib.minigui.Control.updateScrollViewer MiniGuiLib/minigui.ml:4676 28 28 14 23 5 1352.4 44.62
MiniGuiLib.minigui.Control.updateTabPages MiniGuiLib/minigui.ml:4576 55 46 26 61 7 2568.17 34.66
MiniGuiLib.minigui.DataGrid.create MiniGuiLib/minigui.ml:3268 13 13 3 2 1 1213.24 53.7
MiniGuiLib.minigui.DatePicker.create MiniGuiLib/minigui.ml:3294 9 8 2 1 1 877.63 58.31
MiniGuiLib.minigui.DateTimePicker.create MiniGuiLib/minigui.ml:3316 9 8 2 1 1 877.63 58.31
MiniGuiLib.minigui.Dialog._buttonFlags MiniGuiLib/minigui.ml:2002 8 11 6 5 1 245.27 62.76
MiniGuiLib.minigui.Dialog._colorFromHex MiniGuiLib/minigui.ml:2125 7 6 2 1 1 515 62.31
MiniGuiLib.minigui.Dialog._colorToHex MiniGuiLib/minigui.ml:2135 6 4 1 0 0 240.81 66.21
MiniGuiLib.minigui.Dialog._fileDialog MiniGuiLib/minigui.ml:2072 24 22 4 5 2 1047.39 48.21
MiniGuiLib.minigui.Dialog._filterBytes MiniGuiLib/minigui.ml:2047 19 15 6 11 4 594.54 51.87
MiniGuiLib.minigui.Dialog._hexByte MiniGuiLib/minigui.ml:2107 3 1 1 0 0 91.38 75.73
MiniGuiLib.minigui.Dialog._hexDigit MiniGuiLib/minigui.ml:2099 5 3 1 0 0 84 71.14
MiniGuiLib.minigui.Dialog._hexValueAt MiniGuiLib/minigui.ml:2114 8 10 8 7 1 386.43 61.11
MiniGuiLib.minigui.Dialog._iconFlags MiniGuiLib/minigui.ml:2013 7 9 6 5 1 222.97 64.32
MiniGuiLib.minigui.Dialog._owner MiniGuiLib/minigui.ml:1994 5 5 3 2 1 132.83 69.48
MiniGuiLib.minigui.Dialog.abortRetryIgnore MiniGuiLib/minigui.ml:2234 3 1 1 0 0 108 75.22
MiniGuiLib.minigui.Dialog.close MiniGuiLib/minigui.ml:2252 9 7 4 3 1 270.51 61.62
MiniGuiLib.minigui.Dialog.confirm MiniGuiLib/minigui.ml:2194 3 1 1 0 0 138.3 74.47
MiniGuiLib.minigui.Dialog.createCustom MiniGuiLib/minigui.ml:2244 4 2 1 0 0 224.01 70.28
MiniGuiLib.minigui.Dialog.createInput MiniGuiLib/minigui.ml:2316 12 11 2 1 1 1131.58 54.81
MiniGuiLib.minigui.Dialog.errorMessage MiniGuiLib/minigui.ml:2186 3 1 1 0 0 108 75.22
MiniGuiLib.minigui.Dialog.getResult MiniGuiLib/minigui.ml:2264 4 3 2 1 1 82.04 73.2
MiniGuiLib.minigui.Dialog.getValue MiniGuiLib/minigui.ml:2271 5 5 3 2 1 193.26 68.34
MiniGuiLib.minigui.Dialog.info MiniGuiLib/minigui.ml:2154 3 1 1 0 0 108 75.22
MiniGuiLib.minigui.Dialog.pickColor MiniGuiLib/minigui.ml:2381 11 10 2 1 1 565.54 57.74
MiniGuiLib.minigui.Dialog.pickFolder MiniGuiLib/minigui.ml:2360 16 16 3 2 1 687.89 53.46
MiniGuiLib.minigui.Dialog.pickOpenFile MiniGuiLib/minigui.ml:2345 3 1 1 0 0 97.67 75.53
MiniGuiLib.minigui.Dialog.pickSaveFile MiniGuiLib/minigui.ml:2353 3 1 1 0 0 97.67 75.53
MiniGuiLib.minigui.Dialog.question MiniGuiLib/minigui.ml:2202 3 1 1 0 0 108 75.22
MiniGuiLib.minigui.Dialog.resultName MiniGuiLib/minigui.ml:2023 10 15 8 7 1 343.13 59.36
MiniGuiLib.minigui.Dialog.retryCancel MiniGuiLib/minigui.ml:2226 3 1 1 0 0 108 75.22
MiniGuiLib.minigui.Dialog.setValue MiniGuiLib/minigui.ml:2280 6 6 3 2 1 214.05 66.3
MiniGuiLib.minigui.Dialog.showError MiniGuiLib/minigui.ml:2178 3 1 1 0 0 125.1 74.77
MiniGuiLib.minigui.Dialog.showInfo MiniGuiLib/minigui.ml:2146 3 1 1 0 0 125.1 74.77
MiniGuiLib.minigui.Dialog.showInput MiniGuiLib/minigui.ml:2334 6 5 2 1 1 266.27 65.77
MiniGuiLib.minigui.Dialog.showMessage MiniGuiLib/minigui.ml:2040 4 2 1 0 0 235.23 70.13
MiniGuiLib.minigui.Dialog.showModal MiniGuiLib/minigui.ml:2289 19 18 8 10 3 708.24 51.07
MiniGuiLib.minigui.Dialog.showWarning MiniGuiLib/minigui.ml:2162 3 1 1 0 0 125.1 74.77
MiniGuiLib.minigui.Dialog.warning MiniGuiLib/minigui.ml:2170 3 1 1 0 0 108 75.22
MiniGuiLib.minigui.Dialog.yesNo MiniGuiLib/minigui.ml:2210 3 1 1 0 0 108 75.22
MiniGuiLib.minigui.Dialog.yesNoCancel MiniGuiLib/minigui.ml:2218 3 1 1 0 0 108 75.22
MiniGuiLib.minigui.DrawingCanvas.clear MiniGuiLib/minigui.ml:8223 3 1 1 0 0 99.91 75.46
MiniGuiLib.minigui.DrawingCanvas.create MiniGuiLib/minigui.ml:8217 3 1 1 0 0 179.31 73.68
MiniGuiLib.minigui.DrawingCanvas.drawText MiniGuiLib/minigui.ml:8255 3 1 1 0 0 140 74.43
MiniGuiLib.minigui.DrawingCanvas.fillRect MiniGuiLib/minigui.ml:8245 3 1 1 0 0 151.24 74.2
MiniGuiLib.minigui.DrawingCanvas.line MiniGuiLib/minigui.ml:8234 3 1 1 0 0 151.24 74.2
MiniGuiLib.minigui.EditableComboBox.create MiniGuiLib/minigui.ml:3411 12 12 3 2 1 1160.75 54.6
MiniGuiLib.minigui.Events.beginDataGridEdit MiniGuiLib/minigui.ml:5297 40 49 12 11 1 1967.77 40.37
MiniGuiLib.minigui.Events.beginSplitterDrag MiniGuiLib/minigui.ml:5221 17 17 3 2 1 398.51 54.55
MiniGuiLib.minigui.Events.bindBlur MiniGuiLib/minigui.ml:5099 4 2 1 0 0 155.59 71.38
MiniGuiLib.minigui.Events.bindChange MiniGuiLib/minigui.ml:5072 11 6 13 14 2 729.32 55.49
MiniGuiLib.minigui.Events.bindChanged MiniGuiLib/minigui.ml:5055 11 6 13 14 2 729.32 55.49
MiniGuiLib.minigui.Events.bindClick MiniGuiLib/minigui.ml:4940 4 2 1 0 0 155.59 71.38
MiniGuiLib.minigui.Events.bindClicked MiniGuiLib/minigui.ml:4950 4 2 1 0 0 155.59 71.38
MiniGuiLib.minigui.Events.bindClose MiniGuiLib/minigui.ml:4920 4 2 1 0 0 155.59 71.38
MiniGuiLib.minigui.Events.bindFocus MiniGuiLib/minigui.ml:5089 4 2 1 0 0 155.59 71.38
MiniGuiLib.minigui.Events.bindLoad MiniGuiLib/minigui.ml:4910 4 2 1 0 0 155.59 71.38
MiniGuiLib.minigui.Events.bindResized MiniGuiLib/minigui.ml:4930 4 2 1 0 0 155.59 71.38
MiniGuiLib.minigui.Events.bindScrollChanged MiniGuiLib/minigui.ml:5029 3 1 1 0 0 116 75
MiniGuiLib.minigui.Events.bindScrollEvent MiniGuiLib/minigui.ml:5016 7 4 2 1 1 276.9 64.19
MiniGuiLib.minigui.Events.bindSelected MiniGuiLib/minigui.ml:5006 3 1 1 0 0 116 75
MiniGuiLib.minigui.Events.bindSelectionChanged MiniGuiLib/minigui.ml:4997 3 1 1 0 0 116 75
MiniGuiLib.minigui.Events.bindSelectionEvent MiniGuiLib/minigui.ml:4984 7 4 2 1 1 276.9 64.19
MiniGuiLib.minigui.Events.bindTextChanged MiniGuiLib/minigui.ml:4974 3 1 1 0 0 116 75
MiniGuiLib.minigui.Events.bindTextEvent MiniGuiLib/minigui.ml:4961 7 4 2 1 1 276.9 64.19
MiniGuiLib.minigui.Events.bindValueChanged MiniGuiLib/minigui.ml:5038 11 6 13 14 2 729.32 55.49
MiniGuiLib.minigui.Events.commitDataGridEdit MiniGuiLib/minigui.ml:5342 27 25 5 5 2 585.41 48.73
MiniGuiLib.minigui.Events.controlByHandle MiniGuiLib/minigui.ml:5183 12 9 6 11 4 376.52 57.62
MiniGuiLib.minigui.Events.dispatch MiniGuiLib/minigui.ml:5109 5 4 2 1 1 229.25 67.96
MiniGuiLib.minigui.Events.dispatchClickByHandle MiniGuiLib/minigui.ml:5481 26 20 12 30 5 1312.4 45.69
MiniGuiLib.minigui.Events.dispatchClose MiniGuiLib/minigui.ml:5147 15 14 6 8 3 556.28 54.32
MiniGuiLib.minigui.Events.dispatchCommand MiniGuiLib/minigui.ml:5742 59 42 27 68 5 2855.61 33.54
MiniGuiLib.minigui.Events.dispatchContextMenu MiniGuiLib/minigui.ml:5513 32 28 13 33 6 1530 43.12
MiniGuiLib.minigui.Events.dispatchControlTextBindings MiniGuiLib/minigui.ml:5202 13 11 5 5 2 480.8 56.25
MiniGuiLib.minigui.Events.dispatchFocusByHandle MiniGuiLib/minigui.ml:5374 23 17 7 12 4 618.59 49.81
MiniGuiLib.minigui.Events.dispatchLoad MiniGuiLib/minigui.ml:5130 13 11 5 5 2 415.47 56.69
MiniGuiLib.minigui.Events.dispatchNotify MiniGuiLib/minigui.ml:5404 72 70 38 94 5 3902.49 29.23
MiniGuiLib.minigui.Events.dispatchResize MiniGuiLib/minigui.ml:5168 11 9 5 5 2 425.73 58.2
MiniGuiLib.minigui.Events.dispatchScroll MiniGuiLib/minigui.ml:5708 28 31 15 41 4 1341.24 44.52
MiniGuiLib.minigui.Events.dispatchScrollViewer MiniGuiLib/minigui.ml:5672 30 31 19 67 7 1584 42.82
MiniGuiLib.minigui.Events.dispatchSelectionClickedByHandle MiniGuiLib/minigui.ml:5626 40 42 24 64 5 2090.91 38.58
MiniGuiLib.minigui.Events.dispatchTabChangedByHandle MiniGuiLib/minigui.ml:5566 22 19 9 17 4 810.97 49.14
MiniGuiLib.minigui.Events.dispatchTabClickedByHandle MiniGuiLib/minigui.ml:5594 26 23 9 17 4 1131.58 46.54
MiniGuiLib.minigui.Events.dragSplitter MiniGuiLib/minigui.ml:5245 34 32 8 9 2 1174 44.02
MiniGuiLib.minigui.Events.endSplitterDrag MiniGuiLib/minigui.ml:5283 8 8 3 2 1 180.94 64.09
MiniGuiLib.minigui.Events.findWindowByHandle MiniGuiLib/minigui.ml:5118 9 9 6 6 2 371.56 60.38
MiniGuiLib.minigui.Events.isControlKind MiniGuiLib/minigui.ml:5550 12 9 7 12 4 427.35 57.1
MiniGuiLib.minigui.FilePicker.create MiniGuiLib/minigui.ml:2468 10 10 3 2 1 1008.11 56.75
MiniGuiLib.minigui.FolderPicker.create MiniGuiLib/minigui.ml:2492 10 10 3 2 1 964.31 56.89
MiniGuiLib.minigui.GroupBox.create MiniGuiLib/minigui.ml:2932 8 7 2 1 1 840.25 59.55
MiniGuiLib.minigui.Image.create MiniGuiLib/minigui.ml:2743 14 14 5 5 2 1253.61 52.63
MiniGuiLib.minigui.Label.create MiniGuiLib/minigui.ml:2405 5 3 1 0 0 671.73 64.82
MiniGuiLib.minigui.LinkLabel.create MiniGuiLib/minigui.ml:2833 10 10 3 2 1 959.46 56.9
MiniGuiLib.minigui.ListBox.create MiniGuiLib/minigui.ml:3438 12 12 3 2 1 1160.75 54.6
MiniGuiLib.minigui.ListView.create MiniGuiLib/minigui.ml:3213 13 13 3 2 1 1189.91 53.76
MiniGuiLib.minigui.ListView.createColumns MiniGuiLib/minigui.ml:3239 13 13 3 2 1 1218.46 53.69
MiniGuiLib.minigui.MenuBar.create MiniGuiLib/minigui.ml:3090 11 11 4 3 1 1136.45 55.35
MiniGuiLib.minigui.NumberBox.create MiniGuiLib/minigui.ml:2611 11 11 3 2 1 1064.65 55.68
MiniGuiLib.minigui.Panel.create MiniGuiLib/minigui.ml:2856 8 7 2 1 1 824.37 59.61
MiniGuiLib.minigui.Panel.createTabPage MiniGuiLib/minigui.ml:2874 18 15 4 4 2 1128.81 50.71
MiniGuiLib.minigui.PasswordBox.create MiniGuiLib/minigui.ml:2585 9 8 2 1 1 909.58 58.2
MiniGuiLib.minigui.ProgressBar.create MiniGuiLib/minigui.ml:3020 11 10 2 1 1 1004.61 55.99
MiniGuiLib.minigui.PropertyGrid.create MiniGuiLib/minigui.ml:8325 11 9 3 3 2 578.7 57.54
MiniGuiLib.minigui.PropertyGrid.getValue MiniGuiLib/minigui.ml:8340 3 1 1 0 0 79.95 76.13
MiniGuiLib.minigui.PropertyGrid.setValue MiniGuiLib/minigui.ml:8348 3 1 1 0 0 97.67 75.53
MiniGuiLib.minigui.RadioButton.create MiniGuiLib/minigui.ml:2719 9 9 3 2 1 970.74 57.86
MiniGuiLib.minigui.RichTextBox.create MiniGuiLib/minigui.ml:8097 3 1 1 0 0 179.31 73.68
MiniGuiLib.minigui.RichTextBox.formatRange MiniGuiLib/minigui.ml:8108 3 1 1 0 0 128.93 74.68
MiniGuiLib.minigui.ScrollBar.create MiniGuiLib/minigui.ml:2959 12 12 3 2 1 1178.24 54.55
MiniGuiLib.minigui.ScrollViewer.create MiniGuiLib/minigui.ml:2907 12 14 5 4 1 1134.39 54.4
MiniGuiLib.minigui.SearchBox.create MiniGuiLib/minigui.ml:2540 9 8 2 1 1 893.59 58.25
MiniGuiLib.minigui.Separator.create MiniGuiLib/minigui.ml:2771 7 6 2 1 1 807.3 60.94
MiniGuiLib.minigui.Slider.create MiniGuiLib/minigui.ml:2990 14 14 3 2 1 1276.53 52.85
MiniGuiLib.minigui.SpinBox.create MiniGuiLib/minigui.ml:2639 20 19 4 3 1 1716.7 48.43
MiniGuiLib.minigui.Splitter.create MiniGuiLib/minigui.ml:2792 3 1 1 0 0 224.01 73
MiniGuiLib.minigui.Splitter.createPane MiniGuiLib/minigui.ml:2808 11 11 3 2 1 1092.68 55.6
MiniGuiLib.minigui.StatusBar.create MiniGuiLib/minigui.ml:3140 9 8 2 1 1 845.75 58.42
MiniGuiLib.minigui.TabControl.addTab MiniGuiLib/minigui.ml:3065 11 11 3 2 1 477.02 58.12
MiniGuiLib.minigui.TabControl.create MiniGuiLib/minigui.ml:3046 14 11 4 4 2 1137.41 53.06
MiniGuiLib.minigui.TextArea.create MiniGuiLib/minigui.ml:2562 10 9 2 1 1 985.2 56.96
MiniGuiLib.minigui.TextBox.create MiniGuiLib/minigui.ml:2444 9 8 2 1 1 893.59 58.25
MiniGuiLib.minigui.TimePicker.create MiniGuiLib/minigui.ml:3338 9 8 2 1 1 893.59 58.25
MiniGuiLib.minigui.ToggleSwitch.create MiniGuiLib/minigui.ml:2696 9 9 3 2 1 970.74 57.86
MiniGuiLib.minigui.ToolBar.create MiniGuiLib/minigui.ml:3163 11 11 4 3 1 1136.45 55.35
MiniGuiLib.minigui.TrayIcon.create MiniGuiLib/minigui.ml:8186 3 1 1 0 0 179.31 73.68
MiniGuiLib.minigui.TrayIcon.setIcon MiniGuiLib/minigui.ml:8200 3 1 1 0 0 77.71 76.22
MiniGuiLib.minigui.TrayIcon.setItems MiniGuiLib/minigui.ml:8193 3 1 1 0 0 101.58 75.41
MiniGuiLib.minigui.TreeView.create MiniGuiLib/minigui.ml:3188 10 9 2 1 1 996.66 56.92
MiniGuiLib.minigui.WebView.create MiniGuiLib/minigui.ml:8149 3 1 1 0 0 179.31 73.68
MiniGuiLib.minigui.WebView.getStatus MiniGuiLib/minigui.ml:8169 3 1 1 0 0 70.31 76.52
MiniGuiLib.minigui.WebView.loadHtml MiniGuiLib/minigui.ml:8163 3 1 1 0 0 77.71 76.22
MiniGuiLib.minigui.WebView.navigate MiniGuiLib/minigui.ml:8156 3 1 1 0 0 77.71 76.22
MiniGuiLib.minigui.Window.close MiniGuiLib/minigui.ml:1956 5 5 3 2 1 140 69.32
MiniGuiLib.minigui.Window.create MiniGuiLib/minigui.ml:1888 28 30 12 12 2 1763.25 44.09
MiniGuiLib.minigui.Window.getClientHeight MiniGuiLib/minigui.ml:1981 7 8 4 3 1 326.9 63.42
MiniGuiLib.minigui.Window.getClientWidth MiniGuiLib/minigui.ml:1971 7 8 4 3 1 323.33 63.45
MiniGuiLib.minigui.Window.installProc MiniGuiLib/minigui.ml:1935 9 10 4 3 1 260.06 61.74
MiniGuiLib.minigui.Window.setTitle MiniGuiLib/minigui.ml:1965 3 1 1 0 0 70.31 76.52
MiniGuiLib.minigui.Window.show MiniGuiLib/minigui.ml:1919 12 14 5 4 1 480 57.01
MiniGuiLib.minigui.Window.startResizeTimer MiniGuiLib/minigui.ml:1948 5 5 3 2 1 200.67 68.23
miniGuiTypeName tools/minigui.ml:1133 12 11 4 4 2 484.3 57.12
miniIdent tools/minigui.ml:1097 18 17 7 7 2 650.1 51.98
mlString tools/minigui.ml:1148 18 17 9 13 2 839.58 50.93
newResult tools/minigui.ml:216 3 1 1 0 0 136.23 74.51
normalizePath tools/minigui.ml:799 24 20 13 19 3 1137.41 46.75
opt tools/minigui.ml:2547 6 4 3 3 2 203.56 66.46
ord tools/minigui.ml:328 4 3 3 2 1 160.54 71.02
parseArray tools/minigui.ml:636 25 19 5 6 2 923.64 48.07
parseJson tools/minigui.ml:664 10 12 6 5 1 623.68 57.81
parseJsonString tools/minigui.ml:405 85 67 35 83 5 4791.54 27.43
parseNumber tools/minigui.ml:494 51 40 22 29 2 2632.01 35.84
parseObject tools/minigui.ml:592 40 32 7 10 2 1738.59 41.42
parseOptions tools/minigui.ml:2514 28 24 23 40 3 2323.35 41.77
parserError tools/minigui.ml:376 3 2 2 1 1 149.34 74.1
parseValue tools/minigui.ml:560 28 25 15 15 2 1328.2 44.55
pathSlash tools/minigui.ml:677 3 1 1 0 0 66.61 76.69
pathUnslash tools/minigui.ml:687 3 1 1 0 0 66.61 76.69
prop tools/minigui.ml:237 9 10 6 6 2 445.88 59.83
quoteProcessArgument tools/minigui.ml:912 31 26 8 14 3 976.96 45.46
readHandle tools/minigui.ml:954 7 4 2 1 1 187.98 65.37
readMson tools/minigui.ml:1203 13 9 3 2 1 378.92 57.24
readU32 tools/minigui.ml:947 3 1 1 0 0 210.83 73.19
relativePath tools/minigui.ml:861 21 15 9 10 2 933.56 49.15
resolveExecutable tools/minigui.ml:1017 8 8 4 3 1 317.29 62.25
resolveMsonPath tools/minigui.ml:1221 17 14 7 14 4 575 52.89
resolvePythonInterpreter tools/minigui.ml:1041 13 11 5 6 2 422.64 56.64
resourceValue tools/minigui.ml:1183 16 12 7 10 3 691.12 52.91
runCompiler tools/minigui.ml:2568 19 16 7 7 2 872.72 50.57
runProcess tools/minigui.ml:965 24 24 8 8 2 1214.28 47.22
setProp tools/minigui.ml:1373 14 10 5 7 3 470.65 55.61
skipWs tools/minigui.ml:367 5 2 3 2 1 182.66 68.51
splitPathParts tools/minigui.ml:848 5 4 2 1 1 156.08 69.13
stackHas tools/minigui.ml:1242 7 6 4 4 2 252.01 64.21
stackSlotWidth tools/minigui.ml:1856 3 1 1 0 0 140.87 74.41
startsAt tools/minigui.ml:552 4 3 2 1 1 190.16 70.64
stringArrayLiteral tools/minigui.ml:1909 10 9 4 3 1 696.22 57.74
stringProp tools/minigui.ml:1898 5 4 2 1 1 229.25 67.96
tableArrayLiteral tools/minigui.ml:1990 21 16 7 12 4 1323.93 48.36
testControlProperties tools/minigui.ml:1530 72 70 76 186 9 8886.92 21.61
testLayoutNode tools/minigui.ml:1615 49 35 15 32 6 2970 36.8
testPropertyNames tools/minigui.ml:1445 10 9 6 6 2 524.79 58.33
treeArrayLiteral tools/minigui.ml:1973 11 8 4 4 2 662.83 56.99
trimDotSlash tools/minigui.ml:693 7 4 2 1 1 185.84 65.41
upperFirst tools/minigui.ml:1118 12 11 5 4 1 471.89 57.06
usage tools/minigui.ml:2555 6 4 1 0 0 46.51 71.21
validateMson tools/minigui.ml:1684 79 73 30 75 7 6684.95 27.79
writeValidation tools/minigui.ml:2590 9 5 3 3 2 208.97 62.54

Code duplication

A clone group is an exact sequence of 6 normalized, contiguous code lines found more than once. Comments and formatting whitespace are ignored. Duplicated-line totals count overlapping windows only once.

Found 54 clone group(s). At most 54 groups are shown.

Clone 1 — 2 occurrences
if currentIndex == index then return current . toString ( ) end if
current . clear ( )
currentIndex = currentIndex + 1
else
current . appendString ( ch )
end if
Clone 2 — 2 occurrences
current . clear ( )
currentIndex = currentIndex + 1
else
current . appendString ( ch )
end if
end for
Clone 3 — 2 occurrences
currentIndex = currentIndex + 1
else
current . appendString ( ch )
end if
end for
end if
Clone 4 — 2 occurrences
else
current . appendString ( ch )
end if
end for
end if
if currentIndex == index then return current . toString ( ) end if
Clone 5 — 2 occurrences
current . appendString ( ch )
end if
end for
end if
if currentIndex == index then return current . toString ( ) end if
return ""
Clone 6 — 2 occurrences
end if
end for
end if
if currentIndex == index then return current . toString ( ) end if
return ""
end function
Clone 7 — 2 occurrences
end if
end if
end for
end if
return true
end function
Clone 8 — 2 occurrences
static function create ( app , parent , id , text , x , y , width , height )
nid = app . nextNativeId
app . nextNativeId = app . nextNativeId + 1
style = WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_AUTOHSCROLL
hwnd = CreateWindowExW ( 0 , "EDIT" , text , style , x , y , width , height , parent . handle , nid , void , void )
if hwnd != 0 then _installWindowProc ( hwnd ) end if
Clone 9 — 2 occurrences
nid = app . nextNativeId
app . nextNativeId = app . nextNativeId + 1
label = text
if label == "" then label = "Browse..." end if
hwnd = CreateWindowExW ( 0 , "BUTTON" , label , WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON , x , y , width , height , parent . handle , nid , void , void )
if hwnd != 0 then _installWindowProc ( hwnd ) end if
Clone 10 — 2 occurrences
app . nextNativeId = app . nextNativeId + 1
style = WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_AUTOHSCROLL | ES_NUMBER
startText = text
if startText == "" then startText = "" + value end if
hwnd = CreateWindowExW ( 0 , "EDIT" , startText , style , x , y , width , height , parent . handle , nid , void , void )
if hwnd != 0 then _installWindowProc ( hwnd ) end if
Clone 11 — 2 occurrences
static function create ( app , parent , id , text , x , y , width , height , checked )
nid = app . nextNativeId
app . nextNativeId = app . nextNativeId + 1
hwnd = CreateWindowExW ( 0 , "BUTTON" , text , WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_AUTOCHECKBOX , x , y , width , height , parent . handle , nid , void , void )
if hwnd != 0 then _installWindowProc ( hwnd ) end if
if checked then SendMessageW ( hwnd , BM_SETCHECK , BST_CHECKED , 0 ) end if
Clone 12 — 2 occurrences
InitCommonControls ( )
nid = app . nextNativeId
app . nextNativeId = app . nextNativeId + 1
hwnd = CreateWindowExW ( 0 , "SysListView32" , text , WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | LVS_REPORT | LVS_SINGLESEL , x , y , width , height , parent . handle , nid , void , void )
if hwnd != 0 then _installWindowProc ( hwnd ) end if
c = NativeControl ( id , "ListView" , hwnd , nid , text , x , y , width , height , true , true , text , selectedIndex , 0 , 100 , 0 , 1 , 10 , x , y , width , height , 0 , 0 , parent , parent . width , parent . height )
Clone 13 — 2 occurrences
Control . setListViewColumns ( c , columns )
Control . setItems ( c , items )
if selectedIndex >= 0 then Control . setSelectedIndex ( c , selectedIndex ) end if
c . lastSelection = Control . getSelectedIndex ( c )
return Application . addControl ( app , c )
end function
Clone 14 — 5 occurrences
Control . setItems ( c , items )
if selectedIndex >= 0 then Control . setSelectedIndex ( c , selectedIndex ) end if
c . lastSelection = Control . getSelectedIndex ( c )
return Application . addControl ( app , c )
end function
end struct
Clone 15 — 2 occurrences
static function create ( app , parent , id , text , x , y , width , height )
InitCommonControls ( )
nid = app . nextNativeId
app . nextNativeId = app . nextNativeId + 1
hwnd = CreateWindowExW ( 0 , "SysDateTimePick32" , text , WS_CHILD | WS_VISIBLE | WS_TABSTOP | DTS_SHORTDATEFORMAT , x , y , width , height , parent . handle , nid , void , void )
if hwnd != 0 then _installWindowProc ( hwnd ) end if
Clone 16 — 3 occurrences
global _layoutHandles
global _layoutResizeModes
global _layoutAnchors
global _layoutMinWidths
global _layoutMinHeights
global _layoutMaxWidths
Clone 17 — 4 occurrences
global _layoutResizeModes
global _layoutAnchors
global _layoutMinWidths
global _layoutMinHeights
global _layoutMaxWidths
global _layoutMaxHeights
Clone 18 — 4 occurrences
end if
return true
end if
end if
end for
end if
Clone 19 — 2 occurrences
oldValue = c . lastSelection
newValue = Control . getSelectedIndex ( c )
if newValue < 0 then newValue = oldValue end if
c . lastSelection = newValue
Control . updateTabPages ( app , c )
if oldValue != newValue then
Clone 20 — 2 occurrences
newValue = Control . getSelectedIndex ( c )
if newValue < 0 then newValue = oldValue end if
c . lastSelection = newValue
Control . updateTabPages ( app , c )
if oldValue != newValue then
Events . dispatch ( b , b . eventType , oldValue , newValue )
Clone 21 — 2 occurrences
if newValue < 0 then newValue = oldValue end if
c . lastSelection = newValue
Control . updateTabPages ( app , c )
if oldValue != newValue then
Events . dispatch ( b , b . eventType , oldValue , newValue )
end if
Clone 22 — 2 occurrences
c . lastSelection = newValue
Control . updateTabPages ( app , c )
if oldValue != newValue then
Events . dispatch ( b , b . eventType , oldValue , newValue )
end if
return true
Clone 23 — 2 occurrences
Control . updateTabPages ( app , c )
if oldValue != newValue then
Events . dispatch ( b , b . eventType , oldValue , newValue )
end if
return true
end if
Clone 24 — 6 occurrences
return true
end if
end if
end for
return false
end function
Clone 25 — 2 occurrences
clickValue = Dialog . pickOpenFile ( app , _itemTextAt ( c . lastText , 0 ) , _itemTextAt ( c . lastText , 1 ) )
else if c . kind == "FolderPicker" then
clickValue = Dialog . pickFolder ( app , c . lastText )
else if c . kind == "ColorPicker" then
clickValue = Dialog . pickColor ( app , _itemTextAt ( c . lastText , 0 ) , _itemTextAt ( c . lastText , 1 ) )
end if
Clone 26 — 2 occurrences
else if c . kind == "FolderPicker" then
clickValue = Dialog . pickFolder ( app , c . lastText )
else if c . kind == "ColorPicker" then
clickValue = Dialog . pickColor ( app , _itemTextAt ( c . lastText , 0 ) , _itemTextAt ( c . lastText , 1 ) )
end if
Events . dispatch ( b , b . eventType , false , clickValue )
Clone 27 — 2 occurrences
clickValue = Dialog . pickFolder ( app , c . lastText )
else if c . kind == "ColorPicker" then
clickValue = Dialog . pickColor ( app , _itemTextAt ( c . lastText , 0 ) , _itemTextAt ( c . lastText , 1 ) )
end if
Events . dispatch ( b , b . eventType , false , clickValue )
return true
Clone 28 — 2 occurrences
else if c . kind == "ColorPicker" then
clickValue = Dialog . pickColor ( app , _itemTextAt ( c . lastText , 0 ) , _itemTextAt ( c . lastText , 1 ) )
end if
Events . dispatch ( b , b . eventType , false , clickValue )
return true
end if
Clone 29 — 2 occurrences
clickValue = Dialog . pickColor ( app , _itemTextAt ( c . lastText , 0 ) , _itemTextAt ( c . lastText , 1 ) )
end if
Events . dispatch ( b , b . eventType , false , clickValue )
return true
end if
end if
Clone 30 — 2 occurrences
end if
Events . dispatch ( b , b . eventType , false , clickValue )
return true
end if
end if
end for
Clone 31 — 2 occurrences
end for
end if
return true
end if
end if
end for
Clone 32 — 4 occurrences
end if
return true
end if
end if
end for
return false
Clone 33 — 3 occurrences
if app is void then return false end if
if len ( app . selectionBindings ) == 0 then return false end if
for s = 0 to len ( app . selectionBindings ) - 1
b = app . selectionBindings [ s ]
c = b . control
if c is void == false then
Clone 34 — 2 occurrences
if len ( app . selectionBindings ) == 0 then return false end if
for s = 0 to len ( app . selectionBindings ) - 1
b = app . selectionBindings [ s ]
c = b . control
if c is void == false then
if c . kind == "TabControl" and c . handle == hwndControl then
Clone 35 — 2 occurrences
if oldValue != newValue then
Events . dispatch ( b , b . eventType , oldValue , newValue )
end if
return true
end if
end if
Clone 36 — 2 occurrences
Events . dispatch ( b , b . eventType , oldValue , newValue )
end if
return true
end if
end if
end for
Clone 37 — 2 occurrences
if code == SB_LINEUP then newValue = oldValue - c . smallStep end if
if code == SB_LINEDOWN then newValue = oldValue + c . smallStep end if
if code == SB_PAGEUP then newValue = oldValue - c . largeStep end if
if code == SB_PAGEDOWN then newValue = oldValue + c . largeStep end if
if code == SB_TOP then newValue = c . scrollMin end if
if code == SB_BOTTOM then newValue = c . scrollMax end if
Clone 38 — 2 occurrences
if code == SB_LINEDOWN then newValue = oldValue + c . smallStep end if
if code == SB_PAGEUP then newValue = oldValue - c . largeStep end if
if code == SB_PAGEDOWN then newValue = oldValue + c . largeStep end if
if code == SB_TOP then newValue = c . scrollMin end if
if code == SB_BOTTOM then newValue = c . scrollMax end if
if code == SB_THUMBPOSITION or code == SB_THUMBTRACK then newValue = pos end if
Clone 39 — 2 occurrences
global _subclassHandles
global _subclassOldProcs
global _tooltipHandles
global _tooltipControlHandles
global _tooltipTextBytes
global _styleHandles
Clone 40 — 2 occurrences
global _subclassOldProcs
global _tooltipHandles
global _tooltipControlHandles
global _tooltipTextBytes
global _styleHandles
global _styleForegrounds
Clone 41 — 2 occurrences
global _tooltipHandles
global _tooltipControlHandles
global _tooltipTextBytes
global _styleHandles
global _styleForegrounds
global _styleBackgrounds
Clone 42 — 2 occurrences
global _tooltipControlHandles
global _tooltipTextBytes
global _styleHandles
global _styleForegrounds
global _styleBackgrounds
global _styleBrushes
Clone 43 — 2 occurrences
global _tooltipTextBytes
global _styleHandles
global _styleForegrounds
global _styleBackgrounds
global _styleBrushes
global _layoutHandles
Clone 44 — 2 occurrences
global _styleHandles
global _styleForegrounds
global _styleBackgrounds
global _styleBrushes
global _layoutHandles
global _layoutResizeModes
Clone 45 — 2 occurrences
global _styleForegrounds
global _styleBackgrounds
global _styleBrushes
global _layoutHandles
global _layoutResizeModes
global _layoutAnchors
Clone 46 — 2 occurrences
global _styleBackgrounds
global _styleBrushes
global _layoutHandles
global _layoutResizeModes
global _layoutAnchors
global _layoutMinWidths
Clone 47 — 2 occurrences
global _styleBrushes
global _layoutHandles
global _layoutResizeModes
global _layoutAnchors
global _layoutMinWidths
global _layoutMinHeights
Clone 48 — 2 occurrences
global _layoutAnchors
global _layoutMinWidths
global _layoutMinHeights
global _layoutMaxWidths
global _layoutMaxHeights
global _resizeInitializedWindows
Clone 49 — 2 occurrences
text = "" + value
output = sb . StringBuilder . withCapacity ( len ( text ) )
if len ( text ) > 0 then
for i = 0 to len ( text ) - 1
ch = text [ i ]
if ch == "." then break end if
Clone 50 — 2 occurrences
output = sb . StringBuilder . withCapacity ( len ( text ) )
if len ( text ) > 0 then
for i = 0 to len ( text ) - 1
ch = text [ i ]
if ch == "." then break end if
output . appendString ( ch )
Clone 51 — 2 occurrences
if len ( text ) > 0 then
for i = 0 to len ( text ) - 1
ch = text [ i ]
if ch == "." then break end if
output . appendString ( ch )
end for
Clone 52 — 2 occurrences
for i = 0 to len ( text ) - 1
ch = text [ i ]
if ch == "." then break end if
output . appendString ( ch )
end for
end if
Clone 53 — 2 occurrences
v = resourceValue ( result , path , prop ( prop ( node , "properties" ) , name ) )
if v . kind != "array" then return "[]" end if
if len ( v . items ) == 0 then return "[]" end if
parts = list . List . withCapacity ( len ( v . items ) )
for i = 0 to len ( v . items ) - 1
item = resourceValue ( result , path , v . items [ i ] )
Clone 54 — 3 occurrences
return 0
end if
while p . pos < len ( p . text ) and isDigit ( charAt ( p . text , p . pos ) )
p . pos = p . pos + 1
end while
end if

Definitions

  • Cognitive complexity: decision complexity weighted by nesting; logical and/or operators add one.
  • Cyclomatic complexity: one plus decisions from conditions, loops, switch cases, and logical and/or operators.
  • Documentation coverage: percentage of documented API summaries, parameter contracts, fields, constants, globals, and enum variants. Empty categories report 100% and do not affect the overall ratio.
  • Halstead metrics: operators and operands are counted from MiniLang lexical tokens. Estimated defects are volume divided by 3,000.
  • Maintainability index: normalized 0–100 index based on Halstead volume, cyclomatic complexity, and source lines. Project MI is source-line weighted across files.
  • SLOC: non-empty lines containing MiniLang tokens after conditional preprocessing; comment-only lines are excluded.