apple / swift-docc
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 3% duplication:
    • 22,234 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 684 duplicated lines
  • 46 duplicates
system3% (684 lines)
Duplication per Extension
swift2% (597 lines)
html100% (87 lines)
Duplication per Component (primary)
Sources/SwiftDocC/Model4% (270 lines)
Sources/SwiftDocC/Infrastructure1% (98 lines)
Sources/SwiftDocC/Semantics1% (54 lines)
Sources/SwiftDocC/Indexing3% (51 lines)
Sources/SwiftDocC/Utility4% (42 lines)
Sources/DocCDocumentation/DocCDocumentation.docc100% (29 lines)
Sources/SwiftDocCUtilities/SwiftDocCUtilities.docc100% (29 lines)
Sources/SwiftDocC/SwiftDocC.docc100% (29 lines)
Sources/SwiftDocCUtilities/Action2% (22 lines)
Sources/SwiftDocC/DocumentationService3% (18 lines)
Sources/SwiftDocCUtilities/ArgumentParsing2% (14 lines)
ROOT3% (12 lines)
Sources/SwiftDocCUtilities/Utility4% (10 lines)
Sources/SwiftDocC/Coverage1% (6 lines)
Sources/DocCDocumentation0% (0 lines)
Sources/SwiftDocC/Benchmark0% (0 lines)
Sources/SwiftDocC/Checker0% (0 lines)
Sources/SwiftDocC/Converter0% (0 lines)
Sources/SwiftDocC/LinkTargets0% (0 lines)
Sources/SwiftDocC/Servers0% (0 lines)
Sources/SwiftDocCTestUtilities0% (0 lines)
Sources/SwiftDocCUtilities0% (0 lines)
Sources/SwiftDocCUtilities/PreviewServer0% (0 lines)
Sources/SwiftDocCUtilities/Transformers0% (0 lines)
Sources/docc0% (0 lines)
Sources/generate-symbol-graph0% (0 lines)

Duplication Between Components (50+ lines)

G Sources/SwiftDocC/SwiftDocC.docc Sources/SwiftDocC/SwiftDocC.docc Sources/SwiftDocCUtilities/SwiftDocCUtilities.docc Sources/SwiftDocCUtilities/SwiftDocCUtilities.docc Sources/SwiftDocC/SwiftDocC.docc--Sources/SwiftDocCUtilities/SwiftDocCUtilities.docc 58 Sources/DocCDocumentation/DocCDocumentation.docc Sources/DocCDocumentation/DocCDocumentation.docc Sources/DocCDocumentation/DocCDocumentation.docc--Sources/SwiftDocCUtilities/SwiftDocCUtilities.docc 58 Sources/DocCDocumentation/DocCDocumentation.docc--Sources/SwiftDocC/SwiftDocC.docc 58

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 46 duplicates...
Size#FoldersFilesLinesCode
38 x 2 Sources/SwiftDocC/Model/Rendering
Sources/SwiftDocC/Model/Rendering
DocumentationContentRenderer.swift
RenderNodeTranslator+Swift.swift
482:551 (12%)
17:86 (97%)
view
18 x 2 Sources/SwiftDocC/Model/Rendering/References
Sources/SwiftDocC/Model/Rendering/References
ImageReference.swift
VideoReference.swift
87:119 (33%)
95:126 (31%)
view
17 x 2 Sources/SwiftDocC/SwiftDocC.docc
Sources/SwiftDocCUtilities/SwiftDocCUtilities.docc
header.html
header.html
10:27 (100%)
10:27 (100%)
view
17 x 2 Sources/DocCDocumentation/DocCDocumentation.docc
Sources/SwiftDocCUtilities/SwiftDocCUtilities.docc
header.html
header.html
10:27 (100%)
10:27 (100%)
view
17 x 2 Sources/DocCDocumentation/DocCDocumentation.docc
Sources/SwiftDocC/SwiftDocC.docc
header.html
header.html
10:27 (100%)
10:27 (100%)
view
12 x 2 Sources/DocCDocumentation/DocCDocumentation.docc
Sources/SwiftDocCUtilities/SwiftDocCUtilities.docc
footer.html
footer.html
10:23 (100%)
10:23 (100%)
view
12 x 2 Sources/DocCDocumentation/DocCDocumentation.docc
Sources/SwiftDocC/SwiftDocC.docc
footer.html
footer.html
10:23 (100%)
10:23 (100%)
view
12 x 2 Sources/SwiftDocC/SwiftDocC.docc
Sources/SwiftDocCUtilities/SwiftDocCUtilities.docc
footer.html
footer.html
10:23 (100%)
10:23 (100%)
view
11 x 2 Sources/SwiftDocC/Indexing/Navigator
Sources/SwiftDocC/Indexing/Navigator
NavigatorTree.swift
NavigatorTree.swift
311:329 (4%)
353:371 (4%)
view
11 x 2 Sources/SwiftDocC/Model/Rendering/References
Sources/SwiftDocC/Model/Rendering/References
ImageReference.swift
VideoReference.swift
67:82 (20%)
75:89 (18%)
view
10 x 2 Sources/SwiftDocC/Utility/FoundationExtensions
Sources/SwiftDocCUtiliti...ty/FoundationExtensions
URL+Relative.swift
URL+Relative.swift
13:31 (100%)
13:31 (100%)
view
10 x 2 Sources/SwiftDocC/Model/Rendering/References
Sources/SwiftDocC/Model/Rendering/References
TopicRenderReference.swift
TopicRenderReference.swift
138:147 (5%)
201:210 (5%)
view
9 x 2 Sources/SwiftDocC/Model/Rendering/Variants
Sources/SwiftDocC/Model/Rendering/Variants
VariantCollection+Symbol.swift
VariantCollection+Symbol.swift
138:151 (4%)
170:183 (4%)
view
9 x 2 Sources/SwiftDocC/Utility
Sources/SwiftDocC/Utility
Synchronization.swift
Synchronization.swift
66:74 (17%)
99:107 (17%)
view
9 x 2 Sources/SwiftDocC/Model/Rendering/References
Sources/SwiftDocC/Model/Rendering/References
ImageReference.swift
VideoReference.swift
50:60 (16%)
56:66 (15%)
view
9 x 2 Sources/SwiftDocC/Docume...Models/Services/Convert
Sources/SwiftDocC/Docume...Models/Services/Convert
ConvertRequest.swift
ConvertRequest.swift
148:156 (10%)
190:198 (10%)
view
8 x 2 Sources/SwiftDocC/Semant...p;Purpose Analyses
Sources/SwiftDocC/Semant...p;Purpose Analyses
DeprecatedArgument.swift
HasArgumentOfType.swift
45:56 (27%)
93:104 (16%)
view
8 x 2 Sources/SwiftDocC/Model/Rendering
Sources/SwiftDocC/Model/Rendering
RenderNodeTranslator.swift
RenderNodeTranslator.swift
180:191 (<1%)
753:764 (<1%)
view
8 x 2 Sources/SwiftDocC/Indexing/Navigator
Sources/SwiftDocCUtilities/Action/Actions/Convert
NavigatorIndex.swift
Indexer.swift
1018:1027 (1%)
90:99 (17%)
view
8 x 2 Sources/SwiftDocC/Infrastructure/Topic Graph
Sources/SwiftDocC/Infrastructure/Topic Graph
TopicGraph.swift
TopicGraph.swift
252:262 (5%)
272:282 (5%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
9 x 2 Sources/SwiftDocC/Semant...p;Purpose Analyses
Sources/SwiftDocC/Semant...p;Purpose Analyses
HasExactlyOne.swift
HasExactlyOne.swift
227:236 
238:247 
view
9 x 2 Sources/SwiftDocC/Utility/FoundationExtensions
Sources/SwiftDocCUtiliti...ty/FoundationExtensions
URL+Relative.swift
URL+Relative.swift
18:32 
18:32 
view