@trebired/code-discipline 4.10.1 → 4.11.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.
- package/CHANGELOG.md +12 -0
- package/README.md +9 -3
- package/dist/checks/rules/banned/patterns.d.ts.map +1 -1
- package/dist/checks/rules/banned/patterns.js +38 -4
- package/dist/checks/rules/banned/patterns.js.map +1 -1
- package/dist/checks/rules/comments/c-like.d.ts +4 -0
- package/dist/checks/rules/comments/c-like.d.ts.map +1 -0
- package/dist/checks/rules/comments/c-like.js +28 -0
- package/dist/checks/rules/comments/c-like.js.map +1 -0
- package/dist/checks/rules/comments/python.d.ts +4 -0
- package/dist/checks/rules/comments/python.d.ts.map +1 -0
- package/dist/checks/rules/comments/python.js +68 -0
- package/dist/checks/rules/comments/python.js.map +1 -0
- package/dist/checks/rules/comments/qml.d.ts +5 -0
- package/dist/checks/rules/comments/qml.d.ts.map +1 -0
- package/dist/checks/rules/comments/qml.js +125 -0
- package/dist/checks/rules/comments/qml.js.map +1 -0
- package/dist/checks/rules/comments/quoted.d.ts +3 -0
- package/dist/checks/rules/comments/quoted.d.ts.map +1 -0
- package/dist/checks/rules/comments/quoted.js +16 -0
- package/dist/checks/rules/comments/quoted.js.map +1 -0
- package/dist/checks/rules/comments/ranges.d.ts.map +1 -1
- package/dist/checks/rules/comments/ranges.js +16 -46
- package/dist/checks/rules/comments/ranges.js.map +1 -1
- package/dist/checks/rules/comments/shell.d.ts +4 -0
- package/dist/checks/rules/comments/shell.d.ts.map +1 -0
- package/dist/checks/rules/comments/shell.js +93 -0
- package/dist/checks/rules/comments/shell.js.map +1 -0
- package/dist/checks/rules/max/function-lines.d.ts.map +1 -1
- package/dist/checks/rules/max/function-lines.js +18 -6
- package/dist/checks/rules/max/function-lines.js.map +1 -1
- package/dist/checks/rules/max/python.d.ts +11 -0
- package/dist/checks/rules/max/python.d.ts.map +1 -0
- package/dist/checks/rules/max/python.js +83 -0
- package/dist/checks/rules/max/python.js.map +1 -0
- package/dist/checks/rules/max/qml.d.ts +10 -0
- package/dist/checks/rules/max/qml.d.ts.map +1 -0
- package/dist/checks/rules/max/qml.js +77 -0
- package/dist/checks/rules/max/qml.js.map +1 -0
- package/dist/checks/rules/max/shell.d.ts +10 -0
- package/dist/checks/rules/max/shell.d.ts.map +1 -0
- package/dist/checks/rules/max/shell.js +90 -0
- package/dist/checks/rules/max/shell.js.map +1 -0
- package/dist/formatters/prettier.d.ts.map +1 -1
- package/dist/formatters/prettier.js +2 -0
- package/dist/formatters/prettier.js.map +1 -1
- package/dist/imports/scan.d.ts.map +1 -1
- package/dist/imports/scan.js +12 -5
- package/dist/imports/scan.js.map +1 -1
- package/dist/shared/constants.d.ts +2 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +4 -3
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/languages.d.ts +4 -1
- package/dist/shared/languages.d.ts.map +1 -1
- package/dist/shared/languages.js +15 -3
- package/dist/shared/languages.js.map +1 -1
- package/dist/shared/rule-exclusions.d.ts.map +1 -1
- package/dist/shared/rule-exclusions.js +3 -1
- package/dist/shared/rule-exclusions.js.map +1 -1
- package/dist/shared/utils.d.ts +2 -1
- package/dist/shared/utils.d.ts.map +1 -1
- package/dist/shared/utils.js +6 -2
- package/dist/shared/utils.js.map +1 -1
- package/native/darwin-arm64.node +0 -0
- package/native/darwin-x64.node +0 -0
- package/native/linux-arm64-gnu.node +0 -0
- package/native/linux-x64-gnu.node +0 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@ All notable changes to `@trebired/code-discipline` will be documented here.
|
|
|
4
4
|
|
|
5
5
|
This project follows semantic versioning once published.
|
|
6
6
|
|
|
7
|
+
## 4.11.0
|
|
8
|
+
|
|
9
|
+
- Added QML source support with QML-aware `//` and `/* */` comment handling, string/template/regex preservation, and `maxFunctionLines` detection for JavaScript-style QML functions and signal-handler blocks.
|
|
10
|
+
- Made `.trebired/code-discipline` package-owned state intrinsically excluded from source scans, rule-level filtering, native scanning, Prettier formatter traversal, and banned-pattern matches against the package-owned state path itself.
|
|
11
|
+
- Updated language verification coverage for QML and for the built-in package-state exclusion.
|
|
12
|
+
|
|
13
|
+
## 4.10.2
|
|
14
|
+
|
|
15
|
+
- Added Python source support with comment-aware line counting, removable `#` comment detection, shebang/encoding-comment preservation, triple-string preservation, and indentation-based `maxFunctionLines` detection for `def` and `async def`.
|
|
16
|
+
- Added shell source support for `.sh`, `.bash`, and `.zsh` files, including shebang preservation, heredoc-aware `#` comment handling, and brace-style shell function detection for `maxFunctionLines`.
|
|
17
|
+
- Updated the Rust native backend comment scanner so native-backed runs understand Python and shell comments instead of only matching extensions in the TypeScript fallback.
|
|
18
|
+
|
|
7
19
|
## 4.10.1
|
|
8
20
|
|
|
9
21
|
- Refreshed package dependency ranges and lockfile state with `bun update` after the `.trebired/code-discipline` migration.
|
package/README.md
CHANGED
|
@@ -129,6 +129,8 @@ Unsafe cases stay unchanged and remain reported after the fix pass. The fixer in
|
|
|
129
129
|
|
|
130
130
|
Reports function-like declarations whose total span exceeds `max`.
|
|
131
131
|
|
|
132
|
+
JavaScript and TypeScript use the TypeScript AST. Go and Rust use brace-aware function scanning. Python uses indentation-aware `def` and `async def` spans. Shell files with `.sh`, `.bash`, or `.zsh` use quote/comment-aware brace function spans. QML uses comment/string-aware scanning for JavaScript-style functions and signal-handler blocks.
|
|
133
|
+
|
|
132
134
|
#### `folderizeCompoundFiles`
|
|
133
135
|
|
|
134
136
|
Detects flat compound names such as `user_route.ts` and can move them into structural folders such as `user/route.ts`.
|
|
@@ -146,7 +148,7 @@ Validates and optionally fixes:
|
|
|
146
148
|
- `project-manifests` output drift in root `tsconfig.json` and `package.json#imports`
|
|
147
149
|
- `alias-map` output drift in `.trebired/code-discipline/imports/*.json` and the generated tsconfig projection
|
|
148
150
|
|
|
149
|
-
`imports` rewrites JavaScript, TypeScript, and SCSS module specifiers. Mixed-language repositories can still include Go and
|
|
151
|
+
`imports` rewrites JavaScript, TypeScript, and SCSS module specifiers. Mixed-language repositories can still include Go, Rust, Python, QML, and extension-bearing shell files; those files are ignored by alias syncing instead of causing parser failures.
|
|
150
152
|
|
|
151
153
|
When `imports` sees a relative import that resolves nowhere, check mode reports it. Fix mode removes safe line-isolated static import/export declarations and Sass `@use`, `@forward`, or single-specifier quoted `@import` directives. Dynamic `import(...)`, comments, strings, CSS `url(...)`, and arbitrary CSS values are left alone.
|
|
152
154
|
|
|
@@ -191,9 +193,12 @@ The rule supports the same language families this package currently scans for di
|
|
|
191
193
|
- JavaScript and TypeScript
|
|
192
194
|
- Go
|
|
193
195
|
- Rust
|
|
196
|
+
- Python
|
|
197
|
+
- QML
|
|
198
|
+
- shell files with `.sh`, `.bash`, or `.zsh`
|
|
194
199
|
- SCSS and CSS
|
|
195
200
|
|
|
196
|
-
It keeps string, regex, rune, char, byte-string,
|
|
201
|
+
It keeps string, regex, rune, char, byte-string, raw-string, Python triple-string, QML string/template/regex literal, shell quoted-string, and shell heredoc content intact while removing actual source comments. Python shebang and encoding comments are preserved, and shell shebangs are preserved. When a removed comment occupied the whole line, that empty line is removed in the same file rewrite.
|
|
197
202
|
|
|
198
203
|
You can preserve specific comments by matching plain substrings inside the comment text itself, without hardcoding any comment syntax:
|
|
199
204
|
|
|
@@ -423,6 +428,7 @@ Source scanning covers every built-in supported source family by default:
|
|
|
423
428
|
|
|
424
429
|
- exclude specific extensions with `excludeSourceExtensions`
|
|
425
430
|
- built-in excluded directories are always included
|
|
431
|
+
- `.trebired/code-discipline` is package-owned state and is always excluded from source scans, rule fixes, formatter traversal, and banned-pattern matches against the package-owned state path itself
|
|
426
432
|
- top-level `ignore.entries` and root `.gitignore` entries are included when `ignore.use_gitignore: true`
|
|
427
433
|
|
|
428
434
|
So you get the full supported scan set automatically and only opt out when needed.
|
|
@@ -535,7 +541,7 @@ formatters: {
|
|
|
535
541
|
|
|
536
542
|
`@trebired/code-discipline` can use a Rust native backend when a matching binary is available, with the TypeScript implementation as the fallback. This follows the same native-fast-path shape as `@trebired/logger`: package users keep the same CLI/API, while hot scanning and rewrite paths can move into Rust.
|
|
537
543
|
|
|
538
|
-
The current native backend accelerates source scanning, `max-file-lines`, common `max-function-lines` paths, `folderize-compound-files` checks, and `remove-comments`. If no binary is present, the package automatically uses the TypeScript fallback.
|
|
544
|
+
The current native backend accelerates source scanning, `max-file-lines`, common `max-function-lines` paths, `folderize-compound-files` checks, and `remove-comments`. Its comment scanner understands JavaScript, TypeScript, Go, Rust, Python, QML, shell, SCSS, and CSS. If no binary is present, the package automatically uses the TypeScript fallback.
|
|
539
545
|
|
|
540
546
|
Useful native controls:
|
|
541
547
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/banned/patterns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/banned/patterns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAoF7D,iBAAe,8BAA8B,CAC3C,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAiDpC;AAED,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
|
|
@@ -3,17 +3,49 @@ import path from "node:path";
|
|
|
3
3
|
import { parseSource } from "../../../imports/module-specifiers.js";
|
|
4
4
|
import { isTypeScriptFamilyExtension } from "../../../shared/languages.js";
|
|
5
5
|
import { createRuleProgress, emitRuleChunk, emitRuleCompleted } from "../../progress.js";
|
|
6
|
+
import { CODE_DISCIPLINE_STATE_DIR } from "../../../shared/constants.js";
|
|
6
7
|
import { collectFoldedStringMatches } from "./fold.js";
|
|
7
|
-
|
|
8
|
+
const NORMALIZED_PACKAGE_STATE_DIR = CODE_DISCIPLINE_STATE_DIR.toLowerCase();
|
|
9
|
+
function isStatePathCharacter(value) {
|
|
10
|
+
const code = value.charCodeAt(0);
|
|
11
|
+
return code === 45
|
|
12
|
+
|| code === 46
|
|
13
|
+
|| code === 47
|
|
14
|
+
|| code === 95
|
|
15
|
+
|| (code >= 48 && code <= 57)
|
|
16
|
+
|| (code >= 65 && code <= 90)
|
|
17
|
+
|| (code >= 97 && code <= 122);
|
|
18
|
+
}
|
|
19
|
+
function collectPackageStatePathSpans(text) {
|
|
20
|
+
const spans = [];
|
|
21
|
+
let index = 0;
|
|
22
|
+
while (index <= text.length - NORMALIZED_PACKAGE_STATE_DIR.length) {
|
|
23
|
+
const start = text.indexOf(NORMALIZED_PACKAGE_STATE_DIR, index);
|
|
24
|
+
if (start < 0)
|
|
25
|
+
break;
|
|
26
|
+
let end = start + NORMALIZED_PACKAGE_STATE_DIR.length;
|
|
27
|
+
while (end < text.length && isStatePathCharacter(text[end] ?? ""))
|
|
28
|
+
end += 1;
|
|
29
|
+
spans.push({ start, end });
|
|
30
|
+
index = end;
|
|
31
|
+
}
|
|
32
|
+
return spans;
|
|
33
|
+
}
|
|
34
|
+
function isInsideSpan(index, spans) {
|
|
35
|
+
return spans.some((span) => index >= span.start && index < span.end);
|
|
36
|
+
}
|
|
37
|
+
function countOccurrencesOutsidePackageStatePath(text, pattern) {
|
|
8
38
|
if (!pattern)
|
|
9
39
|
return 0;
|
|
40
|
+
const packageStatePathSpans = collectPackageStatePathSpans(text);
|
|
10
41
|
let count = 0;
|
|
11
42
|
let index = 0;
|
|
12
43
|
while (index <= text.length - pattern.length) {
|
|
13
44
|
const matchIndex = text.indexOf(pattern, index);
|
|
14
45
|
if (matchIndex < 0)
|
|
15
46
|
break;
|
|
16
|
-
|
|
47
|
+
if (!isInsideSpan(matchIndex, packageStatePathSpans))
|
|
48
|
+
count += 1;
|
|
17
49
|
index = matchIndex + 1;
|
|
18
50
|
}
|
|
19
51
|
return count;
|
|
@@ -58,8 +90,10 @@ async function collectBannedPatternViolations(sourceFiles, options) {
|
|
|
58
90
|
for (const pattern of rule.patterns) {
|
|
59
91
|
if (pattern.allowedFiles.includes(file.relativeFromProjectRoot))
|
|
60
92
|
continue;
|
|
61
|
-
const rawOccurrences = normalizedText.includes(pattern.normalizedValue)
|
|
62
|
-
|
|
93
|
+
const rawOccurrences = normalizedText.includes(pattern.normalizedValue)
|
|
94
|
+
? countOccurrencesOutsidePackageStatePath(normalizedText, pattern.normalizedValue)
|
|
95
|
+
: 0;
|
|
96
|
+
const patternFoldedMatches = foldedMatches.filter((match) => countOccurrencesOutsidePackageStatePath(match.value.toLowerCase(), pattern.normalizedValue) > 0);
|
|
63
97
|
if (rawOccurrences === 0 && patternFoldedMatches.length === 0)
|
|
64
98
|
continue;
|
|
65
99
|
violations.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/checks/rules/banned/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/checks/rules/banned/patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c-like.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/c-like.ts"],"names":[],"mappings":"AAAA,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,iBAAS,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAkBnF;AAED,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
function scanSlashLineComment(text, start) {
|
|
2
|
+
let index = start + 2;
|
|
3
|
+
while (index < text.length && text[index] !== "\n" && text[index] !== "\r")
|
|
4
|
+
index += 1;
|
|
5
|
+
return index;
|
|
6
|
+
}
|
|
7
|
+
function scanSlashBlockComment(text, start, nested) {
|
|
8
|
+
let index = start + 2;
|
|
9
|
+
let depth = 1;
|
|
10
|
+
while (index < text.length) {
|
|
11
|
+
if (nested && text[index] === "/" && text[index + 1] === "*") {
|
|
12
|
+
depth += 1;
|
|
13
|
+
index += 2;
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
if (text[index] === "*" && text[index + 1] === "/") {
|
|
17
|
+
depth -= 1;
|
|
18
|
+
index += 2;
|
|
19
|
+
if (depth === 0)
|
|
20
|
+
return index;
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
index += 1;
|
|
24
|
+
}
|
|
25
|
+
return text.length;
|
|
26
|
+
}
|
|
27
|
+
export { scanSlashBlockComment, scanSlashLineComment };
|
|
28
|
+
//# sourceMappingURL=c-like.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c-like.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/c-like.ts"],"names":[],"mappings":"AAAA,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAa;IACvD,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;QAAE,KAAK,IAAI,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAa,EAAE,MAAe;IACzE,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7D,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACnD,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA4ChD,iBAAS,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAkBhE;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { scanEscapedQuotedLiteral } from "./quoted.js";
|
|
2
|
+
function scanHashLineComment(text, start) {
|
|
3
|
+
let index = start + 1;
|
|
4
|
+
while (index < text.length && text[index] !== "\n" && text[index] !== "\r")
|
|
5
|
+
index += 1;
|
|
6
|
+
return index;
|
|
7
|
+
}
|
|
8
|
+
function isPythonStringPrefix(value) {
|
|
9
|
+
return value.length === 1 && /[bfru]/iu.test(value);
|
|
10
|
+
}
|
|
11
|
+
function scanPythonStringLiteral(text, start) {
|
|
12
|
+
let quoteIndex = start;
|
|
13
|
+
if (text[start] !== "\"" && text[start] !== "'") {
|
|
14
|
+
if (!isPythonStringPrefix(text[start] ?? ""))
|
|
15
|
+
return null;
|
|
16
|
+
while (quoteIndex < text.length && isPythonStringPrefix(text[quoteIndex] ?? ""))
|
|
17
|
+
quoteIndex += 1;
|
|
18
|
+
if (quoteIndex - start > 3 || (text[quoteIndex] !== "\"" && text[quoteIndex] !== "'"))
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const quote = text[quoteIndex];
|
|
22
|
+
const triple = text.slice(quoteIndex, quoteIndex + 3) === quote.repeat(3);
|
|
23
|
+
if (!triple)
|
|
24
|
+
return scanEscapedQuotedLiteral(text, quoteIndex, quote);
|
|
25
|
+
let index = quoteIndex + 3;
|
|
26
|
+
while (index < text.length) {
|
|
27
|
+
if (text[index] === "\\") {
|
|
28
|
+
index += 2;
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (text.slice(index, index + 3) === quote.repeat(3))
|
|
32
|
+
return index + 3;
|
|
33
|
+
index += 1;
|
|
34
|
+
}
|
|
35
|
+
return text.length;
|
|
36
|
+
}
|
|
37
|
+
function isProtectedPythonHashComment(text, start) {
|
|
38
|
+
if (start === 0 && text[start + 1] === "!")
|
|
39
|
+
return true;
|
|
40
|
+
const lineStart = text.lastIndexOf("\n", Math.max(0, start - 1)) + 1;
|
|
41
|
+
const lineNumber = text.slice(0, lineStart).split(/\n/u).length;
|
|
42
|
+
if (lineNumber > 2)
|
|
43
|
+
return false;
|
|
44
|
+
const lineEnd = scanHashLineComment(text, start);
|
|
45
|
+
return /\bcoding[:=]\s*[-\w.]+/u.test(text.slice(start, lineEnd));
|
|
46
|
+
}
|
|
47
|
+
function collectPythonCommentRanges(text) {
|
|
48
|
+
const ranges = [];
|
|
49
|
+
let index = 0;
|
|
50
|
+
while (index < text.length) {
|
|
51
|
+
const literalEnd = scanPythonStringLiteral(text, index);
|
|
52
|
+
if (literalEnd != null) {
|
|
53
|
+
index = literalEnd;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (text[index] === "#") {
|
|
57
|
+
const end = scanHashLineComment(text, index);
|
|
58
|
+
if (!isProtectedPythonHashComment(text, index))
|
|
59
|
+
ranges.push({ start: index, end, kind: "line" });
|
|
60
|
+
index = end;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
index += 1;
|
|
64
|
+
}
|
|
65
|
+
return ranges;
|
|
66
|
+
}
|
|
67
|
+
export { collectPythonCommentRanges };
|
|
68
|
+
//# sourceMappingURL=python.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/python.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CommentRange } from "./ranges.js";
|
|
2
|
+
declare function collectQmlCommentRanges(text: string): CommentRange[];
|
|
3
|
+
declare function maskQmlCommentsAndStrings(text: string): string;
|
|
4
|
+
export { collectQmlCommentRanges, maskQmlCommentsAndStrings };
|
|
5
|
+
//# sourceMappingURL=qml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qml.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/qml.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAwEhD,iBAAS,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAwB7D;AAED,iBAAS,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBvD;AAED,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { scanSlashBlockComment, scanSlashLineComment } from "./c-like.js";
|
|
2
|
+
import { scanEscapedQuotedLiteral } from "./quoted.js";
|
|
3
|
+
const REGEX_PREFIX_CHARS = new Set(["(", "[", "{", ":", ",", ";", "=", "!", "?", "&", "|", "+", "-", "*", "~", "^", "<", ">"]);
|
|
4
|
+
const REGEX_PREFIX_WORDS = new Set(["case", "delete", "in", "new", "of", "return", "throw", "typeof", "void", "yield"]);
|
|
5
|
+
function scanTemplateLiteral(text, start) {
|
|
6
|
+
let index = start + 1;
|
|
7
|
+
while (index < text.length) {
|
|
8
|
+
if (text[index] === "\\") {
|
|
9
|
+
index += 2;
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
if (text[index] === "`")
|
|
13
|
+
return index + 1;
|
|
14
|
+
index += 1;
|
|
15
|
+
}
|
|
16
|
+
return text.length;
|
|
17
|
+
}
|
|
18
|
+
function previousSignificantIndex(text, start) {
|
|
19
|
+
let index = start - 1;
|
|
20
|
+
while (index >= 0 && /\s/u.test(text[index] ?? ""))
|
|
21
|
+
index -= 1;
|
|
22
|
+
return index;
|
|
23
|
+
}
|
|
24
|
+
function previousWord(text, end) {
|
|
25
|
+
let index = end;
|
|
26
|
+
while (index >= 0 && /[$\w]/u.test(text[index] ?? ""))
|
|
27
|
+
index -= 1;
|
|
28
|
+
return text.slice(index + 1, end + 1);
|
|
29
|
+
}
|
|
30
|
+
function canStartRegexLiteral(text, start) {
|
|
31
|
+
const previousIndex = previousSignificantIndex(text, start);
|
|
32
|
+
if (previousIndex < 0)
|
|
33
|
+
return true;
|
|
34
|
+
const previous = text[previousIndex] ?? "";
|
|
35
|
+
if (REGEX_PREFIX_CHARS.has(previous))
|
|
36
|
+
return true;
|
|
37
|
+
if (/[$\w]/u.test(previous))
|
|
38
|
+
return REGEX_PREFIX_WORDS.has(previousWord(text, previousIndex));
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
function scanRegexLiteral(text, start) {
|
|
42
|
+
if (!canStartRegexLiteral(text, start))
|
|
43
|
+
return null;
|
|
44
|
+
let index = start + 1;
|
|
45
|
+
let inCharacterClass = false;
|
|
46
|
+
while (index < text.length) {
|
|
47
|
+
const char = text[index] ?? "";
|
|
48
|
+
if (char === "\n" || char === "\r")
|
|
49
|
+
return null;
|
|
50
|
+
if (char === "\\") {
|
|
51
|
+
index += 2;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (char === "[")
|
|
55
|
+
inCharacterClass = true;
|
|
56
|
+
else if (char === "]")
|
|
57
|
+
inCharacterClass = false;
|
|
58
|
+
else if (char === "/" && !inCharacterClass) {
|
|
59
|
+
index += 1;
|
|
60
|
+
while (/[$\w]/u.test(text[index] ?? ""))
|
|
61
|
+
index += 1;
|
|
62
|
+
return index;
|
|
63
|
+
}
|
|
64
|
+
index += 1;
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
function scanQmlLiteral(text, start) {
|
|
69
|
+
const char = text[start];
|
|
70
|
+
if (char === "\"" || char === "'")
|
|
71
|
+
return scanEscapedQuotedLiteral(text, start, char);
|
|
72
|
+
if (char === "`")
|
|
73
|
+
return scanTemplateLiteral(text, start);
|
|
74
|
+
if (char === "/" && text[start + 1] !== "/" && text[start + 1] !== "*")
|
|
75
|
+
return scanRegexLiteral(text, start);
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
function collectQmlCommentRanges(text) {
|
|
79
|
+
const ranges = [];
|
|
80
|
+
let index = 0;
|
|
81
|
+
while (index < text.length) {
|
|
82
|
+
const literalEnd = scanQmlLiteral(text, index);
|
|
83
|
+
if (literalEnd != null) {
|
|
84
|
+
index = literalEnd;
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (text[index] === "/" && text[index + 1] === "/") {
|
|
88
|
+
const end = scanSlashLineComment(text, index);
|
|
89
|
+
ranges.push({ start: index, end, kind: "line" });
|
|
90
|
+
index = end;
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
if (text[index] === "/" && text[index + 1] === "*") {
|
|
94
|
+
const end = scanSlashBlockComment(text, index, false);
|
|
95
|
+
ranges.push({ start: index, end, kind: "block" });
|
|
96
|
+
index = end;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
index += 1;
|
|
100
|
+
}
|
|
101
|
+
return ranges;
|
|
102
|
+
}
|
|
103
|
+
function maskQmlCommentsAndStrings(text) {
|
|
104
|
+
let result = "";
|
|
105
|
+
let index = 0;
|
|
106
|
+
while (index < text.length) {
|
|
107
|
+
const literalEnd = scanQmlLiteral(text, index);
|
|
108
|
+
const commentEnd = literalEnd == null && text[index] === "/" && text[index + 1] === "/"
|
|
109
|
+
? scanSlashLineComment(text, index)
|
|
110
|
+
: literalEnd == null && text[index] === "/" && text[index + 1] === "*"
|
|
111
|
+
? scanSlashBlockComment(text, index, false)
|
|
112
|
+
: null;
|
|
113
|
+
const end = literalEnd ?? commentEnd;
|
|
114
|
+
if (end != null) {
|
|
115
|
+
result += text.slice(index, end).replace(/[^\r\n]/gu, " ");
|
|
116
|
+
index = end;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
result += text[index] ?? "";
|
|
120
|
+
index += 1;
|
|
121
|
+
}
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
export { collectQmlCommentRanges, maskQmlCommentsAndStrings };
|
|
125
|
+
//# sourceMappingURL=qml.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qml.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/qml.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quoted.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/quoted.ts"],"names":[],"mappings":"AAAA,iBAAS,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,MAAM,CAYxF;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function scanEscapedQuotedLiteral(text, start, quote) {
|
|
2
|
+
let index = start + 1;
|
|
3
|
+
while (index < text.length) {
|
|
4
|
+
const char = text[index];
|
|
5
|
+
if (char === "\\") {
|
|
6
|
+
index += 2;
|
|
7
|
+
continue;
|
|
8
|
+
}
|
|
9
|
+
index += 1;
|
|
10
|
+
if (char === quote)
|
|
11
|
+
return index;
|
|
12
|
+
}
|
|
13
|
+
return text.length;
|
|
14
|
+
}
|
|
15
|
+
export { scanEscapedQuotedLiteral };
|
|
16
|
+
//# sourceMappingURL=quoted.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quoted.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/quoted.ts"],"names":[],"mappings":"AAAA,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAa,EAAE,KAAiB;IAC9E,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;QACX,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ranges.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ranges.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"AAiBA,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpC,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AAyLF,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAS7E;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
|
-
import { isGoExtension, isRustExtension, isStyleExtension, isTypeScriptFamilyExtension } from "../../../shared/languages.js";
|
|
2
|
+
import { isGoExtension, isPythonExtension, isQmlExtension, isRustExtension, isShellExtension, isStyleExtension, isTypeScriptFamilyExtension, } from "../../../shared/languages.js";
|
|
3
|
+
import { scanSlashBlockComment, scanSlashLineComment } from "./c-like.js";
|
|
4
|
+
import { collectPythonCommentRanges } from "./python.js";
|
|
5
|
+
import { collectQmlCommentRanges } from "./qml.js";
|
|
6
|
+
import { scanEscapedQuotedLiteral } from "./quoted.js";
|
|
7
|
+
import { collectShellCommentRanges } from "./shell.js";
|
|
3
8
|
function collectTypeScriptCommentRanges(text, extension) {
|
|
4
9
|
const languageVariant = extension === ".jsx" || extension === ".tsx"
|
|
5
10
|
? ts.LanguageVariant.JSX
|
|
@@ -18,20 +23,6 @@ function collectTypeScriptCommentRanges(text, extension) {
|
|
|
18
23
|
}
|
|
19
24
|
return ranges;
|
|
20
25
|
}
|
|
21
|
-
function scanEscapedQuotedLiteral(text, start, quote) {
|
|
22
|
-
let index = start + 1;
|
|
23
|
-
while (index < text.length) {
|
|
24
|
-
const char = text[index];
|
|
25
|
-
if (char === "\\") {
|
|
26
|
-
index += 2;
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
index += 1;
|
|
30
|
-
if (char === quote)
|
|
31
|
-
return index;
|
|
32
|
-
}
|
|
33
|
-
return text.length;
|
|
34
|
-
}
|
|
35
26
|
function scanBacktickLiteral(text, start) {
|
|
36
27
|
let index = start + 1;
|
|
37
28
|
while (index < text.length) {
|
|
@@ -41,33 +32,6 @@ function scanBacktickLiteral(text, start) {
|
|
|
41
32
|
}
|
|
42
33
|
return text.length;
|
|
43
34
|
}
|
|
44
|
-
function scanLineComment(text, start) {
|
|
45
|
-
let index = start + 2;
|
|
46
|
-
while (index < text.length && text[index] !== "\n" && text[index] !== "\r") {
|
|
47
|
-
index += 1;
|
|
48
|
-
}
|
|
49
|
-
return index;
|
|
50
|
-
}
|
|
51
|
-
function scanBlockComment(text, start, nested) {
|
|
52
|
-
let index = start + 2;
|
|
53
|
-
let depth = 1;
|
|
54
|
-
while (index < text.length) {
|
|
55
|
-
if (nested && text[index] === "/" && text[index + 1] === "*") {
|
|
56
|
-
depth += 1;
|
|
57
|
-
index += 2;
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
if (text[index] === "*" && text[index + 1] === "/") {
|
|
61
|
-
depth -= 1;
|
|
62
|
-
index += 2;
|
|
63
|
-
if (depth === 0)
|
|
64
|
-
return index;
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
index += 1;
|
|
68
|
-
}
|
|
69
|
-
return text.length;
|
|
70
|
-
}
|
|
71
35
|
function collectGoCommentRanges(text) {
|
|
72
36
|
const ranges = [];
|
|
73
37
|
let index = 0;
|
|
@@ -75,13 +39,13 @@ function collectGoCommentRanges(text) {
|
|
|
75
39
|
const char = text[index];
|
|
76
40
|
const next = text[index + 1];
|
|
77
41
|
if (char === "/" && next === "/") {
|
|
78
|
-
const end =
|
|
42
|
+
const end = scanSlashLineComment(text, index);
|
|
79
43
|
ranges.push({ start: index, end, kind: "line" });
|
|
80
44
|
index = end;
|
|
81
45
|
continue;
|
|
82
46
|
}
|
|
83
47
|
if (char === "/" && next === "*") {
|
|
84
|
-
const end =
|
|
48
|
+
const end = scanSlashBlockComment(text, index, false);
|
|
85
49
|
ranges.push({ start: index, end, kind: "block" });
|
|
86
50
|
index = end;
|
|
87
51
|
continue;
|
|
@@ -182,13 +146,13 @@ function collectRustCommentRanges(text) {
|
|
|
182
146
|
const char = text[index];
|
|
183
147
|
const next = text[index + 1];
|
|
184
148
|
if (char === "/" && next === "/") {
|
|
185
|
-
const end =
|
|
149
|
+
const end = scanSlashLineComment(text, index);
|
|
186
150
|
ranges.push({ start: index, end, kind: "line" });
|
|
187
151
|
index = end;
|
|
188
152
|
continue;
|
|
189
153
|
}
|
|
190
154
|
if (char === "/" && next === "*") {
|
|
191
|
-
const end =
|
|
155
|
+
const end = scanSlashBlockComment(text, index, true);
|
|
192
156
|
ranges.push({ start: index, end, kind: "block" });
|
|
193
157
|
index = end;
|
|
194
158
|
continue;
|
|
@@ -204,6 +168,12 @@ function collectCommentRanges(text, extension) {
|
|
|
204
168
|
return collectGoCommentRanges(text);
|
|
205
169
|
if (isRustExtension(extension))
|
|
206
170
|
return collectRustCommentRanges(text);
|
|
171
|
+
if (isPythonExtension(extension))
|
|
172
|
+
return collectPythonCommentRanges(text);
|
|
173
|
+
if (isShellExtension(extension))
|
|
174
|
+
return collectShellCommentRanges(text);
|
|
175
|
+
if (isQmlExtension(extension))
|
|
176
|
+
return collectQmlCommentRanges(text);
|
|
207
177
|
if (isStyleExtension(extension))
|
|
208
178
|
return collectGoCommentRanges(text);
|
|
209
179
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../../../src/checks/rules/comments/ranges.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/checks/rules/comments/shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgEhD,iBAAS,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAsB/D;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|