@trebired/code-discipline 5.2.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +21 -19
  3. package/dist/checks/apply-fixes.d.ts +2 -2
  4. package/dist/checks/apply-fixes.d.ts.map +1 -1
  5. package/dist/checks/apply-fixes.js +6 -6
  6. package/dist/checks/apply-fixes.js.map +1 -1
  7. package/dist/checks/{fix-source-file-structure.d.ts → fix-redundant-path-segments.d.ts} +4 -4
  8. package/dist/checks/fix-redundant-path-segments.d.ts.map +1 -0
  9. package/dist/checks/{fix-source-file-structure.js → fix-redundant-path-segments.js} +22 -22
  10. package/dist/checks/fix-redundant-path-segments.js.map +1 -0
  11. package/dist/checks/index.js +6 -6
  12. package/dist/checks/index.js.map +1 -1
  13. package/dist/checks/parse-failures.d.ts +8 -0
  14. package/dist/checks/parse-failures.d.ts.map +1 -0
  15. package/dist/checks/parse-failures.js +39 -0
  16. package/dist/checks/parse-failures.js.map +1 -0
  17. package/dist/checks/rule-slugs.d.ts +1 -1
  18. package/dist/checks/rule-slugs.js +3 -3
  19. package/dist/checks/rule-slugs.js.map +1 -1
  20. package/dist/checks/rules/banned/patterns.d.ts.map +1 -1
  21. package/dist/checks/rules/banned/patterns.js +18 -6
  22. package/dist/checks/rules/banned/patterns.js.map +1 -1
  23. package/dist/checks/rules/blank-lines/generic.d.ts.map +1 -1
  24. package/dist/checks/rules/blank-lines/generic.js +24 -2
  25. package/dist/checks/rules/blank-lines/generic.js.map +1 -1
  26. package/dist/checks/rules/blank-lines/index.d.ts.map +1 -1
  27. package/dist/checks/rules/blank-lines/index.js +3 -2
  28. package/dist/checks/rules/blank-lines/index.js.map +1 -1
  29. package/dist/checks/rules/comments/ranges.d.ts.map +1 -1
  30. package/dist/checks/rules/comments/ranges.js +115 -1
  31. package/dist/checks/rules/comments/ranges.js.map +1 -1
  32. package/dist/checks/rules/comments/stripping.d.ts +1 -2
  33. package/dist/checks/rules/comments/stripping.d.ts.map +1 -1
  34. package/dist/checks/rules/comments/stripping.js +7 -93
  35. package/dist/checks/rules/comments/stripping.js.map +1 -1
  36. package/dist/checks/rules/dry/candidates.d.ts.map +1 -1
  37. package/dist/checks/rules/dry/candidates.js +10 -4
  38. package/dist/checks/rules/dry/candidates.js.map +1 -1
  39. package/dist/checks/rules/dry/generic.d.ts.map +1 -1
  40. package/dist/checks/rules/dry/generic.js +43 -0
  41. package/dist/checks/rules/dry/generic.js.map +1 -1
  42. package/dist/checks/rules/dry/model.d.ts.map +1 -1
  43. package/dist/checks/rules/dry/model.js +5 -1
  44. package/dist/checks/rules/dry/model.js.map +1 -1
  45. package/dist/checks/rules/max/file-lines.d.ts.map +1 -1
  46. package/dist/checks/rules/max/file-lines.js +7 -50
  47. package/dist/checks/rules/max/file-lines.js.map +1 -1
  48. package/dist/checks/rules/max/function-lines.d.ts.map +1 -1
  49. package/dist/checks/rules/max/function-lines.js +36 -7
  50. package/dist/checks/rules/max/function-lines.js.map +1 -1
  51. package/dist/checks/rules/min/declaration-name.d.ts.map +1 -1
  52. package/dist/checks/rules/min/declaration-name.js +70 -2
  53. package/dist/checks/rules/min/declaration-name.js.map +1 -1
  54. package/dist/checks/rules/redundant-path-segments/index.d.ts +6 -0
  55. package/dist/checks/rules/redundant-path-segments/index.d.ts.map +1 -0
  56. package/dist/checks/rules/redundant-path-segments/index.js +19 -0
  57. package/dist/checks/rules/redundant-path-segments/index.js.map +1 -0
  58. package/dist/checks/rules/redundant-path-segments/plan.d.ts +17 -0
  59. package/dist/checks/rules/redundant-path-segments/plan.d.ts.map +1 -0
  60. package/dist/checks/rules/{source-file-structure → redundant-path-segments}/plan.js +60 -47
  61. package/dist/checks/rules/redundant-path-segments/plan.js.map +1 -0
  62. package/dist/checks/rules/remove-comments.d.ts.map +1 -1
  63. package/dist/checks/rules/remove-comments.js +15 -78
  64. package/dist/checks/rules/remove-comments.js.map +1 -1
  65. package/dist/checks/severity.js +1 -1
  66. package/dist/checks/severity.js.map +1 -1
  67. package/dist/checks/types.d.ts +6 -8
  68. package/dist/checks/types.d.ts.map +1 -1
  69. package/dist/cli/logging.js +1 -1
  70. package/dist/cli/logging.js.map +1 -1
  71. package/dist/cli/{run-cli.d.ts → run.d.ts} +1 -1
  72. package/dist/cli/run.d.ts.map +1 -0
  73. package/dist/cli/{run-cli.js → run.js} +1 -1
  74. package/dist/cli/run.js.map +1 -0
  75. package/dist/cli.d.ts +2 -2
  76. package/dist/cli.d.ts.map +1 -1
  77. package/dist/cli.js +1 -1
  78. package/dist/cli.js.map +1 -1
  79. package/dist/config/normalize/check-options.d.ts.map +1 -1
  80. package/dist/config/normalize/check-options.js +8 -3
  81. package/dist/config/normalize/check-options.js.map +1 -1
  82. package/dist/config/normalize/rule-options.d.ts +3 -4
  83. package/dist/config/normalize/rule-options.d.ts.map +1 -1
  84. package/dist/config/normalize/rule-options.js +9 -16
  85. package/dist/config/normalize/rule-options.js.map +1 -1
  86. package/dist/imports/{check-imports.d.ts → check.d.ts} +1 -1
  87. package/dist/imports/check.d.ts.map +1 -0
  88. package/dist/imports/{check-imports.js → check.js} +8 -5
  89. package/dist/imports/check.js.map +1 -0
  90. package/dist/imports/{dead-imports.d.ts → dead.d.ts} +1 -1
  91. package/dist/imports/dead.d.ts.map +1 -0
  92. package/dist/imports/{dead-imports.js → dead.js} +1 -1
  93. package/dist/imports/dead.js.map +1 -0
  94. package/dist/imports/imports.js +1 -1
  95. package/dist/imports/imports.js.map +1 -1
  96. package/dist/imports/rewrite.js +1 -1
  97. package/dist/imports/rewrite.js.map +1 -1
  98. package/dist/imports/scan.d.ts.map +1 -1
  99. package/dist/imports/scan.js +19 -110
  100. package/dist/imports/scan.js.map +1 -1
  101. package/dist/index.d.ts +2 -2
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/native/native.d.ts +3 -2
  106. package/dist/native/native.d.ts.map +1 -1
  107. package/dist/native/native.js +13 -8
  108. package/dist/native/native.js.map +1 -1
  109. package/dist/shared/constants.d.ts +2 -3
  110. package/dist/shared/constants.d.ts.map +1 -1
  111. package/dist/shared/constants.js +3 -4
  112. package/dist/shared/constants.js.map +1 -1
  113. package/dist/shared/discipline-types.d.ts +1 -1
  114. package/dist/shared/discipline-types.d.ts.map +1 -1
  115. package/dist/shared/languages.d.ts +4 -2
  116. package/dist/shared/languages.d.ts.map +1 -1
  117. package/dist/shared/languages.js +27 -4
  118. package/dist/shared/languages.js.map +1 -1
  119. package/native/darwin-arm64.node +0 -0
  120. package/native/darwin-x64.node +0 -0
  121. package/native/linux-arm64-gnu.node +0 -0
  122. package/native/linux-x64-gnu.node +0 -0
  123. package/package.json +2 -2
  124. package/dist/checks/fix-source-file-structure.d.ts.map +0 -1
  125. package/dist/checks/fix-source-file-structure.js.map +0 -1
  126. package/dist/checks/rules/source-file-structure/index.d.ts +0 -6
  127. package/dist/checks/rules/source-file-structure/index.d.ts.map +0 -1
  128. package/dist/checks/rules/source-file-structure/index.js +0 -38
  129. package/dist/checks/rules/source-file-structure/index.js.map +0 -1
  130. package/dist/checks/rules/source-file-structure/plan.d.ts +0 -17
  131. package/dist/checks/rules/source-file-structure/plan.d.ts.map +0 -1
  132. package/dist/checks/rules/source-file-structure/plan.js.map +0 -1
  133. package/dist/cli/run-cli.d.ts.map +0 -1
  134. package/dist/cli/run-cli.js.map +0 -1
  135. package/dist/imports/check-imports.d.ts.map +0 -1
  136. package/dist/imports/check-imports.js.map +0 -1
  137. package/dist/imports/dead-imports.d.ts.map +0 -1
  138. package/dist/imports/dead-imports.js.map +0 -1
@@ -5,6 +5,7 @@ import { parseSource } from "../../../imports/module-specifiers.js";
5
5
  import { isTypeScriptFamilyExtension } from "../../../shared/languages.js";
6
6
  import { createFunctionFingerprint, resolveClassification, resolveFunctionDisplayName } from "./fingerprint.js";
7
7
  import { collectGenericDryFunctionDescriptors } from "./generic.js";
8
+ import { collectWithParseFailure } from "../../parse-failures.js";
8
9
  import { collectDuplicateGroups } from "./matching.js";
9
10
  import { dryLanguageKey, normalizeDryFunctionName } from "./model.js";
10
11
  const DRY_PARSE_CHUNK_SIZE = 250;
@@ -89,13 +90,14 @@ function emitDryParseChunk(args) {
89
90
  elapsedMs: performance.now() - args.startedAt,
90
91
  });
91
92
  }
92
- async function collectDryFunctions(sourceFiles, observer) {
93
+ async function collectDryFunctions(sourceFiles, parseFailures, observer) {
93
94
  const startedAt = performance.now();
94
95
  const functions = [];
95
96
  for (let fileIndex = 0; fileIndex < sourceFiles.length; fileIndex += 1) {
96
97
  const file = sourceFiles[fileIndex];
97
98
  const text = await fs.readFile(file.absolutePath, "utf8");
98
- functions.push(...collectDryFunctionsForFile(file, text));
99
+ const descriptors = await collectWithParseFailure("dry", file.relativeFromProjectRoot, parseFailures, () => collectDryFunctionsForFile(file, text));
100
+ functions.push(...descriptors ?? []);
99
101
  emitDryParseChunk({
100
102
  completedItems: fileIndex + 1,
101
103
  discoveredFunctions: functions.length,
@@ -146,8 +148,12 @@ function createDryGroupViolation(group) {
146
148
  };
147
149
  }
148
150
  async function collectDrySourceDuplicateViolations(sourceFiles, rule, observer) {
149
- const functions = await collectDryFunctions(sourceFiles, observer);
150
- return collectDuplicateGroups(functions, rule, observer).map(createDryGroupViolation);
151
+ const parseFailures = [];
152
+ const functions = await collectDryFunctions(sourceFiles, parseFailures, observer);
153
+ return [
154
+ ...parseFailures,
155
+ ...collectDuplicateGroups(functions, rule, observer).map(createDryGroupViolation),
156
+ ];
151
157
  }
152
158
  export { collectDrySourceDuplicateViolations };
153
159
  //# sourceMappingURL=candidates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/candidates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/candidates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/dry/generic.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAoPxD,iBAAS,oCAAoC,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAG5G;AAED,OAAO,EAAE,oCAAoC,EAAE,CAAC"}
1
+ {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/dry/generic.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AA8RxD,iBAAS,oCAAoC,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAG5G;AAED,OAAO,EAAE,oCAAoC,EAAE,CAAC"}
@@ -1,21 +1,28 @@
1
1
  import { collectLanguageFunctionDescriptors } from "../max/function-lines.js";
2
2
  import { scanRustRawString } from "../comments/ranges.js";
3
3
  import { maskCommentsForLineCounting } from "../max/code-lines.js";
4
+ import { isCppExtension, isCsharpExtension } from "../../../shared/languages.js";
4
5
  import { stableSerialize } from "../../../shared/utils.js";
5
6
  import { dryLanguageKey, normalizeDryFunctionName } from "./model.js";
6
7
  const GENERIC_DRY_KEYWORDS = new Set([
8
+ "abstract",
7
9
  "and",
8
10
  "as",
9
11
  "async",
12
+ "auto",
10
13
  "await",
14
+ "base",
11
15
  "break",
12
16
  "case",
17
+ "catch",
13
18
  "class",
14
19
  "const",
20
+ "constexpr",
15
21
  "continue",
16
22
  "def",
17
23
  "default",
18
24
  "defer",
25
+ "delete",
19
26
  "do",
20
27
  "done",
21
28
  "elif",
@@ -23,42 +30,66 @@ const GENERIC_DRY_KEYWORDS = new Set([
23
30
  "enum",
24
31
  "esac",
25
32
  "except",
33
+ "explicit",
26
34
  "false",
27
35
  "fi",
36
+ "finally",
28
37
  "fn",
29
38
  "for",
39
+ "friend",
30
40
  "func",
31
41
  "function",
32
42
  "if",
33
43
  "impl",
34
44
  "in",
45
+ "internal",
35
46
  "interface",
36
47
  "let",
37
48
  "local",
38
49
  "loop",
39
50
  "match",
40
51
  "mut",
52
+ "namespace",
53
+ "new",
41
54
  "nil",
42
55
  "none",
43
56
  "not",
57
+ "noexcept",
44
58
  "null",
59
+ "nullptr",
60
+ "operator",
45
61
  "or",
62
+ "override",
46
63
  "package",
47
64
  "pass",
65
+ "private",
48
66
  "property",
67
+ "protected",
49
68
  "pub",
69
+ "public",
50
70
  "range",
71
+ "readonly",
51
72
  "return",
73
+ "sealed",
52
74
  "self",
75
+ "static",
53
76
  "struct",
77
+ "switch",
78
+ "template",
54
79
  "then",
55
80
  "this",
81
+ "throw",
56
82
  "trait",
57
83
  "true",
58
84
  "try",
59
85
  "type",
86
+ "typename",
60
87
  "unsafe",
88
+ "using",
61
89
  "var",
90
+ "virtual",
91
+ "void",
92
+ "volatile",
62
93
  "while",
63
94
  "with",
64
95
  ]);
@@ -136,6 +167,16 @@ function normalizeIdentifierToken(args) {
136
167
  return args.identifier;
137
168
  return canonicalIdentifier(args.identifier, args.state);
138
169
  }
170
+ function normalizeCFamilyFunctionHeader(source) {
171
+ const parenIndex = source.indexOf("(");
172
+ if (parenIndex === -1)
173
+ return source;
174
+ const nameMatch = /[A-Za-z_]\w*$/u.exec(source.slice(0, parenIndex));
175
+ if (!nameMatch)
176
+ return source;
177
+ const nameStart = parenIndex - nameMatch[0].length;
178
+ return `${source.slice(0, nameStart)}__dry_function${source.slice(parenIndex)}`;
179
+ }
139
180
  function normalizeFunctionHeader(source, extension) {
140
181
  if (extension === ".go")
141
182
  return source.replace(/^(\s*func(?:\s*\([^)]*\))?\s+)[A-Za-z_]\w*/u, "$1__dry_function");
@@ -149,6 +190,8 @@ function normalizeFunctionHeader(source, extension) {
149
190
  if (extension === ".sh" || extension === ".bash" || extension === ".zsh") {
150
191
  return source.replace(/^(\s*(?:function\s+)?)[A-Za-z_][\w-]*(\s*(?:\(\s*\))?\s*\{)/u, "$1__dry_function$2");
151
192
  }
193
+ if (isCppExtension(extension) || isCsharpExtension(extension))
194
+ return normalizeCFamilyFunctionHeader(source);
152
195
  return source.replace(/^(\s*(?:(?:pub(?:\([^)]*\))?|async|const|unsafe)\s+)*fn\s+)[A-Za-z_]\w*/u, "$1__dry_function");
153
196
  }
154
197
  function tokenizeGenericDryText(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/generic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/generic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/dry/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAWvD,KAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,QAAQ,GAAG,YAAY,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,iBAAS,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAEnF;AAED,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED,iBAAS,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG9E;AAED,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/dry/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAavD,KAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,QAAQ,GAAG,YAAY,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,iBAAS,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAEnF;AAED,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAUjD;AAED,iBAAS,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG9E;AAED,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { isGoExtension, isPythonExtension, isQmlExtension, isRustExtension, isShellExtension, isTypeScriptFamilyExtension, supportsDry, } from "../../../shared/languages.js";
1
+ import { isCppExtension, isCsharpExtension, isGoExtension, isPythonExtension, isQmlExtension, isRustExtension, isShellExtension, isTypeScriptFamilyExtension, supportsDry, } from "../../../shared/languages.js";
2
2
  function filterDrySourceFiles(sourceFiles) {
3
3
  return sourceFiles.filter((file) => supportsDry(file.extension));
4
4
  }
@@ -9,6 +9,10 @@ function dryLanguageKey(extension) {
9
9
  return "go";
10
10
  if (isRustExtension(extension))
11
11
  return "rust";
12
+ if (isCppExtension(extension))
13
+ return "cpp";
14
+ if (isCsharpExtension(extension))
15
+ return "csharp";
12
16
  if (isPythonExtension(extension))
13
17
  return "python";
14
18
  if (isShellExtension(extension))
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/model.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,2BAA2B,EAC3B,WAAW,GACZ,MAAM,eAAe,CAAC;AAoBvB,SAAS,oBAAoB,CAAC,WAAgC;IAC5D,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,IAAI,2BAA2B,CAAC,SAAS,CAAC;QAAE,OAAO,YAAY,CAAC;IAChE,IAAI,aAAa,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,eAAe,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,iBAAiB,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,gBAAgB,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,cAAc,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAwB;IACxD,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,UAAU,IAAI,SAAS,CAAC;AACjC,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/checks/rules/dry/model.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,2BAA2B,EAC3B,WAAW,GACZ,MAAM,eAAe,CAAC;AAoBvB,SAAS,oBAAoB,CAAC,WAAgC;IAC5D,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,IAAI,2BAA2B,CAAC,SAAS,CAAC;QAAE,OAAO,YAAY,CAAC;IAChE,IAAI,aAAa,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,eAAe,CAAC,SAAS,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,cAAc,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,iBAAiB,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,iBAAiB,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,gBAAgB,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,cAAc,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAwB;IACxD,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,UAAU,IAAI,SAAS,CAAC;AACjC,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-lines.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/max/file-lines.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAK7D,iBAAe,mBAAmB,CAChC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA8DpC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"file-lines.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/max/file-lines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAI7D,iBAAe,mBAAmB,CAChC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAepC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,7 +1,5 @@
1
- import fs from "node:fs/promises";
2
- import { loadNativeBinding } from "../../../native/native.js";
3
- import { createRuleProgress, emitRuleChunk, emitRuleCompleted } from "../../progress.js";
4
- import { countCodeLines, countPhysicalLines, maskCommentsForLineCounting } from "./code-lines.js";
1
+ import { requireNativeBinding } from "../../../native/native.js";
2
+ import { createRuleProgress, emitRuleCompleted } from "../../progress.js";
5
3
  async function runMaxFileLinesRule(sourceFiles, options) {
6
4
  if (!options.rules.maxFileLines)
7
5
  return [];
@@ -10,52 +8,11 @@ async function runMaxFileLinesRule(sourceFiles, options) {
10
8
  rule: "max-file-lines",
11
9
  totalItems: sourceFiles.length,
12
10
  });
13
- const native = loadNativeBinding();
14
- if (native && !options.progressObserver) {
15
- const violations = JSON.parse(native.runMaxFileLinesRule(JSON.stringify({
16
- sourceFiles,
17
- max: options.rules.maxFileLines.max,
18
- warning: true,
19
- })));
20
- emitRuleCompleted(progress, violations.length);
21
- return violations;
22
- }
23
- const violations = [];
24
- for (let index = 0; index < sourceFiles.length; index += 1) {
25
- const file = sourceFiles[index];
26
- const text = await fs.readFile(file.absolutePath, "utf8");
27
- const lineCount = countPhysicalLines(text);
28
- const codeLineCount = countCodeLines(maskCommentsForLineCounting(text, file.extension));
29
- if (codeLineCount > options.rules.maxFileLines.max) {
30
- violations.push({
31
- rule: "max-file-lines",
32
- fix: false,
33
- filePath: file.relativeFromProjectRoot,
34
- message: `file has ${codeLineCount} lines and exceeds the limit of ${options.rules.maxFileLines.max}`,
35
- details: {
36
- lineCount: codeLineCount,
37
- max: options.rules.maxFileLines.max,
38
- },
39
- });
40
- emitRuleChunk(progress, index + 1, violations.length);
41
- continue;
42
- }
43
- if (lineCount > options.rules.maxFileLines.max) {
44
- violations.push({
45
- rule: "max-file-lines",
46
- fix: false,
47
- filePath: file.relativeFromProjectRoot,
48
- severity: "warning",
49
- message: `file has ${lineCount} physical lines, but only ${codeLineCount} code lines count toward the limit of ${options.rules.maxFileLines.max}`,
50
- details: {
51
- lineCount,
52
- codeLineCount,
53
- max: options.rules.maxFileLines.max,
54
- },
55
- });
56
- }
57
- emitRuleChunk(progress, index + 1, violations.length);
58
- }
11
+ const violations = JSON.parse(requireNativeBinding().runMaxFileLinesRule(JSON.stringify({
12
+ sourceFiles,
13
+ max: options.rules.maxFileLines.max,
14
+ warning: true,
15
+ })));
59
16
  emitRuleCompleted(progress, violations.length);
60
17
  return violations;
61
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file-lines.js","sourceRoot":"","sources":["../../../../src/checks/rules/max/file-lines.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-lines.js","sourceRoot":"","sources":["../../../../src/checks/rules/max/file-lines.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEtE,KAAK,UAAU,mBAAmB,CAChC,WAAgC,EAChC,OAA6C;IAE7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAE3C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,QAAQ,EAAE,OAAO,CAAC,gBAAgB;QAClC,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,WAAW,CAAC,MAAM;KAC/B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;QACtF,WAAW;QACX,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG;QACnC,OAAO,EAAE,IAAI;KACd,CAAC,CAAC,CAA8B,CAAC;IAClC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"function-lines.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/max/function-lines.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAYvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAS7D,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAyHF,iBAAS,kCAAkC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAOnH;AAED,iBAAe,uBAAuB,CACpC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAgFpC;AAED,OAAO,EAAE,kCAAkC,EAAE,uBAAuB,EAAE,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"function-lines.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/max/function-lines.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAevD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAS7D,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAoJF,iBAAS,kCAAkC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE,CASnH;AAED,iBAAe,uBAAuB,CACpC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAqFpC;AAED,OAAO,EAAE,kCAAkC,EAAE,uBAAuB,EAAE,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -2,8 +2,9 @@ import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import ts from "typescript";
4
4
  import { loadNativeBinding } from "../../../native/native.js";
5
+ import { collectWithParseFailure } from "../../parse-failures.js";
5
6
  import { parseSource } from "../../../imports/module-specifiers.js";
6
- import { isGoExtension, isPythonExtension, isQmlExtension, isRustExtension, isShellExtension, isTypeScriptFamilyExtension, supportsMaxFunctionLines, } from "../../../shared/languages.js";
7
+ import { isCppExtension, isCsharpExtension, isGoExtension, isPythonExtension, isQmlExtension, isRustExtension, isShellExtension, isTypeScriptFamilyExtension, supportsMaxFunctionLines, } from "../../../shared/languages.js";
7
8
  import { createRuleProgress, emitRuleChunk, emitRuleCompleted } from "../../progress.js";
8
9
  import { getEndLine, getStartLine, isFunctionLikeWithBody, resolveFunctionKind, resolveFunctionName } from "../typescript-functions.js";
9
10
  import { countCodeLinesInRange, maskCommentsForLineCounting } from "./code-lines.js";
@@ -48,6 +49,29 @@ function countBraceDelta(value) {
48
49
  }
49
50
  return delta;
50
51
  }
52
+ const C_FAMILY_HEADER_EXCLUDED_LEADING_WORDS = new Set([
53
+ "if", "else", "for", "while", "do", "switch", "case", "default", "catch", "try", "finally",
54
+ "using", "lock", "foreach", "fixed", "checked", "unchecked", "namespace", "class", "struct",
55
+ "enum", "interface", "return", "throw", "new", "delete", "goto", "break", "continue",
56
+ ]);
57
+ function isCFamilyHeaderStart(line) {
58
+ const trimmed = stripCommentsAndStrings(line).trim();
59
+ if (!trimmed || trimmed.endsWith(";") || trimmed.endsWith(":"))
60
+ return false;
61
+ if (trimmed.startsWith("#") || trimmed.startsWith("[") || trimmed.startsWith("@"))
62
+ return false;
63
+ if (!trimmed.includes("("))
64
+ return false;
65
+ const leadingWord = /[A-Za-z_]\w*/u.exec(trimmed)?.[0] ?? "";
66
+ return !C_FAMILY_HEADER_EXCLUDED_LEADING_WORDS.has(leadingWord);
67
+ }
68
+ function extractCFamilyFunctionName(header) {
69
+ const stripped = stripCommentsAndStrings(header);
70
+ const parenIndex = stripped.indexOf("(");
71
+ if (parenIndex === -1)
72
+ return "anonymous";
73
+ return /[A-Za-z_]\w*$/u.exec(stripped.slice(0, parenIndex))?.[0] ?? "anonymous";
74
+ }
51
75
  function createPendingBlockFunction() {
52
76
  return {
53
77
  braceDepth: 0,
@@ -70,6 +94,7 @@ function collectBlockFunctionDescriptors(text, extension) {
70
94
  const descriptors = [];
71
95
  const lines = text.split(/\r?\n/);
72
96
  const isGo = isGoExtension(extension);
97
+ const isCFamily = isCppExtension(extension) || isCsharpExtension(extension);
73
98
  const headerStartPattern = isGo
74
99
  ? /^\s*func(?:\s*\([^)]*\))?\s+/u
75
100
  : /^\s*(?:pub(?:\([^)]*\))?\s+)?(?:async\s+)?(?:const\s+)?(?:unsafe\s+)?fn\s+/u;
@@ -80,17 +105,20 @@ function collectBlockFunctionDescriptors(text, extension) {
80
105
  for (let index = 0; index < lines.length; index += 1) {
81
106
  const line = lines[index] ?? "";
82
107
  if (!pending.header) {
83
- if (!headerStartPattern.test(line))
108
+ const isHeaderStart = isCFamily ? isCFamilyHeaderStart(line) : headerStartPattern.test(line);
109
+ if (!isHeaderStart)
84
110
  continue;
85
111
  pending.header = line;
86
112
  pending.startLine = index + 1;
87
113
  pending.kind = isGo && /\bfunc\s*\(/u.test(line) ? "method" : "function";
88
- pending.name = headerNamePattern.exec(line)?.[1] ?? "anonymous";
114
+ pending.name = isCFamily ? extractCFamilyFunctionName(pending.header) : (headerNamePattern.exec(line)?.[1] ?? "anonymous");
89
115
  }
90
116
  else {
91
117
  pending.header = `${pending.header}\n${line}`;
92
118
  if (!pending.name || pending.name === "anonymous") {
93
- pending.name = headerNamePattern.exec(pending.header)?.[1] ?? pending.name;
119
+ pending.name = isCFamily
120
+ ? extractCFamilyFunctionName(pending.header)
121
+ : (headerNamePattern.exec(pending.header)?.[1] ?? pending.name);
94
122
  }
95
123
  }
96
124
  if (pending.braceDepth === 0 && !stripCommentsAndStrings(pending.header).includes("{")) {
@@ -107,8 +135,9 @@ function collectBlockFunctionDescriptors(text, extension) {
107
135
  function collectLanguageFunctionDescriptors(text, extension, filePath) {
108
136
  if (isTypeScriptFamilyExtension(extension))
109
137
  return collectTypeScriptFunctionDescriptors(parseSource(text, filePath));
110
- if (isGoExtension(extension) || isRustExtension(extension))
138
+ if (isGoExtension(extension) || isRustExtension(extension) || isCppExtension(extension) || isCsharpExtension(extension)) {
111
139
  return collectBlockFunctionDescriptors(text, extension);
140
+ }
112
141
  if (isPythonExtension(extension))
113
142
  return collectPythonFunctionDescriptors(text);
114
143
  if (isShellExtension(extension))
@@ -147,8 +176,8 @@ async function runMaxFunctionLinesRule(sourceFiles, options) {
147
176
  const text = await fs.readFile(file.absolutePath, "utf8");
148
177
  const extension = path.extname(file.absolutePath).toLowerCase();
149
178
  const maskedText = maskCommentsForLineCounting(text, extension);
150
- const functions = collectLanguageFunctionDescriptors(text, extension, file.absolutePath);
151
- for (const descriptor of functions) {
179
+ const functions = await collectWithParseFailure("max-function-lines", file.relativeFromProjectRoot, violations, () => collectLanguageFunctionDescriptors(text, extension, file.absolutePath));
180
+ for (const descriptor of functions ?? []) {
152
181
  const codeLineCount = countCodeLinesInRange(maskedText, descriptor.startLine, descriptor.endLine);
153
182
  const physicalLineCount = descriptor.lineCount;
154
183
  if (codeLineCount > options.rules.maxFunctionLines.max) {
@@ -1 +1 @@
1
- {"version":3,"file":"function-lines.js","sourceRoot":"","sources":["../../../../src/checks/rules/max/function-lines.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-lines.js","sourceRoot":"","sources":["../../../../src/checks/rules/max/function-lines.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"declaration-name.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/min/declaration-name.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAY7D,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAsS1E,iBAAe,yBAAyB,CACtC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA6BpC;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"declaration-name.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/min/declaration-name.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAe7D,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAyW1E,iBAAe,yBAAyB,CACtC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmCpC;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import fs from "node:fs/promises";
2
2
  import ts from "typescript";
3
3
  import { parseSource } from "../../../imports/module-specifiers.js";
4
- import { isGoExtension, isPythonExtension, isQmlExtension, isRustExtension, isScssExtension, isShellExtension, isStyleExtension, isTypeScriptFamilyExtension, supportsMinDeclarationName, } from "../../../shared/languages.js";
4
+ import { isCppExtension, isCsharpExtension, isGoExtension, isPythonExtension, isQmlExtension, isRustExtension, isScssExtension, isShellExtension, isStyleExtension, isTypeScriptFamilyExtension, supportsMinDeclarationName, } from "../../../shared/languages.js";
5
+ import { collectLanguageFunctionDescriptors } from "../max/function-lines.js";
5
6
  import { createRuleProgress, emitRuleChunk, emitRuleCompleted } from "../../progress.js";
6
7
  import { getStartLine } from "../typescript-functions.js";
8
+ import { collectWithParseFailure } from "../../parse-failures.js";
7
9
  import { stripCommentsAndStrings } from "../max/strip.js";
8
10
  import { updatePythonTripleState } from "../max/python.js";
9
11
  import { maskQmlCommentsAndStrings } from "../comments/qml.js";
@@ -127,6 +129,67 @@ function collectRustDeclarations(text) {
127
129
  },
128
130
  ]);
129
131
  }
132
+ function collectCFamilyFunctionDeclarations(text, extension, filePath) {
133
+ return collectLanguageFunctionDescriptors(text, extension, filePath).map((entry) => ({
134
+ kind: entry.kind,
135
+ line: entry.startLine,
136
+ name: entry.name,
137
+ }));
138
+ }
139
+ function collectCppDeclarations(text, extension, filePath) {
140
+ return [
141
+ ...collectCFamilyFunctionDeclarations(text, extension, filePath),
142
+ ...collectPatternDeclarations(stripCommentsAndStrings(text), [
143
+ {
144
+ kind: "namespace",
145
+ pattern: /^\s*namespace\s+([A-Za-z_]\w*)/u,
146
+ },
147
+ {
148
+ kind: "class",
149
+ pattern: /^\s*(?:template\s*<[^>]*>\s*)?class\s+([A-Za-z_]\w*)/u,
150
+ },
151
+ {
152
+ kind: "struct",
153
+ pattern: /^\s*(?:template\s*<[^>]*>\s*)?struct\s+([A-Za-z_]\w*)/u,
154
+ },
155
+ {
156
+ kind: "enum",
157
+ pattern: /^\s*enum(?:\s+class)?\s+([A-Za-z_]\w*)/u,
158
+ },
159
+ {
160
+ kind: "using",
161
+ pattern: /^\s*using\s+([A-Za-z_]\w*)\s*=/u,
162
+ },
163
+ ]),
164
+ ];
165
+ }
166
+ function collectCsharpDeclarations(text, extension, filePath) {
167
+ return [
168
+ ...collectCFamilyFunctionDeclarations(text, extension, filePath),
169
+ ...collectPatternDeclarations(stripCommentsAndStrings(text), [
170
+ {
171
+ kind: "namespace",
172
+ pattern: /^\s*namespace\s+([A-Za-z_][\w.]*)/u,
173
+ },
174
+ {
175
+ kind: "class",
176
+ pattern: /^\s*(?:(?:public|private|protected|internal|static|sealed|abstract|partial)\s+)*class\s+([A-Za-z_]\w*)/u,
177
+ },
178
+ {
179
+ kind: "interface",
180
+ pattern: /^\s*(?:(?:public|private|protected|internal|partial)\s+)*interface\s+([A-Za-z_]\w*)/u,
181
+ },
182
+ {
183
+ kind: "struct",
184
+ pattern: /^\s*(?:(?:public|private|protected|internal|readonly|partial)\s+)*struct\s+([A-Za-z_]\w*)/u,
185
+ },
186
+ {
187
+ kind: "enum",
188
+ pattern: /^\s*(?:(?:public|private|protected|internal)\s+)*enum\s+([A-Za-z_]\w*)/u,
189
+ },
190
+ ]),
191
+ ];
192
+ }
130
193
  function collectPythonDeclarations(text) {
131
194
  const declarations = [];
132
195
  const state = { quote: null };
@@ -228,6 +291,10 @@ function collectLanguageDeclarations(text, extension, filePath) {
228
291
  return collectGoDeclarations(text);
229
292
  if (isRustExtension(extension))
230
293
  return collectRustDeclarations(text);
294
+ if (isCppExtension(extension))
295
+ return collectCppDeclarations(text, extension, filePath);
296
+ if (isCsharpExtension(extension))
297
+ return collectCsharpDeclarations(text, extension, filePath);
231
298
  if (isPythonExtension(extension))
232
299
  return collectPythonDeclarations(text);
233
300
  if (isQmlExtension(extension))
@@ -272,7 +339,8 @@ async function runMinDeclarationNameRule(sourceFiles, options) {
272
339
  continue;
273
340
  }
274
341
  const text = await fs.readFile(file.absolutePath, "utf8");
275
- for (const declaration of collectLanguageDeclarations(text, file.extension, file.absolutePath)) {
342
+ const declarations = await collectWithParseFailure("min-declaration-name", file.relativeFromProjectRoot, violations, () => collectLanguageDeclarations(text, file.extension, file.absolutePath));
343
+ for (const declaration of declarations ?? []) {
276
344
  const length = measureDeclarationName(declaration.name);
277
345
  if (length >= options.rules.minDeclarationName.min)
278
346
  continue;