microsoft / vs-editor-api
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
  • 4% duplication:
    • 46,398 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,877 duplicated lines
  • 373 duplicates
system4% (1,877 lines)
Duplication per Extension
cs4% (1,877 lines)
Duplication per Component (primary)
src/Editor/Text/Impl3% (742 lines)
src/Editor/Text/Def4% (468 lines)
src/Editor/Language/Impl5% (203 lines)
src/Editor/FPF/WindowsBase7% (187 lines)
src/Editor/Text/Util5% (171 lines)
src/Editor/Language/Def1% (50 lines)
src/Editor/Core/Impl7% (49 lines)
src/Editor/Core/Def<1% (7 lines)
ROOT0% (0 lines)
build0% (0 lines)
src/Editor/FPF0% (0 lines)
src/Editor/FPF/PresentationCore0% (0 lines)
src/Editor/FPF/PresentationFramework0% (0 lines)
src/Editor/FPF/UIAutomationClient0% (0 lines)
src/Editor/FPF/UIAutomationProvider0% (0 lines)
src/Editor/FPF/UIAutomationTypes0% (0 lines)
src/Editor/Language/Util0% (0 lines)

Duplication Between Components (50+ lines)

G src/Editor/Language/Def src/Editor/Language/Def src/Editor/Text/Impl src/Editor/Text/Impl src/Editor/Language/Def--src/Editor/Text/Impl 114 src/Editor/Text/Util src/Editor/Text/Util src/Editor/Text/Impl--src/Editor/Text/Util 86 src/Editor/Text/Def src/Editor/Text/Def src/Editor/Text/Def--src/Editor/Text/Impl 102 src/Editor/Language/Impl src/Editor/Language/Impl src/Editor/Language/Impl--src/Editor/Text/Impl 84

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 373 duplicates...
Size#FoldersFilesLinesCode
34 x 2 src/Editor/Text/Impl/StandaloneUndo
src/Editor/Text/Util/TextDataUtil
WeakReferenceForDictionaryKey.cs
WeakReferenceForKey.cs
19:102 (100%)
16:99 (100%)
view
27 x 2 src/Editor/Text/Impl/DifferenceAlgorithm/TFS
src/Editor/Text/Impl/DifferenceAlgorithm/TFS
DiffFinder.cs
LCSDiff.cs
872:923 (8%)
92:141 (8%)
view
22 x 2 src/Editor/Text/Impl/EditorOperations
src/Editor/Text/Impl/EditorOperations
EditorOperations.cs
EditorOperations.cs
278:334 (<1%)
491:547 (<1%)
view
21 x 2 src/Editor/Text/Impl/EditorOperations
src/Editor/Text/Impl/EditorOperations
EditorOperations.cs
EditorOperations.cs
944:990 (<1%)
2396:2442 (<1%)
view
17 x 2 src/Editor/Text/Impl/EditorPrimitives
src/Editor/Text/Impl/EditorPrimitives
DefaultSelectionPrimitive.cs
DefaultTextRangePrimitive.cs
407:442 (7%)
240:275 (9%)
view
17 x 2 src/Editor/Text/Def/TextData/Model
src/Editor/Text/Def/TextData/Model
Tracking.cs
Tracking.cs
505:528 (5%)
549:572 (5%)
view
15 x 2 src/Editor/Text/Def/TextData/Model
src/Editor/Text/Def/TextData/Model
Tracking.cs
Tracking.cs
418:439 (5%)
460:481 (5%)
view
14 x 2 src/Editor/Text/Def/Internal/Language/Intellisense
src/Editor/Text/Util/TextUIUtil
NativeMethods.cs
WpfHelper.cs
37:60 (34%)
560:583 (3%)
view
14 x 2 src/Editor/Text/Impl/DifferenceAlgorithm
src/Editor/Text/Impl/DifferenceAlgorithm
SnapshotLineList.cs
TokenizedStringList.cs
114:146 (15%)
176:230 (18%)
view
14 x 2 src/Editor/Text/Util/TextDataUtil
src/Editor/Text/Util/TextDataUtil
MappingHelper.cs
MappingHelper.cs
77:99 (10%)
148:170 (10%)
view
13 x 2 src/Editor/FPF/WindowsBase/System.Windows
src/Editor/FPF/WindowsBase/System.Windows
Int32Rect.cs
Rect.cs
172:189 (14%)
352:369 (4%)
view
13 x 2 src/Editor/Text/Impl/EditorOperations
src/Editor/Text/Impl/EditorOperations
EditorOperations.cs
EditorOperations.cs
191:212 (<1%)
405:426 (<1%)
view
13 x 2 src/Editor/Text/Def/TextData/Model
src/Editor/Text/Def/TextData/Model
Tracking.cs
Tracking.cs
36:60 (4%)
80:104 (4%)
view
12 x 2 src/Editor/Text/Def/TextData/Model
src/Editor/Text/Def/TextData/Model
NormalizedSnapshotSpanCollection.cs
NormalizedSnapshotSpanCollection.cs
468:492 (2%)
507:531 (2%)
view
12 x 2 src/Editor/Language/Impl/Language/AsyncCompletion
src/Editor/Language/Impl/Language/AsyncCompletion
CompletionModel.cs
CompletionModel.cs
268:279 (4%)
329:340 (4%)
view
11 x 2 src/Editor/Language/Impl/Language/AsyncCompletion
src/Editor/Language/Impl/Language/AsyncCompletion
CompletionModel.cs
CompletionModel.cs
169:179 (4%)
189:199 (4%)
view
11 x 2 src/Editor/Text/Impl/TextModel/Projection
src/Editor/Text/Impl/TextModel/Projection
BufferGraph.cs
BufferGraph.cs
127:142 (2%)
208:224 (2%)
view
11 x 2 src/Editor/Text/Def/TextData/Model
src/Editor/Text/Def/TextData/Model
Tracking.cs
Tracking.cs
16:34 (3%)
222:240 (3%)
view
11 x 2 src/Editor/Text/Def/TextData/Model
src/Editor/Text/Def/TextData/Model
Tracking.cs
Tracking.cs
60:78 (3%)
274:292 (3%)
view
11 x 2 src/Editor/Text/Impl/TextModel/StringRebuilder
src/Editor/Text/Impl/TextModel/StringRebuilder
StringRebuilderForChars.cs
StringRebuilderForString.cs
71:84 (27%)
96:109 (19%)
view
Duplicated Units
The list of top 9 duplicated units.
See data for all 9 unit duplicates...
Size#FoldersFilesLinesCode
34 x 2 src/Editor/Text/Impl/StandaloneUndo
src/Editor/Text/Util/TextDataUtil
WeakReferenceForDictionaryKey.cs
WeakReferenceForKey.cs
61:103 
58:100 
view
15 x 2 src/Editor/Text/Util/TextDataUtil
src/Editor/Text/Util/TextDataUtil
TextUtilities.cs
TextUtilities.cs
32:47 
49:64 
view
14 x 2 src/Editor/FPF/WindowsBase/System.Windows
src/Editor/FPF/WindowsBase/System.Windows
Int32Rect.cs
Rect.cs
172:190 
352:370 
view
13 x 2 src/Editor/Text/Util/TextDataUtil
src/Editor/Text/Util/TextDataUtil
MappingPointSnapshot.cs
MappingSpanSnapshot.cs
23:38 
25:40 
view
11 x 2 src/Editor/Text/Util/TextDataUtil
src/Editor/Text/Util/TextDataUtil
GuardedOperations.cs
GuardedOperations.cs
343:354 
356:367 
view
8 x 2 src/Editor/Text/Def/TextLogic/Tagging
src/Editor/Text/Def/TextLogic/Tagging
MappingTagSpan.cs
TrackingTagSpan.cs
55:64 
32:41 
view
8 x 2 src/Editor/Text/Impl/TextModel/Projection
src/Editor/Text/Impl/TextModel/Projection
ElisionBuffer.cs
ProjectionBuffer.cs
471:483 
1017:1029 
view
7 x 2 src/Editor/Text/Impl/EditorOperations
src/Editor/Text/Impl/EditorOperations
AfterTextBufferChangeUndoPrimitive.cs
CollapsedMoveUndoPrimitive.cs
119:135 
98:108 
view
7 x 2 src/Editor/Text/Impl/EditorOperations
src/Editor/Text/Impl/EditorOperations
BeforeTextBufferChangeUndoPrimitive.cs
CollapsedMoveUndoPrimitive.cs
93:109 
35:44 
view