microsoft / botframework-sdk
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
  • 12% duplication:
    • 17,767 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,193 duplicated lines
  • 154 duplicates
system12% (2,193 lines)
Duplication per Extension
yaml12% (861 lines)
g4100% (720 lines)
ts25% (386 lines)
js2% (154 lines)
yml30% (56 lines)
cs1% (16 lines)
Duplication per Component (primary)
parsers/LU/JS/packages10% (900 lines)
parsers/LU/JS/common11% (861 lines)
parsers/LU/ANTLR100% (360 lines)
parsers/LU/JS/build30% (56 lines)
dri/issueNotificationBot/Bot/Services5% (16 lines)
dri0% (0 lines)
dri/issueNotificationBot/AzureFunction0% (0 lines)
dri/issueNotificationBot/AzureFunction/src0% (0 lines)
dri/issueNotificationBot/Bot0% (0 lines)
dri/issueNotificationBot/Bot/Bots0% (0 lines)
dri/issueNotificationBot/Bot/Controllers0% (0 lines)
dri/issueNotificationBot/Bot/Dialogs0% (0 lines)
dri/issueNotificationBot/Bot/Models0% (0 lines)
parsers/LU/JS/scripts0% (0 lines)
schemas/skills/SchemaManifestTests0% (0 lines)
tools/changelog0% (0 lines)

Duplication Between Components (50+ lines)

G parsers/LU/ANTLR parsers/LU/ANTLR parsers/LU/JS/packages parsers/LU/JS/packages parsers/LU/ANTLR--parsers/LU/JS/packages 720

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 154 duplicates...
Size#FoldersFilesLinesCode
183 x 2 parsers/LU/ANTLR
parsers/LU/JS/packages/lu/src/parser/lufile
g4
LUFileParser.g4
LUFileParser.g4
1:241 (100%)
1:241 (100%)
view
177 x 2 parsers/LU/ANTLR
parsers/LU/JS/packages/lu/src/parser/lufile
g4
LUFileLexer.g4
LUFileLexer.g4
1:231 (100%)
1:231 (100%)
view
17 x 2 parsers/LU/JS/packages/lu/src/parser/lubuild
parsers/LU/JS/packages/lu/src/parser/qnabuild
cross-trained-recognizer.ts
cross-trained-recognizer.ts
6:31 (100%)
6:31 (100%)
view
16 x 2 parsers/LU/JS/packages/lu/src/parser/lubuild
parsers/LU/JS/packages/lu/src/parser/qnabuild
builder.ts
builder.ts
451:474 (5%)
396:419 (4%)
view
15 x 2 parsers/LU/JS/packages/lu/src/parser/lubuild
parsers/LU/JS/packages/lu/src/parser/qnabuild
builder.ts
builder.ts
54:72 (4%)
56:74 (4%)
view
14 x 2 parsers/LU/JS/common/config/rush
parsers/LU/JS/common/config/rush
pnpm-lock.yaml
pnpm-lock.yaml
1532:1545 (<1%)
1565:1578 (<1%)
view
14 x 2 parsers/LU/JS/common/config/rush
parsers/LU/JS/common/config/rush
pnpm-lock.yaml
pnpm-lock.yaml
1490:1503 (<1%)
1519:1532 (<1%)
view
13 x 2 parsers/LU/JS/common/config/rush
parsers/LU/JS/common/config/rush
pnpm-lock.yaml
pnpm-lock.yaml
209:221 (<1%)
915:927 (<1%)
view
13 x 2 parsers/LU/JS/packages/lu/src/parser/lubuild
parsers/LU/JS/packages/lu/src/parser/qnabuild
multi-language-recognizer.ts
multi-language-recognizer.ts
16:36 (61%)
16:36 (61%)
view
13 x 2 parsers/LU/JS/common/config/rush
parsers/LU/JS/common/config/rush
pnpm-lock.yaml
pnpm-lock.yaml
2073:2085 (<1%)
2090:2102 (<1%)
view
13 x 2 parsers/LU/JS/build
parsers/LU/JS/build
botframework-cli-azure-devops.yml
botframework-cli-rc.yml
6:23 (100%)
6:23 (100%)
view
13 x 2 parsers/LU/JS/packages/lu/src/parser/lufile
parsers/LU/JS/packages/lu/src/parser/lufile
parseFileContents.js
parseFileContents.js
84:100 (<1%)
2121:2137 (<1%)
view
13 x 2 parsers/LU/JS/common/config/rush
parsers/LU/JS/common/config/rush
pnpm-lock.yaml
pnpm-lock.yaml
2492:2504 (<1%)
2512:2524 (<1%)
view
13 x 2 parsers/LU/JS/common/config/rush
parsers/LU/JS/common/config/rush
pnpm-lock.yaml
pnpm-lock.yaml
5960:5972 (<1%)
5984:5996 (<1%)
view
12 x 2 parsers/LU/JS/packages/lu/src/parser/lubuild
parsers/LU/JS/packages/lu/src/parser/qnabuild
builder.ts
builder.ts
306:319 (3%)
370:383 (3%)
view
12 x 2 parsers/LU/JS/packages/lu/src/parser/qnabuild
parsers/LU/JS/packages/lu/src/parser/qnabuild
builder.ts
builder.ts
301:318 (3%)
335:352 (3%)
view
12 x 2 parsers/LU/JS/common/config/rush
parsers/LU/JS/common/config/rush
pnpm-lock.yaml
pnpm-lock.yaml
754:765 (<1%)
775:786 (<1%)
view
11 x 2 parsers/LU/JS/common/config/rush
parsers/LU/JS/common/config/rush
pnpm-lock.yaml
pnpm-lock.yaml
822:832 (<1%)
841:851 (<1%)
view
11 x 2 parsers/LU/JS/packages/lu/src/parser/lubuild
parsers/LU/JS/packages/lu/src/parser/qnabuild
builder.ts
builder.ts
261:284 (3%)
266:289 (3%)
view
10 x 2 parsers/LU/JS/common/config/rush
parsers/LU/JS/common/config/rush
pnpm-lock.yaml
pnpm-lock.yaml
861:870 (<1%)
881:890 (<1%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
11 x 2 parsers/LU/JS/packages/lu/src/parser/lu
parsers/LU/JS/packages/lu/src/parser/lu
lu.js
qna.js
10:22 
10:22 
view
6 x 2 parsers/LU/JS/packages/lu/src/parser/qnabuild
parsers/LU/JS/packages/lu/src/parser/qnabuild
core.ts
core.ts
92:98 
119:125 
view