aws / aws-toolkit-vscode
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
  • 6% duplication:
    • 32,481 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,014 duplicated lines
  • 294 duplicates
system6% (2,014 lines)
Duplication per Extension
ts4% (1,290 lines)
css28% (228 lines)
yaml55% (191 lines)
java100% (63 lines)
js10% (63 lines)
vue15% (57 lines)
go100% (44 lines)
yml21% (40 lines)
cs100% (38 lines)
Duplication per Component (primary)
src/testFixtures61% (290 lines)
src/lambda6% (270 lines)
media/css30% (228 lines)
src/shared1% (223 lines)
src/stepFunctions7% (161 lines)
src/iot11% (155 lines)
src/ssmDocument12% (140 lines)
src/s37% (95 lines)
src/dynamicResources8% (70 lines)
media/js13% (63 lines)
src/eventSchemas4% (51 lines)
templates62% (46 lines)
buildspec26% (40 lines)
src/apigateway8% (30 lines)
src/cloudWatchLogs5% (26 lines)
src/awsexplorer4% (26 lines)
src/credentials2% (24 lines)
src/ecr7% (18 lines)
src/apprunner2% (18 lines)
src/ecs5% (17 lines)
test-scripts9% (12 lines)
src/feedback9% (11 lines)
src/webviews0% (0 lines)
src/cdk0% (0 lines)
src/integrationTest0% (0 lines)
src0% (0 lines)
ROOT0% (0 lines)
resources/debugger0% (0 lines)
build-scripts0% (0 lines)

Duplication Between Components (50+ lines)

G src/lambda src/lambda src/stepFunctions src/stepFunctions src/lambda--src/stepFunctions 94 src/iot src/iot src/s3 src/s3 src/iot--src/s3 79 src/ssmDocument src/ssmDocument src/ssmDocument--src/stepFunctions 72 src/eventSchemas src/eventSchemas src/eventSchemas--src/stepFunctions 57 src/apigateway src/apigateway src/apigateway--src/stepFunctions 50

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 294 duplicates...
Size#FoldersFilesLinesCode
29 x 2 media/css
media/css
base-cloud9.css
base.css
12:42 (19%)
4:34 (12%)
view
25 x 2 src/ssmDocument/commands
src/ssmDocument/commands
openDocumentItem.ts
updateDocumentVersion.ts
68:99 (40%)
79:110 (28%)
view
22 x 2 src/testFixtures/workspa...age-sam-app/hello-world
src/testFixtures/workspa...ain-sam-app/hello-world
main.go
main.go
13:50 (100%)
13:50 (100%)
view
21 x 2 src/testFixtures/workspa...rc/main/java/helloworld
src/testFixtures/workspa...rc/main/java/helloworld
App.java
App.java
19:45 (100%)
19:45 (100%)
view
21 x 2 src/testFixtures/workspa...rc/main/java/helloworld
src/testFixtures/workspa...rc/main/java/helloworld
App.java
App.java
19:45 (100%)
19:45 (100%)
view
21 x 2 src/testFixtures/workspa...rc/main/java/helloworld
src/testFixtures/workspa...rc/main/java/helloworld
App.java
App.java
19:45 (100%)
19:45 (100%)
view
19 x 2 src/testFixtures/workspa...-sam-app/src/HelloWorld
src/testFixtures/workspa...-sam-app/src/HelloWorld
Function.cs
Function.cs
11:46 (100%)
11:46 (100%)
view
18 x 2 src/lambda/vue
src/lambda/vue
samInvokeComponent.vue
samInvokeComponent.vue
49:67 (8%)
83:101 (8%)
view
17 x 2 src/s3/explorer
src/s3/explorer
s3BucketNode.ts
s3FolderNode.ts
53:77 (26%)
48:72 (27%)
view
17 x 2 src/testFixtures/workspa...11-plain-gradle-sam-app
src/testFixtures/workspa...a11-plain-maven-sam-app
template.yaml
template.yaml
9:26 (77%)
7:24 (80%)
view
17 x 2 buildspec
buildspec
linuxTests.yml
packageTestVsix.yml
8:28 (48%)
9:30 (58%)
view
16 x 2 templates
templates
HelloWorldPowershell.ssm.yaml
HelloWorldPython.ssm.yaml
6:25 (44%)
6:25 (42%)
view
16 x 2 media/css
media/css
base-cloud9.css
base.css
44:63 (10%)
36:55 (7%)
view
15 x 2 src/testFixtures/workspaceFolder/js-image-sam-app
src/testFixtures/workspa...python3.7-image-sam-app
template.yaml
template.yaml
9:27 (65%)
9:27 (65%)
view
15 x 2 src/shared
src/shared
multiStepInputFlowController.ts
multiStepInputFlowController.ts
79:94 (8%)
152:167 (8%)
view
14 x 2 src/s3/explorer
src/s3/explorer
s3BucketNode.ts
s3FolderNode.ts
78:104 (22%)
74:100 (22%)
view
13 x 2 src/iot/explorer
src/iot/explorer
iotCertFolderNode.ts
iotThingNode.ts
39:57 (22%)
47:65 (20%)
view
13 x 2 src/eventSchemas/wizards
src/eventSchemas/wizards
schemaCodeDownloadWizard.ts
schemaCodeDownloadWizard.ts
71:86 (9%)
109:124 (9%)
view
13 x 2 src/lambda/wizards
src/lambda/wizards
samDeployWizard.ts
samDeployWizard.ts
141:153 (1%)
523:535 (1%)
view
13 x 2 src/iot/explorer
src/iot/explorer
iotCertificateNode.ts
iotPolicyFolderNode.ts
68:86 (14%)
45:63 (22%)
view
Duplicated Units
The list of top 16 duplicated units.
See data for all 16 unit duplicates...
Size#FoldersFilesLinesCode
19 x 2 src/testFixtures/workspa...ain-sam-app/hello-world
src/testFixtures/workspa...age-sam-app/hello-world
main.go
main.go
24:47 
24:47 
view
17 x 2 src/s3/explorer
src/s3/explorer
s3BucketNode.ts
s3FolderNode.ts
55:76 
50:71 
view
17 x 3 src/testFixtures/workspa...rc/main/java/helloworld
src/testFixtures/workspa...rc/main/java/helloworld
src/testFixtures/workspa...rc/main/java/helloworld
App.java
App.java
App.java
21:40 
21:40 
21:40 
view
14 x 2 src/iot/commands
src/iot/commands
createThing.ts
createPolicy.ts
58:72 
88:102 
view
14 x 2 src/testFixtures/workspa...-sam-app/src/HelloWorld
src/testFixtures/workspa...-sam-app/src/HelloWorld
Function.cs
Function.cs
31:47 
31:47 
view
12 x 2 src/shared/codelens
src/shared/codelens
javaCodeLensProvider.ts
csharpCodeLensProvider.ts
113:128 
134:149 
view
10 x 2 src/iot/commands
src/iot/commands
updateCert.ts
updateCert.ts
39:49 
95:105 
view
8 x 3 src/iot/explorer
src/iot/explorer
src/iot/explorer
iotPolicyFolderNode.ts
iotThingFolderNode.ts
iotCertFolderNode.ts
35:43 
29:37 
29:37 
view
7 x 2 src/stepFunctions/wizards
src/stepFunctions/wizards
createStateMachineWizard.ts
createStateMachineWizard.ts
28:35 
36:43 
view
7 x 9 src/iot/explorer
src/iot/explorer
src/iot/explorer
src/iot/explorer
src/iot/explorer
src/s3/explorer
src/s3/explorer
src/ecs/explorer
src/ecs/explorer
iotPolicyFolderNode.ts
iotThingNode.ts
iotThingFolderNode.ts
iotCertFolderNode.ts
iotCertificateNode.ts
s3BucketNode.ts
s3FolderNode.ts
ecsClusterNode.ts
ecsNode.ts
45:52 
47:54 
39:46 
39:46 
68:75 
53:60 
48:55 
44:51 
27:34 
view
7 x 2 src/s3/commands
src/lambda/commands
uploadFile.ts
uploadLambda.ts
517:524 
71:78 
view
6 x 2 src/stepFunctions/wizards
src/stepFunctions/wizards
createStateMachineWizard.ts
createStateMachineWizard.ts
29:35 
37:43 
view
6 x 3 src/iot/commands
src/iot/commands
src/s3/commands
deletePolicy.ts
deleteThing.ts
deleteFile.ts
33:39 
32:38 
39:45 
view
6 x 2 src/iot/commands
src/iot/commands
updateCert.ts
detachPolicy.ts
149:155 
40:46 
view
15 x 2 src/s3/explorer
src/s3/explorer
s3BucketNode.ts
s3FolderNode.ts
57:76 
52:71 
view
6 x 2 src/testFixtures/workspa...-sam-app/src/HelloWorld
src/testFixtures/workspa...-sam-app/src/HelloWorld
Function.cs
Function.cs
21:29 
21:29 
view