Skip to content

Latest commit

 

History

History
1288 lines (1028 loc) · 89.3 KB

CODE_METRICS.md

File metadata and controls

1288 lines (1028 loc) · 89.3 KB

Code Metrics

This file is dynamically maintained by a bot, please do not edit this by hand. It represents various code metrics, such as cyclomatic complexity, maintainability index, and so on.

DotNet.CodeAnalysis 🤯

The DotNet.CodeAnalysis.csproj project file contains:

  • 3 namespaces.
  • 16 named types.
  • 2,590 total lines of source code.
  • Approximately 643 lines of executable code.
  • The highest cyclomatic complexity is 17 🤯.
DotNet.CodeAnalysis 🤯

The DotNet.CodeAnalysis namespace contains 14 named types.

  • 14 named types.
  • 2,568 total lines of source code.
  • Approximately 639 lines of executable code.
  • The highest cyclomatic complexity is 17 🤯.
DocumentFileInfo ✔️
  • The DocumentFileInfo contains 6 members.
  • 33 total lines of source code.
  • Approximately 0 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 8 100 1 ✔️ 0 1 33 / 0
Property 12 100 0 ✔️ 0 0 3 / 0
Property 30 100 0 ✔️ 0 0 4 / 0
Property 25 100 0 ✔️ 0 0 5 / 0
Property 19 100 0 ✔️ 0 0 6 / 0
Property 35 100 0 ✔️ 0 1 4 / 0

🔗 to DocumentFileInfo class diagram

🔝 back to DotNet.CodeAnalysis

FileNameUtilities ⚠️
  • The FileNameUtilities contains 10 members.
  • 183 total lines of source code.
  • Approximately 51 lines of executable code.
  • The highest cyclomatic complexity is 8 ⚠️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Field 15 93 0 ✔️ 0 0 1 / 1
Method 130 63 6 ✔️ 0 3 31 / 9
Field 14 93 0 ✔️ 0 0 1 / 1
Method 78 72 3 ✔️ 0 3 18 / 5
Method 179 70 3 ✔️ 0 3 11 / 5
Method 38 58 8 ⚠️ 0 2 38 / 13
Method 155 65 6 ✔️ 0 2 22 / 7
Method 26 92 1 ✔️ 0 2 12 / 1
Method 97 63 5 ✔️ 0 3 29 / 9
Field 16 93 0 ✔️ 0 0 1 / 1

🔗 to FileNameUtilities class diagram

🔝 back to DotNet.CodeAnalysis

FileUtilities 🤯
  • The FileUtilities contains 17 members.
  • 392 total lines of source code.
  • Approximately 82 lines of executable code.
  • The highest cyclomatic complexity is 17 🤯.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 298 66 3 ✔️ 0 9 41 / 8
Method 168 72 2 ✔️ 0 2 19 / 6
Method 354 79 1 ✔️ 0 5 17 / 4
Method 337 84 1 ✔️ 0 5 16 / 3
Method 219 75 1 ✔️ 0 6 26 / 5
Method 240 96 1 ✔️ 0 1 4 / 1
Method 190 64 5 ✔️ 0 2 22 / 9
Method 273 90 1 ✔️ 0 3 4 / 2
Method 371 78 1 ✔️ 0 7 23 / 4
Method 257 84 1 ✔️ 0 6 15 / 3
Method 33 56 8 ⚠️ 0 6 72 / 17
Method 80 93 1 ✔️ 0 1 2 / 1
Method 83 91 1 ✔️ 0 3 4 / 1
Method 88 57 17 🤯 0 6 79 / 11
Method 278 84 1 ✔️ 0 5 15 / 3
Field 188 93 0 ✔️ 0 1 1 / 1
Method 245 85 1 ✔️ 0 2 11 / 3

🔗 to FileUtilities class diagram

🔝 back to DotNet.CodeAnalysis

Hash ✔️
  • The Hash contains 23 members.
  • 368 total lines of source code.
  • Approximately 94 lines of executable code.
  • The highest cyclomatic complexity is 5 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 10 91 1 ✔️ 0 1 7 / 1
Method 15 91 2 ✔️ 0 0 4 / 1
Method 26 75 2 ✔️ 0 1 17 / 4
Method 349 79 2 ✔️ 0 1 16 / 3
Method 366 91 1 ✔️ 0 1 11 / 1
Method 38 62 5 ✔️ 0 4 25 / 11
Method 64 62 4 ✔️ 0 1 23 / 10
Method 88 63 5 ✔️ 0 3 25 / 11
Method 114 62 5 ✔️ 0 5 24 / 11
Field 143 93 0 ✔️ 0 0 1 / 1
Field 149 93 0 ✔️ 0 0 1 / 1
Method 248 96 1 ✔️ 0 1 4 / 1
Method 253 73 2 ✔️ 0 2 11 / 4
Method 157 73 2 ✔️ 0 1 17 / 4
Method 178 64 2 ✔️ 0 2 25 / 8
Method 201 73 2 ✔️ 0 2 17 / 4
Method 221 73 2 ✔️ 0 2 19 / 4
Method 245 95 1 ✔️ 0 1 14 / 1
Method 272 93 1 ✔️ 0 1 11 / 1
Method 283 93 1 ✔️ 0 0 10 / 1
Method 294 71 2 ✔️ 0 4 18 / 5
Method 315 70 2 ✔️ 0 1 20 / 5
Method 337 93 1 ✔️ 0 0 13 / 1

🔗 to Hash class diagram

🔝 back to DotNet.CodeAnalysis

PathUtilities.PathComparer ✔️
  • The PathUtilities.PathComparer contains 2 members.
  • 22 total lines of source code.
  • Approximately 6 lines of executable code.
  • The highest cyclomatic complexity is 5 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 721 71 5 ✔️ 0 1 14 / 5
Method 736 96 1 ✔️ 0 1 4 / 1

🔗 to PathUtilities.PathComparer class diagram

🔝 back to DotNet.CodeAnalysis

PathKind ✔️
  • The PathKind contains 7 members.
  • 39 total lines of source code.
  • Approximately 0 lines of executable code.
  • The highest cyclomatic complexity is 0 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Field 40 100 0 ✔️ 0 0 4 / 0
Field 10 100 0 ✔️ 0 0 3 / 0
Field 15 100 0 ✔️ 0 0 4 / 0
Field 20 100 0 ✔️ 0 0 4 / 0
Field 25 100 0 ✔️ 0 0 4 / 0
Field 30 100 0 ✔️ 0 0 4 / 0
Field 35 100 0 ✔️ 0 0 4 / 0

🔗 to PathKind class diagram

🔝 back to DotNet.CodeAnalysis

PathUtilities 🤯
  • The PathUtilities contains 45 members.
  • 745 total lines of source code.
  • Approximately 198 lines of executable code.
  • The highest cyclomatic complexity is 17 🤯.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Field 13 93 0 ✔️ 0 0 1 / 1
Method 86 97 1 ✔️ 0 1 4 / 1
Method 380 97 1 ✔️ 0 1 16 / 1
Method 407 72 3 ✔️ 0 2 10 / 4
Method 392 78 2 ✔️ 0 3 21 / 3
Field 717 93 0 ✔️ 0 2 1 / 1
Method 254 79 3 ✔️ 0 1 9 / 3
Method 454 60 7 ✔️ 0 2 35 / 12
Field 12 88 1 ✔️ 0 1 1 / 1
Field 16 90 0 ✔️ 0 0 1 / 1
Method 56 62 7 ✔️ 0 1 27 / 9
Method 109 93 1 ✔️ 0 1 11 / 1
Method 114 60 7 ✔️ 0 2 28 / 12
Method 81 100 1 ✔️ 0 1 4 / 1
Method 97 78 1 ✔️ 0 3 5 / 3
Method 275 54 17 🤯 0 3 58 / 16
Method 563 73 2 ✔️ 0 1 12 / 5
Method 166 85 1 ✔️ 0 2 8 / 2
Method 172 73 3 ✔️ 0 2 17 / 6
Method 547 73 2 ✔️ 0 1 13 / 5
Method 482 52 10 ☢️ 0 1 56 / 20
Method 264 89 3 ✔️ 0 1 7 / 1
Method 189 51 13 ❌ 0 1 64 / 21
Method 334 67 6 ✔️ 0 3 28 / 7
Method 28 91 2 ✔️ 0 0 4 / 1
Method 539 86 5 ✔️ 0 1 10 / 1
Method 23 90 2 ✔️ 0 0 4 / 1
Method 363 88 3 ✔️ 0 1 7 / 1
Method 434 80 4 ✔️ 0 2 12 / 2
Method 143 67 3 ✔️ 0 2 18 / 8
Property 18 100 2 ✔️ 0 1 1 / 2
Method 682 71 4 ✔️ 0 5 34 / 6
Method 635 58 10 ☢️ 0 4 35 / 13
Method 714 91 2 ✔️ 0 1 10 / 1
Field 14 93 0 ✔️ 0 0 1 / 1
Method 605 77 4 ✔️ 0 1 11 / 3
Method 617 71 4 ✔️ 0 4 17 / 6
Method 579 95 1 ✔️ 0 1 7 / 1
Method 587 69 5 ✔️ 0 1 20 / 6
Method 91 97 1 ✔️ 0 1 4 / 1
Method 418 77 3 ✔️ 0 1 11 / 3
Field 561 86 0 ✔️ 0 0 1 / 1
Field 15 93 0 ✔️ 0 0 1 / 1
Method 37 69 4 ✔️ 0 1 22 / 6
Field 17 93 0 ✔️ 0 0 1 / 1

🔗 to PathUtilities class diagram

🔝 back to DotNet.CodeAnalysis

PlatformInformation ✔️
  • The PlatformInformation contains 3 members.
  • 27 total lines of source code.
  • Approximately 7 lines of executable code.
  • The highest cyclomatic complexity is 2 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Property 14 82 1 ✔️ 0 1 15 / 3
Property 13 98 2 ✔️ 0 1 1 / 2
Property 12 98 2 ✔️ 0 1 1 / 2

🔗 to PlatformInformation class diagram

🔝 back to DotNet.CodeAnalysis

ProjectFileInfo ✔️
  • The ProjectFileInfo contains 16 members.
  • 149 total lines of source code.
  • Approximately 15 lines of executable code.
  • The highest cyclomatic complexity is 2 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 83 60 1 ✔️ 0 3 27 / 12
Property 66 100 1 ✔️ 0 2 4 / 0
Property 71 100 1 ✔️ 0 2 4 / 0
Property 56 100 1 ✔️ 0 1 4 / 0
Method 111 88 1 ✔️ 0 3 25 / 1
Method 137 92 1 ✔️ 0 1 14 / 1
Property 45 100 1 ✔️ 0 0 12 / 0
Property 61 100 1 ✔️ 0 2 4 / 0
Property 22 100 1 ✔️ 0 0 4 / 0
Property 12 100 1 ✔️ 0 0 1 / 0
Property 17 100 1 ✔️ 0 0 4 / 0
Property 27 100 1 ✔️ 0 0 4 / 0
Property 32 100 1 ✔️ 0 0 4 / 0
Property 76 100 1 ✔️ 0 2 4 / 0
Property 51 100 1 ✔️ 0 0 5 / 0
Method 78 93 2 ✔️ 0 1 4 / 1

🔗 to ProjectFileInfo class diagram

🔝 back to DotNet.CodeAnalysis

ProjectFileReference ✔️
  • The ProjectFileReference contains 3 members.
  • 13 total lines of source code.
  • Approximately 0 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 5 100 1 ✔️ 0 1 13 / 0
Property 15 100 0 ✔️ 0 1 4 / 0
Property 10 100 0 ✔️ 0 0 4 / 0

🔗 to ProjectFileReference class diagram

🔝 back to DotNet.CodeAnalysis

ProjectLoader ✔️
  • The ProjectLoader contains 2 members.
  • 24 total lines of source code.
  • Approximately 7 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 16 71 1 ✔️ 0 5 13 / 6
Field 10 93 0 ✔️ 0 2 4 / 1

🔗 to ProjectLoader class diagram

🔝 back to DotNet.CodeAnalysis

ProjectWorkspace ⚠️
  • The ProjectWorkspace contains 28 members.
  • 551 total lines of source code.
  • Approximately 176 lines of executable code.
  • The highest cyclomatic complexity is 8 ⚠️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Field 11 93 0 ✔️ 0 2 1 / 1
Field 17 93 0 ✔️ 0 3 1 / 1
Field 16 100 0 ✔️ 0 1 1 / 0
Field 15 100 0 ✔️ 0 1 1 / 0
Field 13 93 0 ✔️ 0 1 1 / 1
Field 14 93 0 ✔️ 0 1 1 / 1
Method 35 89 1 ✔️ 0 6 3 / 1
Method 286 60 2 ✔️ 0 9 38 / 16
Method 258 61 5 ✔️ 0 8 27 / 11
Method 247 81 2 ✔️ 0 6 10 / 2
Method 524 70 4 ✔️ 0 8 18 / 7
Method 476 70 2 ✔️ 0 10 23 / 6
Method 325 50 8 ⚠️ 0 7 68 / 23
Method 139 46 7 ✔️ 0 14 107 / 30
Method 552 87 2 ✔️ 0 2 5 / 2
Method 405 85 3 ✔️ 0 2 5 / 2
Method 470 86 2 ✔️ 0 1 5 / 2
Method 394 75 2 ✔️ 0 3 10 / 4
Method 422 62 5 ✔️ 0 4 36 / 12
Method 500 66 3 ✔️ 0 2 23 / 8
Method 543 97 1 ✔️ 0 2 4 / 1
Method 548 100 1 ✔️ 0 2 3 / 1
Method 459 78 2 ✔️ 0 6 10 / 3
Method 39 56 3 ✔️ 0 18 45 / 17
Method 85 53 6 ✔️ 0 8 53 / 21
Method 411 71 1 ✔️ 0 4 10 / 5
Field 22 81 0 ✔️ 0 3 11 / 1
Field 19 93 0 ✔️ 0 1 1 / 1

🔗 to ProjectWorkspace class diagram

🔝 back to DotNet.CodeAnalysis

ServiceCollectionExtensions ✔️
  • The ServiceCollectionExtensions contains 1 members.
  • 11 total lines of source code.
  • Approximately 2 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 5 93 1 ✔️ 0 2 8 / 2

🔗 to ServiceCollectionExtensions class diagram

🔝 back to DotNet.CodeAnalysis

PathUtilities.TestAccessor ✔️
  • The PathUtilities.TestAccessor contains 1 members.
  • 5 total lines of source code.
  • Approximately 1 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 744 98 1 ✔️ 0 1 2 / 1

🔗 to PathUtilities.TestAccessor class diagram

🔝 back to DotNet.CodeAnalysis

DotNet.CodeAnalysis.CSharp ✔️

The DotNet.CodeAnalysis.CSharp namespace contains 1 named types.

  • 1 named types.
  • 11 total lines of source code.
  • Approximately 2 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
CSharpDefaults ✔️
  • The CSharpDefaults contains 2 members.
  • 8 total lines of source code.
  • Approximately 2 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Property 10 100 1 ✔️ 0 2 2 / 1
Property 7 100 1 ✔️ 0 2 2 / 1

🔗 to CSharpDefaults class diagram

🔝 back to DotNet.CodeAnalysis.CSharp

DotNet.CodeAnalysis.VisualBasic ✔️

The DotNet.CodeAnalysis.VisualBasic namespace contains 1 named types.

  • 1 named types.
  • 11 total lines of source code.
  • Approximately 2 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
VisualBasicDefaults ✔️
  • The VisualBasicDefaults contains 2 members.
  • 8 total lines of source code.
  • Approximately 2 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Property 10 100 1 ✔️ 0 2 2 / 1
Property 7 100 1 ✔️ 0 2 2 / 1

🔗 to VisualBasicDefaults class diagram

🔝 back to DotNet.CodeAnalysis.VisualBasic

🔝 back to DotNet.CodeAnalysis

DotNet.GitHubAction ❌

The DotNet.GitHubAction.csproj project file contains:

  • 4 namespaces.
  • 6 named types.
  • 669 total lines of source code.
  • Approximately 288 lines of executable code.
  • The highest cyclomatic complexity is 13 ❌.
<global namespace> ✔️

The <global namespace> namespace contains 1 named types.

  • 1 named types.
  • 94 total lines of source code.
  • Approximately 94 lines of executable code.
  • The highest cyclomatic complexity is 7 ✔️.
<Program>$ ✔️
  • The <Program>$ contains 1 members.
  • 94 total lines of source code.
  • Approximately 94 lines of executable code.
  • The highest cyclomatic complexity is 7 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 1 42 7 ✔️ 0 15 94 / 47

🔝 back to <global namespace>

DotNet.GitHubAction.Analyzers ✔️

The DotNet.GitHubAction.Analyzers namespace contains 1 named types.

  • 1 named types.
  • 47 total lines of source code.
  • Approximately 13 lines of executable code.
  • The highest cyclomatic complexity is 3 ✔️.
ProjectMetricDataAnalyzer ✔️
  • The ProjectMetricDataAnalyzer contains 3 members.
  • 44 total lines of source code.
  • Approximately 13 lines of executable code.
  • The highest cyclomatic complexity is 3 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Field 7 100 0 ✔️ 0 1 1 / 0
Method 9 96 1 ✔️ 0 1 1 / 1
Method 11 61 3 ✔️ 0 10 37 / 12

🔗 to ProjectMetricDataAnalyzer class diagram

🔝 back to DotNet.GitHubAction.Analyzers

DotNet.GitHubAction.Extensions ❌

The DotNet.GitHubAction.Extensions namespace contains 3 named types.

  • 3 named types.
  • 471 total lines of source code.
  • Approximately 156 lines of executable code.
  • The highest cyclomatic complexity is 13 ❌.
CodeAnalysisMetricDataExtensions ❌
  • The CodeAnalysisMetricDataExtensions contains 9 members.
  • 208 total lines of source code.
  • Approximately 67 lines of executable code.
  • The highest cyclomatic complexity is 13 ❌.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 24 82 1 ✔️ 0 4 4 / 3
Method 21 100 1 ✔️ 0 2 2 / 1
Method 18 100 1 ✔️ 0 2 2 / 1
Method 196 69 2 ✔️ 0 3 17 / 7
Method 29 73 1 ✔️ 0 4 12 / 6
Method 42 87 1 ✔️ 0 3 5 / 2
Method 8 88 1 ✔️ 0 2 9 / 1
Method 181 100 1 ✔️ 0 2 14 / 1
Method 48 41 13 ❌ 0 9 132 / 45

🔗 to CodeAnalysisMetricDataExtensions class diagram

🔝 back to DotNet.GitHubAction.Extensions

CodeMetricsReportExtensions ✔️
  • The CodeMetricsReportExtensions contains 12 members.
  • 248 total lines of source code.
  • Approximately 88 lines of executable code.
  • The highest cyclomatic complexity is 6 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 157 98 1 ✔️ 0 3 3 / 1
Method 144 72 2 ✔️ 0 5 12 / 5
Method 119 66 2 ✔️ 0 5 24 / 7
Method 214 98 1 ✔️ 0 2 2 / 1
Method 217 98 1 ✔️ 0 2 4 / 1
Method 195 91 1 ✔️ 0 2 9 / 1
Method 205 88 1 ✔️ 0 1 8 / 1
Method 222 98 1 ✔️ 0 2 3 / 1
Method 184 71 2 ✔️ 0 5 10 / 5
Method 226 61 4 ✔️ 0 3 26 / 10
Method 7 42 6 ✔️ 0 15 111 / 47
Method 161 65 1 ✔️ 0 5 22 / 8

🔗 to CodeMetricsReportExtensions class diagram

🔝 back to DotNet.GitHubAction.Extensions

ServiceCollectionExtensions ✔️
  • The ServiceCollectionExtensions contains 1 members.
  • 7 total lines of source code.
  • Approximately 1 lines of executable code.
  • The highest cyclomatic complexity is 1 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Method 5 100 1 ✔️ 0 2 4 / 1

🔗 to ServiceCollectionExtensions class diagram

🔝 back to DotNet.GitHubAction.Extensions

DotNet.GitHubAction ✔️

The DotNet.GitHubAction namespace contains 1 named types.

  • 1 named types.
  • 57 total lines of source code.
  • Approximately 25 lines of executable code.
  • The highest cyclomatic complexity is 3 ✔️.
ActionInputs ✔️
  • The ActionInputs contains 9 members.
  • 55 total lines of source code.
  • Approximately 25 lines of executable code.
  • The highest cyclomatic complexity is 3 ✔️.
Member kind Line number Maintainability index Cyclomatic complexity Depth of inheritance Class coupling Lines of source / executable code
Field 6 93 0 ✔️ 0 0 1 / 1
Field 5 93 0 ✔️ 0 0 1 / 1
Method 8 88 2 ✔️ 0 1 8 / 2
Property 34 93 2 ✔️ 0 2 8 / 5
Property 43 100 2 ✔️ 0 2 4 / 3
Property 25 93 2 ✔️ 0 2 8 / 5
Property 20 100 2 ✔️ 0 2 4 / 3
Method 50 82 3 ✔️ 0 4 7 / 2
Property 48 100 2 ✔️ 0 2 4 / 3

🔗 to ActionInputs class diagram

🔝 back to DotNet.GitHubAction

🔝 back to DotNet.GitHubAction

Metric definitions

  • Maintainability index: Measures ease of code maintenance. Higher values are better.
  • Cyclomatic complexity: Measures the number of branches. Lower values are better.
  • Depth of inheritance: Measures length of object inheritance hierarchy. Lower values are better.
  • Class coupling: Measures the number of classes that are referenced. Lower values are better.
  • Lines of source code: Exact number of lines of source code. Lower values are better.
  • Lines of executable code: Approximates the lines of executable code. Lower values are better.

Mermaid class diagrams

DocumentFileInfo class diagram
classDiagram
IEquatable~DocumentFileInfo~ <|-- DocumentFileInfo : implements
class DocumentFileInfo{
    +string FilePath
    +string LogicalPath
    +bool IsLinked
    +bool IsGenerated
    +SourceCodeKind SourceCodeKind
    +.ctor(string FilePath, string LogicalPath, bool IsLinked, bool IsGenerated, SourceCodeKind SourceCodeKind) DocumentFileInfo
}

Loading
FileNameUtilities class diagram
classDiagram
class FileNameUtilities{
    -char DirectorySeparatorChar$
    -char AltDirectorySeparatorChar$
    -char VolumeSeparatorChar$
    +IsFileName(string? path)$ bool
    +IndexOfExtension(string? path)$ int
    +GetExtension(string? path)$ string?
    +RemoveExtension(string? path)$ string?
    +ChangeExtension(string? path, string? extension)$ string?
    +IndexOfFileName(string? path)$ int
    +GetFileName(string? path, bool includeExtension = true)$ string?
}

Loading
FileUtilities class diagram
classDiagram
class FileUtilities{
    -char[] s_invalidPathChars$
    +ResolveRelativePath(string path, string? basePath, string? baseDirectory, IEnumerable<string> searchPaths, Func<string, bool> fileExists)$ string?
    +ResolveRelativePath(string? path, string? baseDirectory)$ string?
    +ResolveRelativePath(string? path, string? basePath, string? baseDirectory)$ string?
    +ResolveRelativePath(PathKind kind, string? path, string? basePath, string? baseDirectory)$ string?
    +GetBaseDirectory(string? basePath, string? baseDirectory)$ string?
    +NormalizeRelativePath(string path, string? basePath, string? baseDirectory)$ string?
    +NormalizeAbsolutePath(string path)$ string
    +NormalizeDirectoryPath(string path)$ string
    +TryNormalizeAbsolutePath(string path)$ string?
    +OpenRead(string fullPath)$ Stream
    +OpenAsyncRead(string fullPath)$ Stream
    +RethrowExceptionsAsIOException<T>(Func<T> operation)$ T
    +CreateFileStreamChecked(Func<string, Stream> factory, string path, string? paramName = null)$ Stream
    +GetFileTimeStamp(string fullPath)$ DateTime
    +GetFileLength(string fullPath)$ long
    +OpenFileStream(string path)$ Stream
}

Loading
Hash class diagram
classDiagram
class Hash{
    -int FnvOffsetBias$
    -int FnvPrime$
    +Combine(int newKey, int currentKey)$ int
    +Combine(bool newKeyPart, int currentKey)$ int
    +Combine<T>(T newKeyPart, int currentKey)$ int
    +CombineValues<T>(IEnumerable<T>? values, int maxItemsToHash = null)$ int
    +CombineValues<T>(T[]? values, int maxItemsToHash = null)$ int
    +CombineValues<T>(ImmutableArray<T> values, int maxItemsToHash = null)$ int
    +CombineValues(IEnumerable<string?>? values, StringComparer stringComparer, int maxItemsToHash = null)$ int
    +GetFNVHashCode(byte[] data)$ int
    +GetFNVHashCode(ReadOnlySpan<byte> data, out bool isAscii)$ int
    +GetFNVHashCode(ImmutableArray<byte> data)$ int
    +GetFNVHashCode(ReadOnlySpan<char> data)$ int
    +GetFNVHashCode(string text, int start, int length)$ int
    +GetCaseInsensitiveFNVHashCode(string text)$ int
    +GetCaseInsensitiveFNVHashCode(ReadOnlySpan<char> data)$ int
    +GetFNVHashCode(string text, int start)$ int
    +GetFNVHashCode(string text)$ int
    +GetFNVHashCode(StringBuilder text)$ int
    +GetFNVHashCode(char[] text, int start, int length)$ int
    +GetFNVHashCode(char ch)$ int
    +CombineFNVHash(int hashCode, string text)$ int
    +CombineFNVHash(int hashCode, char ch)$ int
}

Loading
PathUtilities.PathComparer class diagram
classDiagram
class PathComparer{
    +Equals(string? x, string? y) bool
    +GetHashCode(string? s) int
}

Loading
PathKind class diagram
classDiagram
class PathKind{
    -Empty$
    -Relative$
    -RelativeToCurrentDirectory$
    -RelativeToCurrentParent$
    -RelativeToCurrentRoot$
    -RelativeToDriveDirectory$
    -Absolute$
}

Loading
PathUtilities class diagram
classDiagram
class PathUtilities{
    -char DirectorySeparatorChar$
    -char AltDirectorySeparatorChar$
    -string ParentRelativeDirectory$
    -string ThisDirectory$
    -string DirectorySeparatorStr$
    -char VolumeSeparatorChar$
    -char[] s_pathChars$
    -IEqualityComparer<string> Comparer$
    +bool IsUnixLikePlatform$
    +IsDirectorySeparator(char c)$ bool
    +IsAnyDirectorySeparator(char c)$ bool
    +TrimTrailingSeparators(string s)$ string
    +EnsureTrailingSeparator(string s)$ string
    +GetExtension(string path)$ string
    +ChangeExtension(string path, string? extension)$ string
    +RemoveExtension(string path)$ string
    +GetFileName(string? path, bool includeExtension = true)$ string?
    +GetDirectoryName(string? path)$ string?
    +GetDirectoryName(string? path, bool isUnixLike)$ string?
    +IsSameDirectoryOrChildOf(string child, string parent)$ bool
    +GetPathRoot(string? path)$ string?
    +GetPathRoot(string? path, bool isUnixLike)$ string?
    +GetWindowsRoot(string path)$ string
    +ConsumeDirectorySeparators(string path, int length, int i)$ int
    +GetUnixRoot(string path)$ string
    +GetPathKind(string? path)$ PathKind
    +IsAbsolute(string? path)$ bool
    +IsDriveRootedAbsolutePath(string path)$ bool
    +CombineAbsoluteAndRelativePaths(string root, string relativePath)$ string?
    +CombinePossiblyRelativeAndRelativePaths(string? root, string? relativePath)$ string?
    +CombinePathsUnchecked(string root, string? relativePath)$ string
    +RemoveTrailingDirectorySeparator(string path)$ string
    +IsFilePath(string assemblyDisplayNameOrPath)$ bool
    +ContainsPathComponent(string? path, string component, bool ignoreCase)$ bool
    +GetRelativePath(string directory, string fullPath)$ string
    +IsChildPath(string parentPath, string childPath)$ bool
    +GetRelativeChildPath(string parentPath, string childPath)$ string
    +GetPathParts(string path)$ string[]
    +PathsEqual(string path1, string path2)$ bool
    +PathsEqual(string path1, string path2, int length)$ bool
    +PathCharEqual(char x, char y)$ bool
    +PathHashCode(string? path)$ int
    +NormalizePathPrefix(string filePath, ImmutableArray<KeyValuePair<string, string>> pathMap)$ string
    +IsValidFilePath(string? fullPath)$ bool
    +NormalizeWithForwardSlash(string p)$ string
}

Loading
PlatformInformation class diagram
classDiagram
class PlatformInformation{
    +bool IsWindows$
    +bool IsUnix$
    +bool IsRunningOnMono$
}

Loading
ProjectFileInfo class diagram
classDiagram
class ProjectFileInfo{
    +bool IsEmpty
    +string Language
    +string FilePath
    +string OutputFilePath
    +string OutputRefFilePath
    +string DefaultNamespace
    +string TargetFramework
    +ImmutableArray<string> CommandLineArgs
    +ImmutableArray<DocumentFileInfo> Documents
    +ImmutableArray<DocumentFileInfo> AdditionalDocuments
    +ImmutableArray<DocumentFileInfo> AnalyzerConfigDocuments
    +ImmutableArray<ProjectFileReference> ProjectReferences
    +ToString() string
    +.ctor(bool isEmpty, string language, string filePath, string outputFilePath, string outputRefFilePath, string defaultNamespace, string targetFramework, ImmutableArray<string> commandLineArgs, ImmutableArray<DocumentFileInfo> documents, ImmutableArray<DocumentFileInfo> additionalDocuments, ImmutableArray<DocumentFileInfo> analyzerConfigDocuments, ImmutableArray<ProjectFileReference> projectReferences) ProjectFileInfo
    +Create(string language, string filePath, string outputFilePath, string outputRefFilePath, string defaultNamespace, string targetFramework, ImmutableArray<string> commandLineArgs, ImmutableArray<DocumentFileInfo> documents, ImmutableArray<DocumentFileInfo> additionalDocuments, ImmutableArray<DocumentFileInfo> analyzerConfigDocuments, ImmutableArray<ProjectFileReference> projectReferences)$ ProjectFileInfo
    +CreateEmpty(string language, string filePath)$ ProjectFileInfo
}

Loading
ProjectFileReference class diagram
classDiagram
IEquatable~ProjectFileReference~ <|-- ProjectFileReference : implements
class ProjectFileReference{
    +string Path
    +ImmutableArray<string> Aliases
    +.ctor(string Path, ImmutableArray<string> Aliases) ProjectFileReference
}

Loading
ProjectLoader class diagram
classDiagram
class ProjectLoader{
    -XmlReaderSettings s_xmlReaderSettings$
    +LoadProject(string path) Project
}

Loading
ProjectWorkspace class diagram
classDiagram
class ProjectWorkspace{
    -BuildManager _buildManager
    -AdhocWorkspace _workspace
    -HostWorkspaceServices _workspaceServices
    -ProjectLoader _projectLoader
    -ILogger<ProjectWorkspace> _logger
    -Dictionary<string, ProjectItem> _documents
    -char[] s_directorySplitChars$
    -ImmutableDictionary<string, string> s_defaultGlobalProperties$
    +.ctor(ProjectLoader projectLoader, ILogger<ProjectWorkspace> logger) ProjectWorkspace
    +LoadProjectAsync(string path, CancellationToken cancellationToken) Task<ImmutableArray<Project>>
    +LoadProjectInfosAsync(Project project, string language, string projectDirectory, CancellationToken cancellationToken) Task<ImmutableArray<ProjectInfo>>
    +CreateProjectInfoAsync(ProjectFileInfo projectFileInfo, string projectDirectory) Task<ProjectInfo>
    +BuildProjectFileInfoAsync(Project loadedProject, string language, string projectDirectory, CancellationToken cancellationToken) Task<ProjectFileInfo>
    +BuildProjectAsync(Project project, CancellationToken cancellationToken) Task<ProjectInstance>
    +BuildAsync(BuildRequestData requestData, CancellationToken cancellationToken) Task<BuildResult>
    +CreateProjectFileInfo(ProjectInstance projectInstance, Project loadedProject, string language, string projectDirectory) ProjectFileInfo
    +GetCommandLineArgs(ProjectInstance project, string language) ImmutableArray<string>
    +GetAbsolutePathRelativeToProject(string path, string projectDirectory) string
    +MakeDocumentFileInfo(Project project, ITaskItem documentItem, string projectDirectory) DocumentFileInfo
    +GetDocumentLogicalPath(ITaskItem documentItem, string projectDirectory) string
    +IsDocumentGenerated(Project project, ITaskItem documentItem, string projectDirectory) bool
    +GetAssemblyNameFromProjectPath(string projectFilePath)$ string
    +CreateDocumentInfos(IReadOnlyList<DocumentFileInfo> documentFileInfos, ProjectId projectId, Encoding? encoding)$ ImmutableArray<DocumentInfo>
    +GetDocumentNameAndFolders(string logicalPath, out string name, out ImmutableArray<string> folders)$ void
    +CheckForDuplicateDocuments(ImmutableArray<DocumentInfo> documents) void
    +GetLanguageService<TLanguageService>(string languageName) TLanguageService?
    +GetWorkspaceService<TWorkspaceService>() TWorkspaceService?
    +Dispose() void
}

Loading
ServiceCollectionExtensions class diagram
classDiagram
class ServiceCollectionExtensions{
    +AddDotNetCodeAnalysisServices(IServiceCollection services)$ IServiceCollection
}

Loading
PathUtilities.TestAccessor class diagram
classDiagram
class TestAccessor{
    +GetDirectoryName(string path, bool isUnixLike)$ string?
}

Loading
CSharpDefaults class diagram
classDiagram
class CSharpDefaults{
    +CSharpCompilationOptions CompilationOptions$
    +CSharpCommandLineParser CommandLineParser$
}

Loading
VisualBasicDefaults class diagram
classDiagram
class VisualBasicDefaults{
    +VisualBasicCompilationOptions CompilationOptions$
    +VisualBasicCommandLineParser CommandLineParser$
}

Loading
ProjectMetricDataAnalyzer class diagram
classDiagram
class ProjectMetricDataAnalyzer{
    -ILogger<ProjectMetricDataAnalyzer> _logger
    +.ctor(ILogger<ProjectMetricDataAnalyzer> logger) ProjectMetricDataAnalyzer
    +AnalyzeAsync(ProjectWorkspace workspace, string path, CancellationToken cancellation) Task<ImmutableArray<(string, CodeAnalysisMetricData)>>
}

Loading
CodeAnalysisMetricDataExtensions class diagram
classDiagram
class CodeAnalysisMetricDataExtensions{
    +ToCyclomaticComplexityEmoji(CodeAnalysisMetricData metric)$ string
    +CountNamespaces(CodeAnalysisMetricData metric)$ int
    +CountNamedTypes(CodeAnalysisMetricData metric)$ int
    +CountKind(CodeAnalysisMetricData metric, SymbolKind kind)$ int
    +FindHighestCyclomaticComplexity(CodeAnalysisMetricData metric)$ (int Complexity, string Emoji)
    +Flatten<TSource>(IEnumerable<TSource> parent, Func<TSource, IEnumerable<TSource>> childSelector)$ IEnumerable<TSource>
    +ToMermaidClassDiagram(CodeAnalysisMetricData classMetric, string className)$ string
    +ToDisplayName(CodeAnalysisMetricData metric)$ string
    +DisplayName(ISymbol symbol)$ string
}

Loading
CodeMetricsReportExtensions class diagram
classDiagram
class CodeMetricsReportExtensions{
    +ToMarkDownBody(Dictionary<string, CodeAnalysisMetricData> metricData, ActionInputs actionInputs)$ string
    +AppendMetricDefinitions(MarkdownDocument document)$ void
    +AppendMermaidClassDiagrams(MarkdownDocument document, List<(string Id, string Class, string MermaidCode)> diagrams)$ void
    +AppendMaintainedByBotMessage(MarkdownDocument document)$ void
    +ToTableRowFrom(CodeAnalysisMetricData metric, ActionInputs actionInputs)$ MarkdownTableRow
    +ToIdAndAnchorPair(CodeAnalysisMetricData metric)$ (string elementId, string displayName, string anchorLink, (int highestComplexity, string emoji))
    +OpenCollapsibleSection(IMarkdownDocument document, string elementId, string symbolName, string highestComplexity)$ IMarkdownDocument
    +PrepareElementId(string value)$ string
    +CloseCollapsibleSection(IMarkdownDocument document)$ IMarkdownDocument
    +DisableMarkdownLinterAndCaptureConfig(IMarkdownDocument document)$ IMarkdownDocument
    +RestoreMarkdownLinter(IMarkdownDocument document)$ IMarkdownDocument
    +ToLineNumberUrl(ISymbol symbol, string symbolDisplayName, ActionInputs actionInputs)$ string
}

Loading
ServiceCollectionExtensions class diagram
classDiagram
class ServiceCollectionExtensions{
    +AddGitHubActionServices(IServiceCollection services)$ IServiceCollection
}

Loading
ActionInputs class diagram
classDiagram
class ActionInputs{
    -string _repositoryName
    -string _branchName
    +string Owner
    +string Name
    +string Branch
    +string Directory
    +string WorkspaceDirectory
    +.ctor() ActionInputs
    +ParseAndAssign(string? value, Action<string> assign)$ void
}

Loading

This file is maintained by a bot.