chaffjs 0.7.0 → 0.8.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 (118) hide show
  1. package/README.md +11 -4
  2. package/dist/adapter-load.d.ts +12 -1
  3. package/dist/adapter-load.d.ts.map +1 -1
  4. package/dist/adapter-load.js +37 -13
  5. package/dist/adapter-load.js.map +1 -1
  6. package/dist/cli-args.d.ts +8 -0
  7. package/dist/cli-args.d.ts.map +1 -0
  8. package/dist/cli-args.js +8 -0
  9. package/dist/cli-args.js.map +1 -0
  10. package/dist/cli-text.d.ts +26 -0
  11. package/dist/cli-text.d.ts.map +1 -0
  12. package/dist/cli-text.js +151 -0
  13. package/dist/cli-text.js.map +1 -0
  14. package/dist/cli.d.ts +2 -0
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +75 -86
  17. package/dist/cli.js.map +1 -1
  18. package/dist/commands/cite.d.ts +2 -1
  19. package/dist/commands/cite.d.ts.map +1 -1
  20. package/dist/commands/cite.js +39 -18
  21. package/dist/commands/cite.js.map +1 -1
  22. package/dist/commands/skill.d.ts +22 -0
  23. package/dist/commands/skill.d.ts.map +1 -0
  24. package/dist/commands/skill.js +68 -0
  25. package/dist/commands/skill.js.map +1 -0
  26. package/dist/commands/tree.d.ts +11 -1
  27. package/dist/commands/tree.d.ts.map +1 -1
  28. package/dist/commands/tree.js +18 -6
  29. package/dist/commands/tree.js.map +1 -1
  30. package/dist/config/rule-problems.d.ts +2 -1
  31. package/dist/config/rule-problems.d.ts.map +1 -1
  32. package/dist/config/rule-problems.js +17 -6
  33. package/dist/config/rule-problems.js.map +1 -1
  34. package/dist/config/write.d.ts.map +1 -1
  35. package/dist/config/write.js +29 -9
  36. package/dist/config/write.js.map +1 -1
  37. package/dist/genre.d.ts +1 -1
  38. package/dist/genre.d.ts.map +1 -1
  39. package/dist/genre.js +3 -3
  40. package/dist/genre.js.map +1 -1
  41. package/dist/init.d.ts +2 -1
  42. package/dist/init.d.ts.map +1 -1
  43. package/dist/init.js +62 -13
  44. package/dist/init.js.map +1 -1
  45. package/dist/plugin.d.ts +6 -0
  46. package/dist/plugin.d.ts.map +1 -1
  47. package/dist/reasons.d.ts +15 -0
  48. package/dist/reasons.d.ts.map +1 -0
  49. package/dist/reasons.js +29 -0
  50. package/dist/reasons.js.map +1 -0
  51. package/dist/render/explain.d.ts.map +1 -1
  52. package/dist/render/explain.js +36 -12
  53. package/dist/render/explain.js.map +1 -1
  54. package/dist/render/friendly.d.ts.map +1 -1
  55. package/dist/render/friendly.js +32 -9
  56. package/dist/render/friendly.js.map +1 -1
  57. package/dist/render/rules-json.d.ts.map +1 -1
  58. package/dist/render/rules-json.js +47 -27
  59. package/dist/render/rules-json.js.map +1 -1
  60. package/dist/render/summary.d.ts +3 -2
  61. package/dist/render/summary.d.ts.map +1 -1
  62. package/dist/render/summary.js +24 -9
  63. package/dist/render/summary.js.map +1 -1
  64. package/dist/render/suppressions.d.ts +2 -1
  65. package/dist/render/suppressions.d.ts.map +1 -1
  66. package/dist/render/suppressions.js +34 -10
  67. package/dist/render/suppressions.js.map +1 -1
  68. package/dist/run.d.ts.map +1 -1
  69. package/dist/run.js +18 -10
  70. package/dist/run.js.map +1 -1
  71. package/dist/structure/build.d.ts.map +1 -1
  72. package/dist/structure/build.js +8 -2
  73. package/dist/structure/build.js.map +1 -1
  74. package/dist/structure/cite.d.ts.map +1 -1
  75. package/dist/structure/cite.js +3 -1
  76. package/dist/structure/cite.js.map +1 -1
  77. package/dist/structure/issues.d.ts +5 -2
  78. package/dist/structure/issues.d.ts.map +1 -1
  79. package/dist/structure/issues.js +27 -9
  80. package/dist/structure/issues.js.map +1 -1
  81. package/dist/structure/numbering.d.ts.map +1 -1
  82. package/dist/structure/numbering.js +11 -6
  83. package/dist/structure/numbering.js.map +1 -1
  84. package/dist/ui.d.ts +14 -0
  85. package/dist/ui.d.ts.map +1 -0
  86. package/dist/ui.js +14 -0
  87. package/dist/ui.js.map +1 -0
  88. package/dist/watch.d.ts +1 -1
  89. package/dist/watch.d.ts.map +1 -1
  90. package/dist/watch.js +2 -2
  91. package/dist/watch.js.map +1 -1
  92. package/package.json +3 -2
  93. package/skills/chaff/SKILL.md +61 -0
  94. package/src/adapter-load.ts +41 -10
  95. package/src/cli-args.ts +9 -0
  96. package/src/cli-text.ts +182 -0
  97. package/src/cli.ts +91 -89
  98. package/src/commands/cite.ts +51 -18
  99. package/src/commands/skill.ts +74 -0
  100. package/src/commands/tree.ts +27 -7
  101. package/src/config/rule-problems.ts +24 -5
  102. package/src/config/write.ts +33 -9
  103. package/src/genre.ts +4 -4
  104. package/src/init.ts +74 -15
  105. package/src/plugin.ts +6 -0
  106. package/src/reasons.ts +44 -0
  107. package/src/render/explain.ts +46 -12
  108. package/src/render/friendly.ts +42 -10
  109. package/src/render/rules-json.ts +35 -9
  110. package/src/render/summary.ts +34 -9
  111. package/src/render/suppressions.ts +45 -10
  112. package/src/run.ts +20 -9
  113. package/src/structure/build.ts +10 -2
  114. package/src/structure/cite.ts +3 -1
  115. package/src/structure/issues.ts +33 -14
  116. package/src/structure/numbering.ts +12 -7
  117. package/src/ui.ts +23 -0
  118. package/src/watch.ts +2 -2
@@ -0,0 +1,15 @@
1
+ import type { Texts } from "./ui.ts";
2
+ /** Why a rule did not run, in the document's language. Listed under the findings so "0 findings" is never a silent pass. */
3
+ export type Reasons = {
4
+ readonly otherLanguage: (language: string) => string;
5
+ readonly noCapability: (capability: string) => string;
6
+ readonly noTags: string;
7
+ readonly semantic: string;
8
+ readonly experimental: string;
9
+ readonly turnedOff: string;
10
+ readonly noStructure: (language: string) => string;
11
+ readonly noDetector: (name: string) => string;
12
+ readonly noLexicon: (language: string, list: string) => string;
13
+ };
14
+ export declare const REASONS: Texts<Reasons>;
15
+ //# sourceMappingURL=reasons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasons.d.ts","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,4HAA4H;AAC5H,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD,QAAQ,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAChE,CAAC;AAOF,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,OAAO,CAuBlC,CAAC"}
@@ -0,0 +1,29 @@
1
+ const CAPABILITY_NAME = {
2
+ ja: { pos: "品詞解析", lemma: "原形" },
3
+ en: { pos: "part-of-speech tagging", lemma: "lemmas" },
4
+ };
5
+ export const REASONS = {
6
+ ja: {
7
+ otherLanguage: (language) => `${language} 向けの rule ではないため`,
8
+ noCapability: (capability) => `この言語では${CAPABILITY_NAME.ja[capability] ?? capability}が使えないため`,
9
+ noTags: "アダプタが品詞を返さなかったため",
10
+ semantic: "意味を読む検査のため(npx chaff test で動きます)",
11
+ experimental: "まだ試験中のため",
12
+ turnedOff: "設定で止めているため",
13
+ noStructure: (language) => `${language} のパッケージは文書の構造を読めないため`,
14
+ noDetector: (name) => `検出器 ${name} がないため`,
15
+ noLexicon: (language, list) => `${language} の語彙表 ${list} が無いため`,
16
+ },
17
+ en: {
18
+ otherLanguage: (language) => `not a rule for ${language}`,
19
+ noCapability: (capability) => `${CAPABILITY_NAME.en[capability] ?? capability} is not available for this language`,
20
+ noTags: "the language package returned no parts of speech",
21
+ semantic: "it reads meaning; npx chaff test runs it",
22
+ experimental: "still experimental",
23
+ turnedOff: "turned off in the settings",
24
+ noStructure: (language) => `the ${language} package cannot read a document's structure`,
25
+ noDetector: (name) => `no detector named ${name}`,
26
+ noLexicon: (language, list) => `the ${language} package has no word list ${list}`,
27
+ },
28
+ };
29
+ //# sourceMappingURL=reasons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasons.js","sourceRoot":"","sources":["../src/reasons.ts"],"names":[],"mappings":"AAeA,MAAM,eAAe,GAA4C;IAC/D,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;IAChC,EAAE,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAmB;IACrC,EAAE,EAAE;QACF,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,kBAAkB;QAC1D,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,UAAU,SAAS;QAC5F,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,kCAAkC;QAC5C,YAAY,EAAE,UAAU;QACxB,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,sBAAsB;QAC5D,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,QAAQ;QACzC,SAAS,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,SAAS,IAAI,QAAQ;KAChE;IACD,EAAE,EAAE;QACF,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,QAAQ,EAAE;QACzD,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,UAAU,qCAAqC;QAClH,MAAM,EAAE,kDAAkD;QAC1D,QAAQ,EAAE,0CAA0C;QACpD,YAAY,EAAE,oBAAoB;QAClC,SAAS,EAAE,4BAA4B;QACvC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,QAAQ,6CAA6C;QACvF,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,IAAI,EAAE;QACjD,SAAS,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,QAAQ,6BAA6B,IAAI,EAAE;KAClF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../src/render/explain.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAe1D,qCAAqC;AACrC,eAAO,MAAM,aAAa,GAAI,MAAM,cAAc,EAAE,SAAS,KAAK,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MAoBpH,CAAC"}
1
+ {"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../src/render/explain.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA+C1D,qCAAqC;AACrC,eAAO,MAAM,aAAa,GAAI,MAAM,cAAc,EAAE,SAAS,KAAK,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MAqBpH,CAAC"}
@@ -1,36 +1,60 @@
1
1
  import { definedLevels, resolve } from "../levels.js";
2
2
  import { localized } from "./text.js";
3
- const levelLine = (rule, level, current, genre) => {
4
- const mark = level === current ? "\u2192" : " ";
3
+ import { uiLanguageOf } from "../ui.js";
4
+ const TEXT = {
5
+ ja: {
6
+ off: "見ない",
7
+ defaultGenre: "既定",
8
+ genreNote: (genre, others) => `この数字は ${genre} のものです。ほかに ${others} で別の数字を持っています。`,
9
+ experimental: "このルールはまだ試験中で、既定では動きません(--experimental で動きます)。",
10
+ howToFix: "直しかた",
11
+ values: (unit) => `設定できる値(単位: ${unit}):`,
12
+ now: (level) => `いまは ${level} です。`,
13
+ change: (id) => `変える: npx chaff relax ${id} --why "理由"`,
14
+ },
15
+ en: {
16
+ off: "not checked",
17
+ defaultGenre: "the default genre",
18
+ genreNote: (genre, others) => `These numbers are for ${genre}. ${others} have numbers of their own.`,
19
+ experimental: "This rule is still experimental and does not run by default (--experimental runs it).",
20
+ howToFix: "How to fix",
21
+ values: (unit) => `Levels (unit: ${unit}):`,
22
+ now: (level) => `Now: ${level}.`,
23
+ change: (id) => `Change it: npx chaff relax ${id} --why "reason"`,
24
+ },
25
+ };
26
+ const levelLine = (rule, level, current, genre, off) => {
27
+ const mark = level === current ? "→" : " ";
5
28
  const name = level.padEnd(9);
6
- return level === "off" ? ` ${mark} ${name}見ない` : ` ${mark} ${name}${resolve(rule, level, genre).limit}`;
29
+ return level === "off" ? ` ${mark} ${name}${off}` : ` ${mark} ${name}${resolve(rule, level, genre).limit}`;
7
30
  };
8
31
  /** ジャンルで数字が変わる rule は、それを言わないと「設定したのに効かない」に見える。 */
9
- const genreNote = (rule, genre) => {
32
+ const genreNote = (rule, genre, text) => {
10
33
  const others = Object.keys(rule.by_genre).filter((key) => key !== genre);
11
34
  if (others.length === 0)
12
35
  return [];
13
- return ["", ` この数字は ${genre ?? "既定"} のものです。ほかに ${others.join(" / ")} で別の数字を持っています。`];
36
+ return ["", ` ${text.genreNote(genre ?? text.defaultGenre, others.join(" / "))}`];
14
37
  };
15
38
  /** rule の意図と根拠を読む。指摘に納得できないときの入口。 */
16
39
  export const renderExplain = (rule, current, language, unit, genre) => {
17
- const experimental = rule.status === "experimental" ? [" このルールはまだ試験中で、既定では動きません(--experimental で動きます)。"] : [];
40
+ const text = TEXT[uiLanguageOf(language)];
41
+ const experimental = rule.status === "experimental" ? [` ${text.experimental}`] : [];
18
42
  return [
19
43
  "",
20
44
  ` ${localized(rule.name, language)} (${rule.id})`,
21
45
  "",
22
46
  ` ${localized(rule.why, language)}`,
23
47
  "",
24
- ` 直しかた: ${localized(rule.how_to_fix, language)}`,
48
+ ` ${text.howToFix}: ${localized(rule.how_to_fix, language)}`,
25
49
  "",
26
- ` 設定できる値(単位: ${unit}):`,
27
- ...definedLevels(rule).map((level) => levelLine(rule, level, current, genre)),
28
- ...genreNote(rule, genre),
50
+ ` ${text.values(unit)}`,
51
+ ...definedLevels(rule).map((level) => levelLine(rule, level, current, genre, text.off)),
52
+ ...genreNote(rule, genre, text),
29
53
  "",
30
- ` いまは ${current} です。`,
54
+ ` ${text.now(current)}`,
31
55
  ...experimental,
32
56
  "",
33
- ` 変える: npx chaff relax ${rule.id} --why "理由"`,
57
+ ` ${text.change(rule.id)}`,
34
58
  "",
35
59
  ].join("\n");
36
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../src/render/explain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,SAAS,GAAG,CAAC,IAAoB,EAAE,KAAY,EAAE,OAAc,EAAE,KAAyB,EAAU,EAAE;IAC1G,MAAM,IAAI,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;AAC5G,CAAC,CAAC;AAEF,mDAAmD;AACnD,MAAM,SAAS,GAAG,CAAC,IAAoB,EAAE,KAAyB,EAAY,EAAE;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,IAAI,cAAc,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACxF,CAAC,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAoB,EAAE,OAAc,EAAE,QAAgB,EAAE,IAAY,EAAE,KAAc,EAAU,EAAE;IAC5H,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/G,OAAO;QACL,EAAE;QACF,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,EAAE,GAAG;QACpD,EAAE;QACF,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;QACpC,EAAE;QACF,WAAW,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;QACjD,EAAE;QACF,gBAAgB,IAAI,IAAI;QACxB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7E,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;QACzB,EAAE;QACF,SAAS,OAAO,MAAM;QACtB,GAAG,YAAY;QACf,EAAE;QACF,2BAA2B,IAAI,CAAC,EAAE,aAAa;QAC/C,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../src/render/explain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"friendly.d.ts","sourceRoot":"","sources":["../../src/render/friendly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAoC3C,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,QAAQ,SAAS,EAAE,OAAO,SAAS,cAAc,EAAE,EAAE,UAAU,MAAM,KAAG,MAwBtH,CAAC"}
1
+ {"version":3,"file":"friendly.d.ts","sourceRoot":"","sources":["../../src/render/friendly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAsE3C,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,QAAQ,SAAS,EAAE,OAAO,SAAS,cAAc,EAAE,EAAE,UAAU,MAAM,KAAG,MAsBtH,CAAC"}
@@ -1,6 +1,29 @@
1
1
  import { MARK, localized, messageOf } from "./text.js";
2
2
  import { tally } from "./summary.js";
3
+ import { uiLanguageOf } from "../ui.js";
3
4
  const RULE = 60;
5
+ const TEXT = {
6
+ ja: {
7
+ line: (n) => `${n} 行目`,
8
+ relax: "このルールをゆるめる",
9
+ machine: "すべて機械による判定です",
10
+ deterministic: " (同じ文章なら何度実行しても同じ結果になります)",
11
+ untouched: "文章は書き換えていません。直すのは書いた人です。",
12
+ forced: (n, ids) => `試験中の rule を ${n} 件、設定により有効にしています: ${ids}`,
13
+ notRun: (n) => `${n} 件の rule は動いていません:`,
14
+ because: (why) => `(${why})`,
15
+ },
16
+ en: {
17
+ line: (n) => `line ${n}`,
18
+ relax: "Relax this rule",
19
+ machine: "All judged by machine",
20
+ deterministic: " (the same text gives the same result every time)",
21
+ untouched: "The text was not changed. Fixing it is the writer's job.",
22
+ forced: (n, ids) => `${n} experimental rule${n === 1 ? "" : "s"} turned on in the settings: ${ids}`,
23
+ notRun: (n) => `${n} rule${n === 1 ? "" : "s"} did not run:`,
24
+ because: (why) => ` (${why})`,
25
+ },
26
+ };
4
27
  const QUOTE_LIMIT = 120;
5
28
  const indent = (text, pad) => text.split("\n").map((line) => `${pad}${line}`);
6
29
  const quoteOf = (finding) => {
@@ -16,7 +39,8 @@ const quoteOf = (finding) => {
16
39
  */
17
40
  const block = (finding, rule, language) => [
18
41
  "",
19
- `─── ${finding.line} 行目 ${"─".repeat(Math.max(0, RULE - String(finding.line).length - 8))}`,
42
+ // "12 行目" and "line 12" take the same width on a terminal, so the rule ends in the same column in both.
43
+ `─── ${TEXT[uiLanguageOf(language)].line(finding.line)} ${"─".repeat(Math.max(0, RULE - String(finding.line).length - 8))}`,
20
44
  ...quoteOf(finding),
21
45
  "",
22
46
  ` ${MARK[finding.severity] ?? "·"} ${localized(rule.name, language)}`,
@@ -26,7 +50,7 @@ const block = (finding, rule, language) => [
26
50
  "",
27
51
  ...indent(`→ ${localized(rule.how_to_fix, language)}`, " "),
28
52
  "",
29
- ` このルールをゆるめる: npx chaff relax ${finding.rule}`,
53
+ ` ${TEXT[uiLanguageOf(language)].relax}: npx chaff relax ${finding.rule}`,
30
54
  "",
31
55
  ];
32
56
  export const renderFriendly = (header, result, rules, language) => {
@@ -35,20 +59,19 @@ export const renderFriendly = (header, result, rules, language) => {
35
59
  const rule = byId.get(finding.rule);
36
60
  return rule === undefined ? [] : block(finding, rule, language);
37
61
  });
62
+ const text = TEXT[uiLanguageOf(language)];
38
63
  const notes = [
39
64
  "",
40
65
  "─".repeat(RULE),
41
66
  "",
42
- ` ${tally(result.findings)} すべて機械による判定です`,
43
- " (同じ文章なら何度実行しても同じ結果になります)",
67
+ ` ${tally(result.findings, uiLanguageOf(language))} ${text.machine}`,
68
+ text.deterministic,
44
69
  "",
45
- " 文章は書き換えていません。直すのは書いた人です。",
70
+ ` ${text.untouched}`,
46
71
  ];
47
- const forced = result.forcedExperimental.length > 0
48
- ? ["", ` 試験中の rule を ${result.forcedExperimental.length} 件、設定により有効にしています: ${result.forcedExperimental.join(", ")}`]
49
- : [];
72
+ const forced = result.forcedExperimental.length > 0 ? ["", ` ${text.forced(result.forcedExperimental.length, result.forcedExperimental.join(", "))}`] : [];
50
73
  const skipped = result.skipped.length > 0
51
- ? ["", ` ${result.skipped.length} 件の rule は動いていません:`, ...result.skipped.map((entry) => ` ${entry.rule}(${entry.why})`)]
74
+ ? ["", ` ${text.notRun(result.skipped.length)}`, ...result.skipped.map((entry) => ` ${entry.rule}${text.because(entry.why)}`)]
52
75
  : [];
53
76
  return ["", header, ...blocks, ...notes, ...forced, ...skipped, ""].join("\n");
54
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"friendly.js","sourceRoot":"","sources":["../../src/render/friendly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"friendly.js","sourceRoot":"","sources":["../../src/render/friendly.ts"],"names":[],"mappings":"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"}
@@ -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;AAgCnD,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;AAwDnD,0DAA0D;AAC1D,eAAO,MAAM,SAAS,GAAI,OAAO,SAAS,cAAc,EAAE,EAAE,QAAQ,MAAM,EAAE,UAAU,MAAM,EAAE,OAAO,MAAM,KAAG,MA8B7G,CAAC"}
@@ -1,15 +1,32 @@
1
1
  import { definedLevels, resolve } from "../levels.js";
2
- const now = (rule, config, genre) => {
2
+ import { uiLanguageOf } from "../ui.js";
3
+ const TEXT = {
4
+ ja: {
5
+ offBySetting: "設定で止めている",
6
+ offExperimental: "experimental な rule は既定で動かさない",
7
+ valuesNote: "この 4 語のかわりに数字を直接書いてもよい。4 語のほうを勧める。",
8
+ reason: "<理由>",
9
+ byFile: "chaff.yaml の rules に <rule-id>: <level> を足す。既定のままのものは書かない。",
10
+ },
11
+ en: {
12
+ offBySetting: "turned off in the settings",
13
+ offExperimental: "experimental rules do not run by default",
14
+ valuesNote: "A number may be written instead of these four words. The words are recommended.",
15
+ reason: "<reason>",
16
+ byFile: "Add <rule-id>: <level> under rules in chaff.yaml. Leave out anything at its default.",
17
+ },
18
+ };
19
+ const now = (rule, config, genre, text) => {
3
20
  const explicit = config.rules[rule.id];
4
21
  if (explicit === "off")
5
- return { level: "off", why_off: "設定で止めている" };
22
+ return { level: "off", why_off: text.offBySetting };
6
23
  const limit = rule.layer === "L4" ? undefined : config.limits[rule.id];
7
24
  if (limit !== undefined)
8
25
  return { level: "normal", limit, set_as: "number" };
9
26
  if (explicit !== undefined)
10
27
  return { level: explicit, limit: resolve(rule, explicit, genre).limit };
11
28
  if (rule.status === "experimental" && !config.experimental) {
12
- return { level: "off", why_off: "experimental な rule は既定で動かさない", turn_on_with: `npx chaff lint --experimental` };
29
+ return { level: "off", why_off: text.offExperimental, turn_on_with: `npx chaff lint --experimental` };
13
30
  }
14
31
  return { level: "normal", limit: resolve(rule, "normal", genre).limit };
15
32
  };
@@ -29,28 +46,31 @@ const levelsOf = (rule, genre) => {
29
46
  return overridden ? { levels: effective, levels_default: rule.levels, levels_from: "by_genre" } : { levels: rule.levels };
30
47
  };
31
48
  /** AI に設定を書かせるときの入口。推測せずに書けるだけの情報を 1 つに入れる。spec §19.3。 */
32
- export const rulesJson = (rules, config, language, genre) => JSON.stringify({
33
- schema_version: 1,
34
- config_file: "chaff.yaml",
35
- detected: { genre, language },
36
- values_you_can_use: ["strict", "normal", "relaxed", "off"],
37
- values_note: "この 4 語のかわりに数字を直接書いてもよい。4 語のほうを勧める。",
38
- rules: rules.map((rule) => ({
39
- id: rule.id,
40
- layer: rule.layer,
41
- status: rule.status,
42
- name: rule.name,
43
- why: rule.why,
44
- how_to_fix: rule.how_to_fix,
45
- use_for: rule.use_for,
46
- ...levelsOf(rule, genre),
47
- levels_you_can_set: definedLevels(rule),
48
- your_setting: yourSetting(rule, config),
49
- now: now(rule, config, genre),
50
- })),
51
- how_to_change: {
52
- by_command: ['npx chaff relax <rule-id> --why "<理由>"', 'npx chaff strict <rule-id> --why "<理由>"', 'npx chaff off <rule-id> --why "<理由>"'],
53
- by_file: "chaff.yaml の rules に <rule-id>: <level> を足す。既定のままのものは書かない。",
54
- },
55
- }, null, 2);
49
+ export const rulesJson = (rules, config, language, genre) => {
50
+ const text = TEXT[uiLanguageOf(language)];
51
+ return JSON.stringify({
52
+ schema_version: 1,
53
+ config_file: "chaff.yaml",
54
+ detected: { genre, language },
55
+ values_you_can_use: ["strict", "normal", "relaxed", "off"],
56
+ values_note: text.valuesNote,
57
+ rules: rules.map((rule) => ({
58
+ id: rule.id,
59
+ layer: rule.layer,
60
+ status: rule.status,
61
+ name: rule.name,
62
+ why: rule.why,
63
+ how_to_fix: rule.how_to_fix,
64
+ use_for: rule.use_for,
65
+ ...levelsOf(rule, genre),
66
+ levels_you_can_set: definedLevels(rule),
67
+ your_setting: yourSetting(rule, config),
68
+ now: now(rule, config, genre, text),
69
+ })),
70
+ how_to_change: {
71
+ by_command: ["relax", "strict", "off"].map((command) => `npx chaff ${command} <rule-id> --why "${text.reason}"`),
72
+ by_file: text.byFile,
73
+ },
74
+ }, null, 2);
75
+ };
56
76
  //# sourceMappingURL=rules-json.js.map
@@ -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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"}
@@ -1,10 +1,11 @@
1
1
  import type { Finding } from "../plugin.ts";
2
+ import type { UiLanguage } from "../ui.ts";
2
3
  export type FileOutcome = {
3
4
  readonly path: string;
4
5
  readonly findings: readonly Finding[];
5
6
  readonly notRun: number;
6
7
  };
7
- export declare const tally: (findings: readonly Finding[]) => string;
8
+ export declare const tally: (findings: readonly Finding[], ui: UiLanguage) => string;
8
9
  /** 複数ファイルを見たときの締め。1 ファイルのときは出さない。 */
9
- export declare const renderSummary: (outcomes: readonly FileOutcome[]) => string[];
10
+ export declare const renderSummary: (outcomes: readonly FileOutcome[], ui: UiLanguage) => string[];
10
11
  //# sourceMappingURL=summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/render/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAIpH,eAAO,MAAM,KAAK,GAAI,UAAU,SAAS,OAAO,EAAE,KAAG,MAOpD,CAAC;AAEF,qCAAqC;AACrC,eAAO,MAAM,aAAa,GAAI,UAAU,SAAS,WAAW,EAAE,KAAG,MAAM,EAKtE,CAAC"}
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/render/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAgCpH,eAAO,MAAM,KAAK,GAAI,UAAU,SAAS,OAAO,EAAE,EAAE,IAAI,UAAU,KAAG,MAGpE,CAAC;AAEF,qCAAqC;AACrC,eAAO,MAAM,aAAa,GAAI,UAAU,SAAS,WAAW,EAAE,EAAE,IAAI,UAAU,KAAG,MAAM,EAKtF,CAAC"}
@@ -1,18 +1,33 @@
1
1
  const count = (findings, severity) => findings.filter((finding) => finding.severity === severity).length;
2
- export const tally = (findings) => {
3
- const parts = [
4
- count(findings, "error") > 0 ? `エラー ${count(findings, "error")} 件` : undefined,
5
- count(findings, "warning") > 0 ? `注意 ${count(findings, "warning")} 件` : undefined,
6
- count(findings, "info") > 0 ? `参考 ${count(findings, "info")} 件` : undefined,
7
- ].filter((part) => part !== undefined);
8
- return parts.length === 0 ? "指摘はありません" : parts.join("、");
2
+ const TEXT = {
3
+ ja: {
4
+ counts: { error: (n) => `エラー ${n} 件`, warning: (n) => `注意 ${n} 件`, info: (n) => `参考 ${n} 件` },
5
+ join: "、",
6
+ none: "指摘はありません",
7
+ files: (seen, touched) => `${seen} ファイルを見て、${touched} ファイルに指摘がありました`,
8
+ },
9
+ en: {
10
+ counts: {
11
+ error: (n) => `${n} error${n === 1 ? "" : "s"}`,
12
+ warning: (n) => `${n} warning${n === 1 ? "" : "s"}`,
13
+ info: (n) => `${n} note${n === 1 ? "" : "s"}`,
14
+ },
15
+ join: ", ",
16
+ none: "No findings",
17
+ files: (seen, touched) => `${seen} files checked, ${touched} with findings`,
18
+ },
19
+ };
20
+ const SEVERITIES = ["error", "warning", "info"];
21
+ export const tally = (findings, ui) => {
22
+ const parts = SEVERITIES.filter((severity) => count(findings, severity) > 0).map((severity) => TEXT[ui].counts[severity](count(findings, severity)));
23
+ return parts.length === 0 ? TEXT[ui].none : parts.join(TEXT[ui].join);
9
24
  };
10
25
  /** 複数ファイルを見たときの締め。1 ファイルのときは出さない。 */
11
- export const renderSummary = (outcomes) => {
26
+ export const renderSummary = (outcomes, ui) => {
12
27
  if (outcomes.length < 2)
13
28
  return [];
14
29
  const all = outcomes.flatMap((outcome) => outcome.findings);
15
30
  const touched = outcomes.filter((outcome) => outcome.findings.length > 0).length;
16
- return ["", "═".repeat(60), "", ` ${outcomes.length} ファイルを見て、${touched} ファイルに指摘がありました`, ` ${tally(all)}`, ""];
31
+ return ["", "═".repeat(60), "", ` ${TEXT[ui].files(outcomes.length, touched)}`, ` ${tally(all, ui)}`, ""];
17
32
  };
18
33
  //# sourceMappingURL=summary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/render/summary.ts"],"names":[],"mappings":"AAIA,MAAM,KAAK,GAAG,CAAC,QAA4B,EAAE,QAAgB,EAAU,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;AAE7I,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,QAA4B,EAAU,EAAE;IAC5D,MAAM,KAAK,GAAG;QACZ,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC9E,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACjF,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KAC5E,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAgC,EAAY,EAAE;IAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACjF,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,QAAQ,CAAC,MAAM,YAAY,OAAO,gBAAgB,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClH,CAAC,CAAC"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/render/summary.ts"],"names":[],"mappings":"AAKA,MAAM,KAAK,GAAG,CAAC,QAA4B,EAAE,QAAgB,EAAU,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;AAI7I,MAAM,IAAI,GAKL;IACH,EAAE,EAAE;QACF,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QAC7F,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,YAAY,OAAO,gBAAgB;KACrE;IACD,EAAE,EAAE;QACF,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;YAC/C,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;YACnD,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;SAC9C;QACD,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,mBAAmB,OAAO,gBAAgB;KAC5E;CACF,CAAC;AAEF,MAAM,UAAU,GAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,QAA4B,EAAE,EAAc,EAAU,EAAE;IAC5E,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrJ,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAgC,EAAE,EAAc,EAAY,EAAE;IAC1F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACjF,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9G,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Suppressed, Suppression } from "../stet.ts";
2
+ import type { UiLanguage } from "../ui.ts";
2
3
  export type PerFile = {
3
4
  readonly path: string;
4
5
  readonly suppressed: readonly Suppressed[];
@@ -9,5 +10,5 @@ export type PerFile = {
9
10
  * 同じ rule を何度も黙らせているなら、それは (b) ではなく (c) のサイン。
10
11
  * workflow spec §7.3。
11
12
  */
12
- export declare const renderSuppressions: (files: readonly PerFile[]) => string;
13
+ export declare const renderSuppressions: (files: readonly PerFile[], ui?: UiLanguage) => string;
13
14
  //# sourceMappingURL=suppressions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"suppressions.d.ts","sourceRoot":"","sources":["../../src/render/suppressions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,UAAU,EAAE,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAA;CAAE,CAAC;AAqCzI;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,OAAO,EAAE,KAAG,MAY9D,CAAC"}
1
+ {"version":3,"file":"suppressions.d.ts","sourceRoot":"","sources":["../../src/render/suppressions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,UAAU,CAAC;AAkClD,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,UAAU,EAAE,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAA;CAAE,CAAC;AAsCzI;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,OAAO,EAAE,EAAE,KAAI,UAAiB,KAAG,MAarF,CAAC"}
@@ -1,3 +1,25 @@
1
+ const TEXT = {
2
+ ja: {
3
+ nudge: " ← 設定の見直しを検討してください",
4
+ more: (n) => ` ほか ${n} ファイル`,
5
+ count: (n) => `${String(n).padStart(3)} 件`,
6
+ reasons: (list) => `理由: ${list}`,
7
+ relaxAll: (rule) => `ルールごとゆるめる: npx chaff relax ${rule} --why "..."`,
8
+ none: "\n 抑制されている指摘はありません。\n",
9
+ total: (n) => `抑制されている指摘: ${n} 件`,
10
+ reasonless: (n) => `理由が書かれていない抑制: ${n} 件`,
11
+ },
12
+ en: {
13
+ nudge: " <- consider changing the setting instead",
14
+ more: (n) => ` and ${n} more file${n === 1 ? "" : "s"}`,
15
+ count: (n) => `${String(n).padStart(3)}`,
16
+ reasons: (list) => `reasons: ${list}`,
17
+ relaxAll: (rule) => `relax the whole rule: npx chaff relax ${rule} --why "..."`,
18
+ none: "\n No findings are silenced.\n",
19
+ total: (n) => `Silenced findings: ${n}`,
20
+ reasonless: (n) => `Silenced without a reason: ${n}`,
21
+ },
22
+ };
1
23
  /** これを超えたら、その rule は (b) ではなく (c) にすべきというサイン。 */
2
24
  const NUDGE_AT = 5;
3
25
  const groupByRule = (files) => {
@@ -15,16 +37,17 @@ const groupByRule = (files) => {
15
37
  })
16
38
  .sort((left, right) => right.count - left.count);
17
39
  };
18
- const groupLines = (group) => {
19
- const nudge = group.count >= NUDGE_AT ? " ← 設定の見直しを検討してください" : "";
40
+ const groupLines = (group, ui) => {
41
+ const text = TEXT[ui];
42
+ const nudge = group.count >= NUDGE_AT ? text.nudge : "";
20
43
  const shown = group.files.slice(0, 3).join(", ");
21
- const rest = group.files.length > 3 ? ` ほか ${group.files.length - 3} ファイル` : "";
44
+ const rest = group.files.length > 3 ? text.more(group.files.length - 3) : "";
22
45
  return [
23
46
  "",
24
- ` ${group.rule.padEnd(26)}${String(group.count).padStart(3)} 件${nudge}`,
47
+ ` ${group.rule.padEnd(26)}${text.count(group.count)}${nudge}`,
25
48
  ` ${shown}${rest}`,
26
49
  ...(group.count >= NUDGE_AT && group.reasons.length > 0
27
- ? [` 理由: ${group.reasons.slice(0, 2).join(" / ")}`, ` ルールごとゆるめる: npx chaff relax ${group.rule} --why "..."`]
50
+ ? [` ${text.reasons(group.reasons.slice(0, 2).join(" / "))}`, ` ${text.relaxAll(group.rule)}`]
28
51
  : []),
29
52
  ];
30
53
  };
@@ -33,17 +56,18 @@ const groupLines = (group) => {
33
56
  * 同じ rule を何度も黙らせているなら、それは (b) ではなく (c) のサイン。
34
57
  * workflow spec §7.3。
35
58
  */
36
- export const renderSuppressions = (files) => {
59
+ export const renderSuppressions = (files, ui = "ja") => {
60
+ const text = TEXT[ui];
37
61
  const groups = groupByRule(files);
38
62
  const total = groups.reduce((sum, group) => sum + group.count, 0);
39
63
  if (total === 0)
40
- return "\n 抑制されている指摘はありません。\n";
64
+ return text.none;
41
65
  const reasonless = files.flatMap((file) => file.reasonless.map(() => file.path));
42
66
  return [
43
67
  "",
44
- ` 抑制されている指摘: ${total} 件`,
45
- ...groups.flatMap(groupLines),
46
- ...(reasonless.length > 0 ? ["", ` 理由が書かれていない抑制: ${reasonless.length} 件`, ` ${[...new Set(reasonless)].join(", ")}`] : []),
68
+ ` ${text.total(total)}`,
69
+ ...groups.flatMap((group) => groupLines(group, ui)),
70
+ ...(reasonless.length > 0 ? ["", ` ${text.reasonless(reasonless.length)}`, ` ${[...new Set(reasonless)].join(", ")}`] : []),
47
71
  "",
48
72
  ].join("\n");
49
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"suppressions.js","sourceRoot":"","sources":["../../src/render/suppressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suppressions.js","sourceRoot":"","sources":["../../src/render/suppressions.ts"],"names":[],"mappings":"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"}
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,+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"}
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;AAK/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;AA8CvD;;;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,SAkDF,CAAC"}