chaffjs 0.6.0 → 0.7.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 (63) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +9 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/eval.d.ts.map +1 -1
  5. package/dist/commands/eval.js +1 -1
  6. package/dist/commands/eval.js.map +1 -1
  7. package/dist/config/load.d.ts +9 -0
  8. package/dist/config/load.d.ts.map +1 -1
  9. package/dist/config/load.js +27 -1
  10. package/dist/config/load.js.map +1 -1
  11. package/dist/config/rule-problems.d.ts +10 -0
  12. package/dist/config/rule-problems.d.ts.map +1 -0
  13. package/dist/config/rule-problems.js +20 -0
  14. package/dist/config/rule-problems.js.map +1 -0
  15. package/dist/detectors/index.d.ts.map +1 -1
  16. package/dist/detectors/index.js +3 -0
  17. package/dist/detectors/index.js.map +1 -1
  18. package/dist/detectors/orthography.d.ts +9 -0
  19. package/dist/detectors/orthography.d.ts.map +1 -0
  20. package/dist/detectors/orthography.js +51 -0
  21. package/dist/detectors/orthography.js.map +1 -0
  22. package/dist/document.d.ts +3 -0
  23. package/dist/document.d.ts.map +1 -1
  24. package/dist/document.js +13 -3
  25. package/dist/document.js.map +1 -1
  26. package/dist/eval.d.ts +5 -1
  27. package/dist/eval.d.ts.map +1 -1
  28. package/dist/eval.js +10 -5
  29. package/dist/eval.js.map +1 -1
  30. package/dist/heading-text.d.ts +14 -0
  31. package/dist/heading-text.d.ts.map +1 -0
  32. package/dist/heading-text.js +28 -0
  33. package/dist/heading-text.js.map +1 -0
  34. package/dist/orthography.d.ts +21 -0
  35. package/dist/orthography.d.ts.map +1 -0
  36. package/dist/orthography.js +110 -0
  37. package/dist/orthography.js.map +1 -0
  38. package/dist/render/rules-json.d.ts.map +1 -1
  39. package/dist/render/rules-json.js +11 -1
  40. package/dist/render/rules-json.js.map +1 -1
  41. package/dist/run.d.ts +3 -1
  42. package/dist/run.d.ts.map +1 -1
  43. package/dist/run.js +4 -3
  44. package/dist/run.js.map +1 -1
  45. package/dist/structure/build.d.ts.map +1 -1
  46. package/dist/structure/build.js +11 -8
  47. package/dist/structure/build.js.map +1 -1
  48. package/package.json +1 -1
  49. package/rules/latin-spacing.yaml +27 -0
  50. package/rules/preferred-term.yaml +27 -0
  51. package/src/cli.ts +10 -1
  52. package/src/commands/eval.ts +1 -0
  53. package/src/config/load.ts +43 -1
  54. package/src/config/rule-problems.ts +24 -0
  55. package/src/detectors/index.ts +3 -0
  56. package/src/detectors/orthography.ts +55 -0
  57. package/src/document.ts +23 -4
  58. package/src/eval.ts +16 -5
  59. package/src/heading-text.ts +26 -0
  60. package/src/orthography.ts +115 -0
  61. package/src/render/rules-json.ts +10 -1
  62. package/src/run.ts +15 -3
  63. package/src/structure/build.ts +10 -8
package/dist/eval.js CHANGED
@@ -17,11 +17,12 @@ export const MIN_CORPUS = 20;
17
17
  const stricterIsHigher = (rule) => (rule.levels.strict ?? 0) > (rule.levels.relaxed ?? 0);
18
18
  const MULTIPLIERS = [0.5, 0.7, 0.85, 1, 1.25, 1.5, 2, 3];
19
19
  /** rule 自身が持つ段を基点に掃引する。rule ごとに単位が違うので、倍率で散らす。 */
20
- const candidates = (rule) => {
20
+ const candidates = (rule, current) => {
21
21
  const base = rule.levels.normal ?? 1;
22
22
  const fromLevels = [rule.levels.strict, rule.levels.normal, rule.levels.relaxed].filter((value) => value !== undefined);
23
23
  const scaled = MULTIPLIERS.map((factor) => Math.max(1, Math.round(base * factor)));
24
- return [...new Set([...fromLevels, ...scaled])].sort((left, right) => left - right);
24
+ // 数値で決めた上限は、段の表に無くても掃引に入れる。入れないと「現在」の行が出ない。
25
+ return [...new Set([...fromLevels, ...scaled, current])].sort((left, right) => left - right);
25
26
  };
26
27
  const countAt = (docs, rule, limit) => {
27
28
  const detector = DETECTORS[rule.how_to_find];
@@ -70,11 +71,15 @@ const measurable = (rule, docs, genre, language) => {
70
71
  return false;
71
72
  return rule.requires.every((need) => meets(need, docs));
72
73
  };
73
- export const evaluate = (docs, rules, genre, language) => rules
74
+ /**
75
+ * limits は chaff.yaml に数値で書いた上限。書いてあれば、それが lint で効いている「現在」の値。
76
+ * 段の言葉(relaxed など)で書いた設定は、これまでどおり normal の値を「現在」とする。
77
+ */
78
+ export const evaluate = (docs, rules, genre, language, limits = {}) => rules
74
79
  .filter((rule) => measurable(rule, docs, genre, language))
75
80
  .map((rule) => {
76
- const sweep = candidates(rule).map((limit) => countAt(docs, rule, limit));
77
- const current = rule.levels.normal ?? 1;
81
+ const current = limits[rule.id] ?? rule.levels.normal ?? 1;
82
+ const sweep = candidates(rule, current).map((limit) => countAt(docs, rule, limit));
78
83
  return {
79
84
  rule: rule.id,
80
85
  name: rule.name[language] ?? rule.id,
package/dist/eval.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 見出しの末尾に付けた属性を外した、見出しの言葉。`## ステップ 1 {#step1}` は「ステップ 1」。
3
+ * kramdown(`{#id}`、`{: .class}`)と pandoc(`{#id .class}`)の書き方。属性は読者に見えないので、
4
+ * 残すと見出しの言い直しや番号の読み取りが、見えない文字に引きずられる。
5
+ * 波括弧で終わっていても、中身が `#` `.` `:` で始まらないもの(`## {name} の設定`)は言葉のうち。
6
+ */
7
+ export declare const headingText: (raw: string) => string;
8
+ /**
9
+ * ATX 見出し(`## 見出し ##`)の言葉。属性を外してから、閉じの `#` を外す。
10
+ * `## Install ## {#install}` は閉じの `#` の後ろに属性があるので、この順でないと `##` が言葉に残る。
11
+ * 下線で書く見出し(setext)には使わない。そちらの末尾の `##` は本当に言葉の一部。
12
+ */
13
+ export declare const atxHeadingText: (content: string) => string;
14
+ //# sourceMappingURL=heading-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading-text.d.ts","sourceRoot":"","sources":["../src/heading-text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAQzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,MAIhD,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * 見出しの末尾に付けた属性を外した、見出しの言葉。`## ステップ 1 {#step1}` は「ステップ 1」。
3
+ * kramdown(`{#id}`、`{: .class}`)と pandoc(`{#id .class}`)の書き方。属性は読者に見えないので、
4
+ * 残すと見出しの言い直しや番号の読み取りが、見えない文字に引きずられる。
5
+ * 波括弧で終わっていても、中身が `#` `.` `:` で始まらないもの(`## {name} の設定`)は言葉のうち。
6
+ */
7
+ export const headingText = (raw) => {
8
+ const trimmed = raw.trim();
9
+ if (!trimmed.endsWith("}"))
10
+ return trimmed;
11
+ const open = trimmed.lastIndexOf("{");
12
+ if (open === -1)
13
+ return trimmed;
14
+ const inner = trimmed.slice(open + 1, -1).trimStart();
15
+ const isAttributes = inner.startsWith("#") || inner.startsWith(".") || inner.startsWith(":");
16
+ return isAttributes ? trimmed.slice(0, open).trim() : trimmed;
17
+ };
18
+ /**
19
+ * ATX 見出し(`## 見出し ##`)の言葉。属性を外してから、閉じの `#` を外す。
20
+ * `## Install ## {#install}` は閉じの `#` の後ろに属性があるので、この順でないと `##` が言葉に残る。
21
+ * 下線で書く見出し(setext)には使わない。そちらの末尾の `##` は本当に言葉の一部。
22
+ */
23
+ export const atxHeadingText = (content) => {
24
+ const withoutAttributes = headingText(content);
25
+ const closing = withoutAttributes.search(/(?:^|[ \t])#+$/u);
26
+ return (closing === -1 ? withoutAttributes : withoutAttributes.slice(0, closing)).trim();
27
+ };
28
+ //# sourceMappingURL=heading-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading-text.js","sourceRoot":"","sources":["../src/heading-text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACtD,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7F,OAAO,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAChE,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAU,EAAE;IACxD,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5D,OAAO,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3F,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * avoid が現れる位置のうち、use の一部として現れたものを除いたもの。
3
+ * 「ユーザ」を避けて「ユーザー」と書く決まりのとき、「ユーザー」の中の「ユーザ」は指摘しない。
4
+ * 大文字小文字は区別しない(文頭の「E-mail」も「e-mail」)。ただし二つが大文字小文字だけ違う組
5
+ * (「Javascript」→「JavaScript」)は、それ自体が大文字小文字の決まりなので区別して探す。
6
+ */
7
+ export declare const occurrencesOutside: (text: string, avoid: string, use: string) => number[];
8
+ export type SpacingKind = "letter" | "before-digit" | "after-digit";
9
+ export type Boundary = {
10
+ readonly offset: number;
11
+ readonly kind: SpacingKind;
12
+ readonly spaced: boolean;
13
+ };
14
+ /** 文の中の境目を全部。offset は境目の位置(左の字の直後、UTF-16)。配列を作り直さずに一度なめる。 */
15
+ export declare const latinBoundaries: (text: string) => Boundary[];
16
+ /**
17
+ * 混ざっているとき、そろえるべき少数派。種類(英字・数字の前・数字の後ろ)ごとに数える。
18
+ * 同数なら、文書が先に使った書き方をその文書の書き方とみなし、後から出た書き方を少数派にする。
19
+ */
20
+ export declare const minorityStyle: (boundaries: readonly Boundary[]) => boolean | undefined;
21
+ //# sourceMappingURL=orthography.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orthography.d.ts","sourceRoot":"","sources":["../src/orthography.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,EAmBnF,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,aAAa,CAAC;AACpE,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AA+CzG,6DAA6D;AAC7D,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,QAAQ,EAUtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,YAAY,SAAS,QAAQ,EAAE,KAAG,OAAO,GAAG,SAMzE,CAAC"}
@@ -0,0 +1,110 @@
1
+ // 表記のそろい。書き方の決まりのうち、文字だけで決まるもの。
2
+ const escapeRegExp = (text) => text.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
3
+ /** text の中で word が現れる [始まり, 終わり) を、左から順に。大文字小文字を区別しないときは i で探す(位置は元の文字列のまま)。 */
4
+ const spansOf = (text, word, ignoreCase) => {
5
+ const pattern = new RegExp(escapeRegExp(word), ignoreCase ? "giu" : "gu");
6
+ const found = [];
7
+ for (let match = pattern.exec(text); match !== null; match = pattern.exec(text)) {
8
+ found.push([match.index, match.index + match[0].length]);
9
+ // 重なって現れるものも拾う。次は 1 つ先から探す。
10
+ pattern.lastIndex = match.index + 1;
11
+ }
12
+ return found;
13
+ };
14
+ /**
15
+ * avoid が現れる位置のうち、use の一部として現れたものを除いたもの。
16
+ * 「ユーザ」を避けて「ユーザー」と書く決まりのとき、「ユーザー」の中の「ユーザ」は指摘しない。
17
+ * 大文字小文字は区別しない(文頭の「E-mail」も「e-mail」)。ただし二つが大文字小文字だけ違う組
18
+ * (「Javascript」→「JavaScript」)は、それ自体が大文字小文字の決まりなので区別して探す。
19
+ */
20
+ export const occurrencesOutside = (text, avoid, use) => {
21
+ if (avoid === "")
22
+ return [];
23
+ const ignoreCase = avoid.toLowerCase() !== use.toLowerCase();
24
+ const covered = use === "" ? [] : spansOf(text, use, ignoreCase);
25
+ const found = [];
26
+ // covered は始まりの順に並ぶ。始まりが at 以前のものの終わりの最大が end 以上なら、どれかに収まっている。
27
+ let next = 0;
28
+ let reach = -1;
29
+ let at = 0;
30
+ for (const [start, end] of spansOf(text, avoid, ignoreCase)) {
31
+ if (start < at)
32
+ continue;
33
+ while (next < covered.length && (covered[next]?.[0] ?? Infinity) <= start) {
34
+ reach = Math.max(reach, covered[next]?.[1] ?? -1);
35
+ next += 1;
36
+ }
37
+ if (reach < end)
38
+ found.push(start);
39
+ at = end;
40
+ }
41
+ return found;
42
+ };
43
+ const JAPANESE = /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}ー]/u;
44
+ const LETTER = /[A-Za-z]/u;
45
+ const DIGIT = /\d/u;
46
+ /** Latin 側の字の種類。digitSide は、その数字が日本語の右(前に日本語)か左(後ろに日本語)か。 */
47
+ const kindOf = (char, digitSide) => {
48
+ if (char === undefined)
49
+ return undefined;
50
+ if (LETTER.test(char))
51
+ return "letter";
52
+ return DIGIT.test(char) ? digitSide : undefined;
53
+ };
54
+ const isJapanese = (char) => char !== undefined && JAPANESE.test(char);
55
+ /** japanese が日本語の字のとき、other の英字・数字の種類。 */
56
+ const latinBeside = (japanese, other, digitSide) => isJapanese(japanese) ? kindOf(other, digitSide) : undefined;
57
+ /** 日本語の字の隣にある英字・数字との境目。間が半角空白 1 つなら「空けている」、何も無ければ「詰めている」。 */
58
+ const ALPHANUMERIC = /[A-Za-z0-9.]/u;
59
+ /**
60
+ * 日本語の左にある英数字の並びの、先頭の字。「3GBの」の「GB」は数量の単位で、並びは数字で始まる。
61
+ * そうした並びと日本語の境目は、英字の空け方ではなく数字の後ろの空け方として数える(「3回」と同じ)。
62
+ */
63
+ const runStart = (chars, last) => {
64
+ let first = last;
65
+ while (first > 0 && ALPHANUMERIC.test(chars[first - 1] ?? ""))
66
+ first -= 1;
67
+ return chars[first];
68
+ };
69
+ /** 左の並びの種類。数字で始まる並び(3GB、10ms)は数字として扱う。 */
70
+ const leftRunBeside = (chars, last, japanese) => {
71
+ const kind = latinBeside(japanese, chars[last], "after-digit");
72
+ return kind === "letter" && DIGIT.test(runStart(chars, last) ?? "") ? "after-digit" : kind;
73
+ };
74
+ const boundaryAt = (chars, index) => {
75
+ const [left, right, after] = [chars[index], chars[index + 1], chars[index + 2]];
76
+ const touching = latinBeside(left, right, "before-digit") ?? leftRunBeside(chars, index, right);
77
+ if (touching !== undefined)
78
+ return { kind: touching, spaced: false };
79
+ if (right !== " ")
80
+ return undefined;
81
+ const spaced = latinBeside(left, after, "before-digit") ?? leftRunBeside(chars, index, after);
82
+ return spaced === undefined ? undefined : { kind: spaced, spaced: true };
83
+ };
84
+ /** 文の中の境目を全部。offset は境目の位置(左の字の直後、UTF-16)。配列を作り直さずに一度なめる。 */
85
+ export const latinBoundaries = (text) => {
86
+ const chars = [...text];
87
+ const found = [];
88
+ let offset = 0;
89
+ chars.forEach((char, index) => {
90
+ offset += char.length;
91
+ const boundary = boundaryAt(chars, index);
92
+ if (boundary !== undefined)
93
+ found.push({ ...boundary, offset });
94
+ });
95
+ return found;
96
+ };
97
+ /**
98
+ * 混ざっているとき、そろえるべき少数派。種類(英字・数字の前・数字の後ろ)ごとに数える。
99
+ * 同数なら、文書が先に使った書き方をその文書の書き方とみなし、後から出た書き方を少数派にする。
100
+ */
101
+ export const minorityStyle = (boundaries) => {
102
+ const spaced = boundaries.filter((boundary) => boundary.spaced).length;
103
+ const touching = boundaries.length - spaced;
104
+ if (spaced === 0 || touching === 0)
105
+ return undefined;
106
+ if (spaced !== touching)
107
+ return spaced < touching;
108
+ return !(boundaries[0]?.spaced ?? false);
109
+ };
110
+ //# sourceMappingURL=orthography.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orthography.js","sourceRoot":"","sources":["../src/orthography.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AAE5F,gFAAgF;AAChF,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,UAAmB,EAAsB,EAAE;IACtF,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,4BAA4B;QAC5B,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW,EAAY,EAAE;IACvF,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAC5D,IAAI,KAAK,GAAG,EAAE;YAAE,SAAS;QACzB,OAAO,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC;YAC1E,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,CAAC;QACZ,CAAC;QACD,IAAI,KAAK,GAAG,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,EAAE,GAAG,GAAG,CAAC;IACX,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAKF,MAAM,QAAQ,GAAG,0DAA0D,CAAC;AAC5E,MAAM,MAAM,GAAG,WAAW,CAAC;AAC3B,MAAM,KAAK,GAAG,KAAK,CAAC;AAEpB,6DAA6D;AAC7D,MAAM,MAAM,GAAG,CAAC,IAAwB,EAAE,SAAyC,EAA2B,EAAE;IAC9G,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAwB,EAAW,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEpG,0CAA0C;AAC1C,MAAM,WAAW,GAAG,CAAC,QAA4B,EAAE,KAAyB,EAAE,SAAyC,EAA2B,EAAE,CAClJ,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAE9D,6DAA6D;AAC7D,MAAM,YAAY,GAAG,eAAe,CAAC;AAErC;;;GAGG;AACH,MAAM,QAAQ,GAAG,CAAC,KAAwB,EAAE,IAAY,EAAsB,EAAE;IAC9E,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,OAAO,KAAK,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAAE,KAAK,IAAI,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC,CAAC;AAEF,0CAA0C;AAC1C,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAE,IAAY,EAAE,QAA4B,EAA2B,EAAE;IACtH,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;IAC/D,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7F,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAwB,EAAE,KAAa,EAAwC,EAAE;IACnG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChG,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACrE,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9F,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC3E,CAAC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAc,EAAE;IAC1D,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QACtB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAA+B,EAAuB,EAAE;IACpF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;IAC5C,IAAI,MAAM,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,GAAG,QAAQ,CAAC;IAClD,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC;AAC3C,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rules-json.d.ts","sourceRoot":"","sources":["../../src/render/rules-json.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAuBnD,0DAA0D;AAC1D,eAAO,MAAM,SAAS,GAAI,OAAO,SAAS,cAAc,EAAE,EAAE,QAAQ,MAAM,EAAE,UAAU,MAAM,EAAE,OAAO,MAAM,KAAG,MA4B3G,CAAC"}
1
+ {"version":3,"file":"rules-json.d.ts","sourceRoot":"","sources":["../../src/render/rules-json.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAgCnD,0DAA0D;AAC1D,eAAO,MAAM,SAAS,GAAI,OAAO,SAAS,cAAc,EAAE,EAAE,QAAQ,MAAM,EAAE,UAAU,MAAM,EAAE,OAAO,MAAM,KAAG,MA4B3G,CAAC"}
@@ -3,6 +3,9 @@ const now = (rule, config, genre) => {
3
3
  const explicit = config.rules[rule.id];
4
4
  if (explicit === "off")
5
5
  return { level: "off", why_off: "設定で止めている" };
6
+ const limit = rule.layer === "L4" ? undefined : config.limits[rule.id];
7
+ if (limit !== undefined)
8
+ return { level: "normal", limit, set_as: "number" };
6
9
  if (explicit !== undefined)
7
10
  return { level: explicit, limit: resolve(rule, explicit, genre).limit };
8
11
  if (rule.status === "experimental" && !config.experimental) {
@@ -10,6 +13,13 @@ const now = (rule, config, genre) => {
10
13
  }
11
14
  return { level: "normal", limit: resolve(rule, "normal", genre).limit };
12
15
  };
16
+ const yourSetting = (rule, config) => {
17
+ const level = config.rules[rule.id];
18
+ if (level === undefined)
19
+ return null;
20
+ const limit = rule.layer === "L4" ? undefined : config.limits[rule.id];
21
+ return limit === undefined ? { level, from: config.path } : { level, limit, from: config.path };
22
+ };
13
23
  /** ジャンルで数字が変わる rule があるので、いま効いている表と既定の表の両方を出す。 */
14
24
  const levelsOf = (rule, genre) => {
15
25
  const effective = Object.fromEntries(definedLevels(rule)
@@ -35,7 +45,7 @@ export const rulesJson = (rules, config, language, genre) => JSON.stringify({
35
45
  use_for: rule.use_for,
36
46
  ...levelsOf(rule, genre),
37
47
  levels_you_can_set: definedLevels(rule),
38
- your_setting: config.rules[rule.id] === undefined ? null : { level: config.rules[rule.id], from: config.path },
48
+ your_setting: yourSetting(rule, config),
39
49
  now: now(rule, config, genre),
40
50
  })),
41
51
  how_to_change: {
@@ -1 +1 @@
1
- {"version":3,"file":"rules-json.js","sourceRoot":"","sources":["../../src/render/rules-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules-json.js","sourceRoot":"","sources":["../../src/render/rules-json.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -15,5 +15,7 @@ export type Settings = Readonly<Record<string, Level>>;
15
15
  * capabilities は「払えばできる」の宣言なので、ここでは見ない。
16
16
  */
17
17
  export declare const neededBy: (rules: readonly RuleDefinition[], settings: Settings, experimental: boolean, genre: string, language: string) => AdapterNeeds;
18
- export declare const runRules: (doc: ProseDocument, rules: readonly RuleDefinition[], settings: Settings, experimental: boolean, genre: string) => RunResult;
18
+ /** chaff.yaml の rules に数値で書いた上限。段階の表より先に効く。 */
19
+ export type Limits = Readonly<Record<string, number>>;
20
+ export declare const runRules: (doc: ProseDocument, rules: readonly RuleDefinition[], settings: Settings, experimental: boolean, genre: string, limits?: Limits) => RunResult;
19
21
  //# sourceMappingURL=run.d.ts.map
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG/F,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAwCvD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,SAAS,cAAc,EAAE,EAAE,UAAU,QAAQ,EAAE,cAAc,OAAO,EAAE,OAAO,MAAM,EAAE,UAAU,MAAM,KAAG,YAKtI,CAAC;AA+BH,eAAO,MAAM,QAAQ,GAAI,KAAK,aAAa,EAAE,OAAO,SAAS,cAAc,EAAE,EAAE,UAAU,QAAQ,EAAE,cAAc,OAAO,EAAE,OAAO,MAAM,KAAG,SA+CzI,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG/F,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAwCvD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,SAAS,cAAc,EAAE,EAAE,UAAU,QAAQ,EAAE,cAAc,OAAO,EAAE,OAAO,MAAM,EAAE,UAAU,MAAM,KAAG,YAKtI,CAAC;AA+BH,+CAA+C;AAC/C,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAItD,eAAO,MAAM,QAAQ,GACnB,KAAK,aAAa,EAClB,OAAO,SAAS,cAAc,EAAE,EAChC,UAAU,QAAQ,EAClB,cAAc,OAAO,EACrB,OAAO,MAAM,EACb,SAAQ,MAAW,KAClB,SA+CF,CAAC"}
package/dist/run.js CHANGED
@@ -77,7 +77,8 @@ const compositeOf = (rule, found, limit, starts) => {
77
77
  }),
78
78
  ];
79
79
  };
80
- export const runRules = (doc, rules, settings, experimental, genre) => {
80
+ const limitFor = (rule, level, genre, limits) => limits[rule.id] ?? resolve(rule, level, genre).limit;
81
+ export const runRules = (doc, rules, settings, experimental, genre, limits = {}) => {
81
82
  const starts = lineStarts(doc.source);
82
83
  const applicable = forGenre(rules, genre);
83
84
  const forced = applicable
@@ -108,7 +109,7 @@ export const runRules = (doc, rules, settings, experimental, genre) => {
108
109
  if (detector === undefined)
109
110
  return { findings: acc.findings, skipped: [...acc.skipped, { rule: rule.id, why: `検出器 ${rule.how_to_find} がないため` }] };
110
111
  const options = {
111
- limit: resolve(rule, level, genre).limit,
112
+ limit: limitFor(rule, level, genre, limits),
112
113
  lexicon: rule.word_list === undefined ? undefined : doc.lexicons[rule.word_list],
113
114
  where: rule.where,
114
115
  };
@@ -121,7 +122,7 @@ export const runRules = (doc, rules, settings, experimental, genre) => {
121
122
  }, { findings: [], skipped: [] });
122
123
  const composites = applicable
123
124
  .filter((rule) => rule.from.length > 0 && levelFor(rule, settings, experimental) !== "off")
124
- .flatMap((rule) => compositeOf(rule, outcome.findings, resolve(rule, levelFor(rule, settings, experimental), genre).limit, starts));
125
+ .flatMap((rule) => compositeOf(rule, outcome.findings, limitFor(rule, levelFor(rule, settings, experimental), genre, limits), starts));
125
126
  const all = [...outcome.findings, ...composites];
126
127
  return { ...outcome, findings: [...all].sort((left, right) => left.line - right.line), forcedExperimental: forced };
127
128
  };
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/structure/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAA2C,IAAI,EAAiB,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAyInI,yDAAyD;AACzD,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAA;CAAE,CAAC;AAElG,eAAO,MAAM,UAAU,EAAE,OAAsC,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAuCtI;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,EAAE,UAAU,iBAAiB,KAAG,aAe9E,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/structure/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAA2C,IAAI,EAAiB,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAyInI,yDAAyD;AACzD,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAA;CAAE,CAAC;AAElG,eAAO,MAAM,UAAU,EAAE,OAAsC,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAwCtI;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,EAAE,UAAU,iBAAiB,KAAG,aAe9E,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { atxHeadingText, headingText } from "../heading-text.js";
1
2
  import { maskSpans } from "../mask.js";
2
3
  import { lineNumberAt, linesOf } from "./lines.js";
3
4
  import { dottedNumber } from "./universal.js";
@@ -110,16 +111,18 @@ const headingsByLine = (lines, headings) => new Map(headings.flatMap((heading) =
110
111
  return [entry];
111
112
  }));
112
113
  /** 見出しの行から「#」の印を外した文字列。コードを覆った後の行から取るので、見出しの中のコードも読まない。 */
113
- const atxText = (text) => {
114
- const body = text
115
- .trim()
116
- .replace(/^#{1,6}(?=[ \t]|$)/u, "")
117
- .trim();
118
- const closing = body.search(/[ \t]#+$/u);
119
- return (closing === -1 ? body : body.slice(0, closing)).trim();
114
+ /**
115
+ * 見出しの行から見出しの言葉を取る。コードを覆った後の行から取るので、見出しの中のコードも読まない。
116
+ * ATX(行頭が #)なら印と閉じの # を外す。setext(下線で書く見出し)の末尾の # は言葉なので残す。
117
+ */
118
+ const headingLineText = (text) => {
119
+ const line = text.trim();
120
+ if (!line.startsWith("#"))
121
+ return headingText(line);
122
+ return atxHeadingText(line.replace(/^#{1,6}(?=[ \t]|$)/u, "").trim());
120
123
  };
121
124
  const readLine = (state, patterns, line, heading) => {
122
- const text = heading === undefined ? line.text : atxText(line.text);
125
+ const text = heading === undefined ? line.text : headingLineText(line.text);
123
126
  const openNumbers = state.stack.flatMap((frame) => (frame.numbered === undefined ? [] : [frame.numbered]));
124
127
  const context = { open: openNumbers, isHeading: heading !== undefined };
125
128
  const numbered = patterns.numbered(text, context) ?? universalNumber(patterns, text, context);
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/structure/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/structure/build.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chaffjs",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Prose validation harness. Finds what is hard to read, and never rewrites it for you.",
5
5
  "keywords": [
6
6
  "chaff",
@@ -0,0 +1,27 @@
1
+ id: latin-spacing
2
+ layer: L3
3
+ status: experimental
4
+ how_to_find: latin-spacing
5
+ languages: [ja]
6
+ severity: warning
7
+
8
+ name:
9
+ ja: 英数字の前後の空白がそろっていない
10
+ en: Spacing around Latin text is inconsistent
11
+
12
+ why:
13
+ ja: 日本語と英字・数字のあいだを空けるか詰めるかは、どちらでも読めます。困るのは一つの文書の中で混ざることで、読み手には違いに意味があるように見えます。chaff はどちらが正しいかを決めず、文書の中で少ないほうを指摘します。英字と、数字の前、数字の後ろは別々に数えます。「を 3回」のように、数字の前は空けて助数詞とは詰める書き方がふつうにあるからです。「3GBの」のように数字に続く単位は、英字ではなく数字の側として数えます。
14
+ en: Whether to put a space between Japanese and Latin letters or digits is a choice either way. What reads badly is mixing both in one document, which suggests the difference means something. chaff does not decide which is right; it points at whichever the document uses less. Letters, the space before a digit and the space after one are counted separately, since spacing before a number but not before its counter is common.
15
+
16
+ message:
17
+ ja: "日本語と{kind}のあいだを{style}(この文書はふつう{usual}。{of} 箇所のうち {count} 箇所が違う)"
18
+ en: "Spacing between Japanese and {kind} differs here ({count} of {of})"
19
+
20
+ how_to_fix:
21
+ ja: 文書の多いほうの書き方に合わせてください。チームで決めているなら、STYLE.md に書いておくと迷いません。
22
+ en: Match the way the rest of the document does it. If the team has decided, write it in the style guide.
23
+
24
+ # 何箇所違えば指摘するか。1 は「1 箇所でも混ざっていれば」。
25
+ levels: { strict: 1, normal: 1, relaxed: 3 }
26
+
27
+ use_for: [business, blog, technical]
@@ -0,0 +1,27 @@
1
+ id: preferred-term
2
+ layer: L2
3
+ status: experimental
4
+ how_to_find: preferred-term
5
+ word_list: preferred-term
6
+ severity: warning
7
+
8
+ name:
9
+ ja: チームの表記と違う
10
+ en: Not the team's spelling
11
+
12
+ why:
13
+ ja: 同じものを「サーバー」とも「サーバ」とも書くと、読み手は別のものかと迷い、検索でも片方を取りこぼします。どちらに寄せるかはチームごとに違うので、chaff.yaml の prefer に「使わない書き方」と「使う書き方」の組を自分で並べてください。並べていなければ何も言いません。
14
+ en: Writing the same thing two ways ("e-mail" and "email") makes a reader wonder whether they differ, and a search misses one of them. Which way wins is the team's choice, so list pairs (the spelling to avoid, then the one to use) under `prefer` in chaff.yaml. With nothing listed, this rule says nothing.
15
+
16
+ message:
17
+ ja: 「{matched}」は「{preferred}」と書きます
18
+ en: 'Write "{preferred}", not "{matched}"'
19
+
20
+ how_to_fix:
21
+ ja: 「{preferred}」に直してください。固有名詞など、そのままにすべき箇所なら stet で理由を添えて黙らせます。
22
+ en: Change it to "{preferred}". Where it must stay (a product's own name, a quotation), silence it with stet and the reason.
23
+
24
+ # チームが並べた書き方なので、1 つでも指摘する。並べた時点で「使わない」と決めている。
25
+ levels: { strict: 1, normal: 1, relaxed: 3 }
26
+
27
+ use_for: [business, blog, technical]
package/src/cli.ts CHANGED
@@ -25,6 +25,7 @@ import { renderSarif } from "./render/sarif.ts";
25
25
  import { VERSION } from "./version.ts";
26
26
  import { runTree, treeTargets } from "./commands/tree.ts";
27
27
  import { citeTargets, runCite } from "./commands/cite.ts";
28
+ import { ruleProblems } from "./config/rule-problems.ts";
28
29
  import { renderSummary, type FileOutcome } from "./render/summary.ts";
29
30
  import { neededBy, runRules } from "./run.ts";
30
31
  import type { Level, RuleDefinition } from "./plugin.ts";
@@ -113,7 +114,7 @@ const inspect = async (path: string, config: Config, argv: readonly string[]): P
113
114
  const experimental = config.experimental || argv.includes("--experimental");
114
115
  await adapter.prepare?.(neededBy(rules, config.rules, experimental, genre, language));
115
116
  const doc = buildDocument(path, source, adapter, teamRules(config));
116
- const raw = runRules(doc, rules, config.rules, experimental, genre);
117
+ const raw = runRules(doc, rules, config.rules, experimental, genre, config.limits);
117
118
  // 応答は 3 つ。stet で黙らせたものは、ここで落とす。
118
119
  const applied = applySuppressions(
119
120
  source,
@@ -151,6 +152,11 @@ const writeSarif = (results: readonly Inspected[], argv: readonly string[]): voi
151
152
  console.log(`\n SARIF を書きました: ${path}(${located.length} 件)`);
152
153
  };
153
154
 
155
+ /** 効いていない設定は、結果の前に一度だけ言う。標準エラーに出すので、JSON や SARIF の出力は汚さない。 */
156
+ const warnRuleProblems = (config: Config, language: string): void => {
157
+ ruleProblems(config, loadRules(language)).forEach((problem) => console.error(`chaff: ${problem}`));
158
+ };
159
+
154
160
  const lint = async (targets: readonly string[], argv: readonly string[]): Promise<number> => {
155
161
  const paths = collectTargets(targets);
156
162
  if (paths.length === 0) {
@@ -164,6 +170,7 @@ const lint = async (targets: readonly string[], argv: readonly string[]): Promis
164
170
  console.error(`言語 "${language}" のアダプタがありません。`);
165
171
  return 1;
166
172
  }
173
+ warnRuleProblems(config, language);
167
174
  const results = await Promise.all(paths.map((path) => inspect(path, config, argv)));
168
175
  writeSarif(results, argv);
169
176
  results.filter((result) => result.outcome.findings.length > 0 || paths.length === 1).forEach((result) => console.log(result.text));
@@ -182,6 +189,7 @@ const runWatch = async (targets: readonly string[], argv: readonly string[]): Pr
182
189
  return 1;
183
190
  }
184
191
  const config = readConfig();
192
+ warnRuleProblems(config, config.language ?? "ja");
185
193
  const seen = new Map<string, Snapshot>();
186
194
  const once = async (path: string, first: boolean): Promise<void> => {
187
195
  const result = await inspect(path, config, argv);
@@ -268,6 +276,7 @@ const positional = (argv: readonly string[]): string[] => argv.slice(1).filter((
268
276
  const showRules = (): number => {
269
277
  const config = readConfig();
270
278
  const language = config.language ?? "ja";
279
+ warnRuleProblems(config, language);
271
280
  console.log(rulesJson(loadRules(language), config, language, config.genre ?? "blog/tech"));
272
281
  return 0;
273
282
  };