@chaffjs/lang-en 0.16.0 → 0.17.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.
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAwB9C,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,OAAsC,CAAC;AAE3F,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SACuC,CAAC;AAMrG,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,OAAO,EAS/C,CAAC"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAwB9C,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,OAAsC,CAAC;AAE3F,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SACuC,CAAC;AAMrG,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,OAAO,EAW/C,CAAC"}
@@ -27,7 +27,9 @@ export const definitions = (text) => DEFINITIONS.flatMap((pattern) => [...text.m
27
27
  if (term === undefined)
28
28
  return [];
29
29
  const end = match.index + match[0].length;
30
- const namesAParty = match[0].startsWith("(") && APPLIES.test(text);
31
- return [{ start: match.index, end, attrs: { term, ...(isPointer(text, end) || namesAParty ? { scope: "local" } : {}) } }];
30
+ const inline = match[0].startsWith("(");
31
+ const namesAParty = inline && APPLIES.test(text);
32
+ const scope = isPointer(text, end) || namesAParty ? { scope: "local" } : {};
33
+ return [{ start: match.index, end, attrs: { term, ...scope, ...(inline ? { placement: "inline" } : {}) } }];
32
34
  }));
33
35
  //# sourceMappingURL=definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEvD,oEAAoE;AAEpE,MAAM,WAAW,GAAG;IAClB,mFAAmF;IACnF,4DAA4D;IAC5D,iEAAiE;CAClE,CAAC;AAEF;;;GAGG;AACH,MAAM,gBAAgB,GAAG,+GAA+G,CAAC;AACzI,iHAAiH;AACjH,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAC5C,0HAA0H;AAC1H,MAAM,WAAW,GAA2C;IAC1D,CAAC,4BAA4B,EAAE,UAAU,CAAC;IAC1C,CAAC,+BAA+B,EAAE,aAAa,CAAC;CACjD,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAsB,EAAE,CACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAErG,mGAAmG;AACnG,MAAM,OAAO,GAAG,sCAAsC,CAAC;AACvD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,GAAW,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAa,EAAE,CACrD,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9B,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5H,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEvD,oEAAoE;AAEpE,MAAM,WAAW,GAAG;IAClB,mFAAmF;IACnF,4DAA4D;IAC5D,iEAAiE;CAClE,CAAC;AAEF;;;GAGG;AACH,MAAM,gBAAgB,GAAG,+GAA+G,CAAC;AACzI,iHAAiH;AACjH,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAC5C,0HAA0H;AAC1H,MAAM,WAAW,GAA2C;IAC1D,CAAC,4BAA4B,EAAE,UAAU,CAAC;IAC1C,CAAC,+BAA+B,EAAE,aAAa,CAAC;CACjD,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAsB,EAAE,CACvE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAErG,mGAAmG;AACnG,MAAM,OAAO,GAAG,sCAAsC,CAAC;AACvD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,GAAW,EAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAa,EAAE,CACrD,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9B,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9G,CAAC,CAAC,CACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lexicons.d.ts","sourceRoot":"","sources":["../src/lexicons.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,gBAAgB,CAAC;AAoB5D;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,MAAK,MAAY,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CASpE,CAAC"}
1
+ {"version":3,"file":"lexicons.d.ts","sourceRoot":"","sources":["../src/lexicons.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,gBAAgB,CAAC;AAwB5D;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,MAAK,MAAY,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CASpE,CAAC"}
package/dist/lexicons.js CHANGED
@@ -10,11 +10,15 @@ const toEntry = (raw) => {
10
10
  return undefined;
11
11
  const weight = raw["weight"];
12
12
  const instead = raw["instead_of"];
13
+ const rewrite = raw["rewrite"];
14
+ const group = raw["group"];
13
15
  return {
14
16
  pattern: raw["pattern"],
15
17
  weight: typeof weight === "number" ? weight : undefined,
16
18
  instead_of: typeof instead === "string" ? instead : undefined,
17
19
  position: POSITIONS.find((position) => position === raw["position"]),
20
+ rewrite: typeof rewrite === "string" ? rewrite : undefined,
21
+ ...(typeof group === "string" ? { group } : {}),
18
22
  };
19
23
  };
20
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lexicons.js","sourceRoot":"","sources":["../src/lexicons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAG7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAE5E,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE5I,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AAE/C,MAAM,OAAO,GAAG,CAAC,GAAY,EAA4B,EAAE;IACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;QACvB,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACvD,UAAU,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC7D,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;KACrE,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,GAAG,EAA2B,EAAE,CACzE,MAAM,CAAC,WAAW,CAChB,WAAW,CAAC,GAAG,CAAC;KACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACxC,OAAO,CAAC,CAAC,IAAI,EAAuB,EAAE;IACrC,MAAM,GAAG,GAAY,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACjG,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC,CACL,CAAC"}
1
+ {"version":3,"file":"lexicons.js","sourceRoot":"","sources":["../src/lexicons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAG7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAE5E,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE5I,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AAE/C,MAAM,OAAO,GAAG,CAAC,GAAY,EAA4B,EAAE;IACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;QACvB,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACvD,UAAU,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC7D,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;QACpE,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC1D,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,GAAG,EAA2B,EAAE,CACzE,MAAM,CAAC,WAAW,CAChB,WAAW,CAAC,GAAG,CAAC;KACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACxC,OAAO,CAAC,CAAC,IAAI,EAAuB,EAAE;IACrC,MAAM,GAAG,GAAY,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACjG,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC,CACL,CAAC"}
@@ -5,20 +5,27 @@ language: en
5
5
  entries:
6
6
  - pattern: delve into
7
7
  weight: 0.9
8
+ rewrite: look at, or explain
8
9
  - pattern: in today's fast-paced world
9
10
  weight: 0.9
11
+ rewrite: delete it and start with the point
10
12
  - pattern: tapestry
11
13
  weight: 0.6
14
+ rewrite: name the parts
12
15
  - pattern: it's not just
13
16
  weight: 0.7
14
17
  - pattern: plays a crucial role
15
18
  weight: 0.8
19
+ rewrite: say what it does
16
20
  - pattern: navigate the complexities
17
21
  weight: 0.8
22
+ rewrite: name the hard part and say how it is handled
18
23
  - pattern: a testament to
19
24
  weight: 0.7
25
+ rewrite: shows
20
26
  - pattern: unlock the potential
21
27
  weight: 0.8
28
+ rewrite: say what becomes possible
22
29
  - pattern: deep dive
23
30
  weight: 0.5
24
31
  - pattern: intricate
@@ -27,10 +34,13 @@ entries:
27
34
  weight: 0.5
28
35
  - pattern: meticulous
29
36
  weight: 0.6
37
+ rewrite: careful, and say what was checked
30
38
  - pattern: meticulously
31
39
  weight: 0.6
40
+ rewrite: carefully, and say what was checked
32
41
  - pattern: pivotal
33
42
  weight: 0.5
43
+ rewrite: say what depends on it
34
44
  - pattern: in the realm of
35
45
  weight: 0.6
36
46
  - pattern: showcasing
@@ -85,6 +95,7 @@ entries:
85
95
  weight: 0.7
86
96
  - pattern: seamlessly
87
97
  weight: 0.5
98
+ rewrite: say what the reader no longer has to do
88
99
  - pattern: empowering
89
100
  weight: 0.5
90
101
  - pattern: game-changer
@@ -101,6 +112,7 @@ entries:
101
112
  weight: 0.5
102
113
  - pattern: it's worth noting
103
114
  weight: 0.5
115
+ rewrite: delete it and state the point
104
116
  - pattern: faces several challenges
105
117
  weight: 0.8
106
118
  - pattern: despite these challenges
@@ -1,5 +1,9 @@
1
1
  # Nouns that name what a list holds ("three steps", "two reasons"). Only a number followed by one of these (up to two
2
2
  # words may stand between: "three key steps") is read as the count of the list below.
3
+ # Only nouns that name what a list holds. A plural that measures ("three years:", "two hours:", "30 seconds:") or a verb
4
+ # ending in s ("Release 2 includes:") is not an announcement, so "any plural before a colon" is not used. Nouns that are
5
+ # also verbs after a label number ("Section 2 documents:", "Model 4 outputs:") or that measure a degree ("two levels:")
6
+ # are left out too.
3
7
  id: count-counter
4
8
  language: en
5
9
  entries:
@@ -38,3 +42,49 @@ entries:
38
42
  - pattern: lessons
39
43
  - pattern: takeaways
40
44
  - pattern: recommendations
45
+ - pattern: decisions
46
+ - pattern: findings
47
+ - pattern: examples
48
+ - pattern: objectives
49
+ - pattern: priorities
50
+ - pattern: outcomes
51
+ - pattern: problems
52
+ - pattern: challenges
53
+ - pattern: concerns
54
+ - pattern: ideas
55
+ - pattern: suggestions
56
+ - pattern: alternatives
57
+ - pattern: scenarios
58
+ - pattern: deliverables
59
+ - pattern: milestones
60
+ - pattern: responsibilities
61
+ - pattern: topics
62
+ - pattern: themes
63
+ - pattern: considerations
64
+ - pattern: constraints
65
+ - pattern: assumptions
66
+ - pattern: limitations
67
+ - pattern: advantages
68
+ - pattern: disadvantages
69
+ - pattern: strengths
70
+ - pattern: weaknesses
71
+ - pattern: opportunities
72
+ - pattern: conclusions
73
+ - pattern: observations
74
+ - pattern: insights
75
+ - pattern: roles
76
+ - pattern: values
77
+ - pattern: sections
78
+ - pattern: elements
79
+ - pattern: properties
80
+ - pattern: attributes
81
+ - pattern: parameters
82
+ - pattern: tools
83
+ - pattern: services
84
+ - pattern: resources
85
+ - pattern: policies
86
+ - pattern: guidelines
87
+ - pattern: metrics
88
+ - pattern: modes
89
+ - pattern: pillars
90
+ - pattern: exceptions
@@ -9,3 +9,9 @@ entries:
9
9
  - pattern: when you get a chance
10
10
  - pattern: no rush but
11
11
  - pattern: apologies for
12
+ - pattern: hope this email finds you well
13
+ - pattern: hope this message finds you well
14
+ - pattern: hope this finds you well
15
+ - pattern: sorry to trouble
16
+ - pattern: just reaching out
17
+ - pattern: just checking in
@@ -0,0 +1,27 @@
1
+ # Words that, anywhere in the same sentence as "from … to", make it a change of date rather than a period: "the review
2
+ # moved from March 10, 2026 to March 3, 2026", "the meeting from March 10 to March 3 was postponed".
3
+ id: date-change-word
4
+ language: en
5
+ entries:
6
+ - pattern: moved
7
+ - pattern: move
8
+ - pattern: moving
9
+ - pattern: changed
10
+ - pattern: change
11
+ - pattern: changing
12
+ - pattern: postponed
13
+ - pattern: rescheduled
14
+ - pattern: reschedule
15
+ - pattern: brought forward
16
+ - pattern: bring forward
17
+ - pattern: pushed back
18
+ - pattern: push back
19
+ - pattern: delayed
20
+ - pattern: shifted
21
+ - pattern: advanced
22
+ - pattern: extended
23
+ - pattern: shortened
24
+ - pattern: updated
25
+ - pattern: corrected
26
+ - pattern: revised
27
+ - pattern: amended
@@ -0,0 +1,25 @@
1
+ # Double negatives: a negation of a negative word, which says a positive without committing to it. The reader turns
2
+ # the sentence over twice. "not without" is left out: "do not enter without a badge" is a plain prohibition.
3
+ id: double-negative
4
+ language: en
5
+ entries:
6
+ - pattern: not uncommon
7
+ - pattern: not unusual
8
+ - pattern: not unlike
9
+ - pattern: not unreasonable
10
+ - pattern: not insignificant
11
+ - pattern: not inconsiderable
12
+ - pattern: not impossible
13
+ - pattern: not unlikely
14
+ - pattern: not unknown
15
+ - pattern: not unheard of
16
+ - pattern: not infrequently
17
+ - pattern: not infrequent
18
+ - pattern: not unimportant
19
+ - pattern: not dissimilar
20
+ - pattern: not unaware
21
+ - pattern: not unhelpful
22
+ - pattern: not ineffective
23
+ - pattern: not inconsistent
24
+ - pattern: not insubstantial
25
+ - pattern: not unwilling
@@ -0,0 +1,37 @@
1
+ # Words that announce a set of names: the platforms a product runs on, the languages it comes in. outside-announced-list
2
+ # reads the names right after (position: before) or right before (position: after) the words, and compares later
3
+ # statements of the same group with the first list of two or more names. Words that also frame ordinary nouns are left out.
4
+ # "version" and "edition" are a group of their own: a product's editions (Oracle Free, Oracle Express Edition) are not its platforms.
5
+ id: enumeration-frame
6
+ language: en
7
+ entries:
8
+ - pattern: supported on
9
+ position: before
10
+ group: platform
11
+ - pattern: runs on
12
+ position: before
13
+ group: platform
14
+ - pattern: available on
15
+ position: before
16
+ group: platform
17
+ - pattern: available for
18
+ position: before
19
+ group: platform
20
+ - pattern: compatible with
21
+ position: before
22
+ group: platform
23
+ - pattern: works on
24
+ position: before
25
+ group: platform
26
+ - pattern: version
27
+ position: after
28
+ group: edition
29
+ - pattern: edition
30
+ position: after
31
+ group: edition
32
+ - pattern: available in
33
+ position: before
34
+ group: language
35
+ - pattern: translated into
36
+ position: before
37
+ group: language
@@ -0,0 +1,9 @@
1
+ # Words and marks that join the names of one list ("Windows, macOS and Linux"). Each entry is one token.
2
+ id: enumeration-joiner
3
+ language: en
4
+ entries:
5
+ - pattern: ","
6
+ - pattern: and
7
+ - pattern: or
8
+ - pattern: "&"
9
+ - pattern: /
@@ -0,0 +1,13 @@
1
+ # Words that negate a sentence. A negated listing ("neither image is available on Docker Hub") names what is left out
2
+ # of a list, not what belongs to it, so outside-announced-list does not read it. Each entry is one token.
3
+ id: enumeration-negation
4
+ language: en
5
+ entries:
6
+ - pattern: not
7
+ - pattern: n't
8
+ - pattern: never
9
+ - pattern: neither
10
+ - pattern: nor
11
+ - pattern: "no"
12
+ - pattern: cannot
13
+ - pattern: unsupported
@@ -0,0 +1,27 @@
1
+ # Hidden verbs: a verb turned into a noun and carried by a weak verb ("make a decision" for "decide"). nominalization
2
+ # reads them. The Federal Plain Language Guidelines ("Use the active voice" / "Avoid hidden verbs") and GOV.UK ("Use
3
+ # clear language") ask for the verb. instead_of is the verb. A verb in the pattern matches its other forms (made, makes).
4
+ id: nominalization-phrase
5
+ language: en
6
+ entries:
7
+ - { pattern: make a decision, instead_of: decide }
8
+ - { pattern: reach a decision, instead_of: decide }
9
+ - { pattern: conduct an investigation, instead_of: investigate }
10
+ - { pattern: carry out an investigation, instead_of: investigate }
11
+ - { pattern: conduct an analysis, instead_of: analyze }
12
+ - { pattern: perform an analysis, instead_of: analyze }
13
+ - { pattern: carry out an analysis, instead_of: analyze }
14
+ - { pattern: make an assessment, instead_of: assess }
15
+ - { pattern: conduct an assessment, instead_of: assess }
16
+ - { pattern: conduct a review, instead_of: review }
17
+ - { pattern: perform a review, instead_of: review }
18
+ - { pattern: make a recommendation, instead_of: recommend }
19
+ - { pattern: make a determination, instead_of: determine }
20
+ - { pattern: give consideration to, instead_of: consider }
21
+ - { pattern: provide assistance, instead_of: help }
22
+ - { pattern: make an application, instead_of: apply }
23
+ - { pattern: make a payment, instead_of: pay }
24
+ - { pattern: make an adjustment, instead_of: adjust }
25
+ - { pattern: come to a conclusion, instead_of: conclude }
26
+ - { pattern: have a discussion, instead_of: discuss }
27
+ - { pattern: make reference to, instead_of: refer to }
@@ -0,0 +1,247 @@
1
+ # The names a place is followed by, after a comma, to say where it is: US states and the District of Columbia, and
2
+ # countries ("New London, Wisconsin, and …", "Lyon, France, and …"). The comma between a place and its state or country
3
+ # is part of the name, not a list's comma. Matched as written, word by word. A name with position: after is written only
4
+ # after a place's name (Washington, D.C.), so it is read as one even after a state's name.
5
+ id: place-region
6
+ language: en
7
+ entries:
8
+ - pattern: Alabama
9
+ - pattern: Alaska
10
+ - pattern: Arizona
11
+ - pattern: Arkansas
12
+ - pattern: California
13
+ - pattern: Colorado
14
+ - pattern: Connecticut
15
+ - pattern: Delaware
16
+ - pattern: Florida
17
+ - pattern: Georgia
18
+ - pattern: Hawaii
19
+ - pattern: Idaho
20
+ - pattern: Illinois
21
+ - pattern: Indiana
22
+ - pattern: Iowa
23
+ - pattern: Kansas
24
+ - pattern: Kentucky
25
+ - pattern: Louisiana
26
+ - pattern: Maine
27
+ - pattern: Maryland
28
+ - pattern: Massachusetts
29
+ - pattern: Michigan
30
+ - pattern: Minnesota
31
+ - pattern: Mississippi
32
+ - pattern: Missouri
33
+ - pattern: Montana
34
+ - pattern: Nebraska
35
+ - pattern: Nevada
36
+ - pattern: New Hampshire
37
+ - pattern: New Jersey
38
+ - pattern: New Mexico
39
+ - pattern: New York
40
+ - pattern: North Carolina
41
+ - pattern: North Dakota
42
+ - pattern: Ohio
43
+ - pattern: Oklahoma
44
+ - pattern: Oregon
45
+ - pattern: Pennsylvania
46
+ - pattern: Rhode Island
47
+ - pattern: South Carolina
48
+ - pattern: South Dakota
49
+ - pattern: Tennessee
50
+ - pattern: Texas
51
+ - pattern: Utah
52
+ - pattern: Vermont
53
+ - pattern: Virginia
54
+ - pattern: Washington
55
+ - pattern: West Virginia
56
+ - pattern: Wisconsin
57
+ - pattern: Wyoming
58
+ - pattern: D.C.
59
+ position: after
60
+ - pattern: Puerto Rico
61
+ - pattern: Guam
62
+ - pattern: Afghanistan
63
+ - pattern: Albania
64
+ - pattern: Algeria
65
+ - pattern: Andorra
66
+ - pattern: Angola
67
+ - pattern: Argentina
68
+ - pattern: Armenia
69
+ - pattern: Australia
70
+ - pattern: Austria
71
+ - pattern: Azerbaijan
72
+ - pattern: Bahamas
73
+ - pattern: Bahrain
74
+ - pattern: Bangladesh
75
+ - pattern: Barbados
76
+ - pattern: Belarus
77
+ - pattern: Belgium
78
+ - pattern: Belize
79
+ - pattern: Benin
80
+ - pattern: Bhutan
81
+ - pattern: Bolivia
82
+ - pattern: Bosnia and Herzegovina
83
+ - pattern: Botswana
84
+ - pattern: Brazil
85
+ - pattern: Brunei
86
+ - pattern: Bulgaria
87
+ - pattern: Burkina Faso
88
+ - pattern: Burundi
89
+ - pattern: Cambodia
90
+ - pattern: Cameroon
91
+ - pattern: Canada
92
+ - pattern: Chad
93
+ - pattern: Chile
94
+ - pattern: China
95
+ - pattern: Colombia
96
+ - pattern: Costa Rica
97
+ - pattern: Croatia
98
+ - pattern: Cuba
99
+ - pattern: Cyprus
100
+ - pattern: Czechia
101
+ - pattern: Czech Republic
102
+ - pattern: Denmark
103
+ - pattern: Djibouti
104
+ - pattern: Dominican Republic
105
+ - pattern: Ecuador
106
+ - pattern: Egypt
107
+ - pattern: El Salvador
108
+ - pattern: England
109
+ - pattern: Eritrea
110
+ - pattern: Estonia
111
+ - pattern: Eswatini
112
+ - pattern: Ethiopia
113
+ - pattern: Fiji
114
+ - pattern: Finland
115
+ - pattern: France
116
+ - pattern: Gabon
117
+ - pattern: Gambia
118
+ - pattern: Germany
119
+ - pattern: Ghana
120
+ - pattern: Greece
121
+ - pattern: Guatemala
122
+ - pattern: Guinea
123
+ - pattern: Guyana
124
+ - pattern: Haiti
125
+ - pattern: Honduras
126
+ - pattern: Hungary
127
+ - pattern: Iceland
128
+ - pattern: India
129
+ - pattern: Indonesia
130
+ - pattern: Iran
131
+ - pattern: Iraq
132
+ - pattern: Ireland
133
+ - pattern: Israel
134
+ - pattern: Italy
135
+ - pattern: Jamaica
136
+ - pattern: Japan
137
+ - pattern: Jordan
138
+ - pattern: Kazakhstan
139
+ - pattern: Kenya
140
+ - pattern: Kosovo
141
+ - pattern: Kuwait
142
+ - pattern: Kyrgyzstan
143
+ - pattern: Laos
144
+ - pattern: Latvia
145
+ - pattern: Lebanon
146
+ - pattern: Lesotho
147
+ - pattern: Liberia
148
+ - pattern: Libya
149
+ - pattern: Liechtenstein
150
+ - pattern: Lithuania
151
+ - pattern: Luxembourg
152
+ - pattern: Madagascar
153
+ - pattern: Malawi
154
+ - pattern: Malaysia
155
+ - pattern: Maldives
156
+ - pattern: Mali
157
+ - pattern: Malta
158
+ - pattern: Mauritania
159
+ - pattern: Mauritius
160
+ - pattern: Mexico
161
+ - pattern: Moldova
162
+ - pattern: Monaco
163
+ - pattern: Mongolia
164
+ - pattern: Montenegro
165
+ - pattern: Morocco
166
+ - pattern: Mozambique
167
+ - pattern: Myanmar
168
+ - pattern: Namibia
169
+ - pattern: Nepal
170
+ - pattern: Netherlands
171
+ - pattern: New Zealand
172
+ - pattern: Nicaragua
173
+ - pattern: Niger
174
+ - pattern: Nigeria
175
+ - pattern: North Korea
176
+ - pattern: North Macedonia
177
+ - pattern: Northern Ireland
178
+ - pattern: Norway
179
+ - pattern: Oman
180
+ - pattern: Pakistan
181
+ - pattern: Panama
182
+ - pattern: Papua New Guinea
183
+ - pattern: Paraguay
184
+ - pattern: Peru
185
+ - pattern: Philippines
186
+ - pattern: Poland
187
+ - pattern: Portugal
188
+ - pattern: Qatar
189
+ - pattern: Romania
190
+ - pattern: Russia
191
+ - pattern: Rwanda
192
+ - pattern: Saudi Arabia
193
+ - pattern: Scotland
194
+ - pattern: Senegal
195
+ - pattern: Serbia
196
+ - pattern: Sierra Leone
197
+ - pattern: Singapore
198
+ - pattern: Slovakia
199
+ - pattern: Slovenia
200
+ - pattern: Somalia
201
+ - pattern: South Africa
202
+ - pattern: South Korea
203
+ - pattern: South Sudan
204
+ - pattern: Spain
205
+ - pattern: Sri Lanka
206
+ - pattern: Sudan
207
+ - pattern: Suriname
208
+ - pattern: Sweden
209
+ - pattern: Switzerland
210
+ - pattern: Syria
211
+ - pattern: Taiwan
212
+ - pattern: Tajikistan
213
+ - pattern: Tanzania
214
+ - pattern: Thailand
215
+ - pattern: Togo
216
+ - pattern: Trinidad and Tobago
217
+ - pattern: Tunisia
218
+ - pattern: Turkey
219
+ - pattern: Türkiye
220
+ - pattern: Turkmenistan
221
+ - pattern: Uganda
222
+ - pattern: Ukraine
223
+ - pattern: United Arab Emirates
224
+ - pattern: United Kingdom
225
+ - pattern: UK
226
+ - pattern: U.K.
227
+ - pattern: United States
228
+ - pattern: USA
229
+ - pattern: U.S.
230
+ - pattern: U.S.A.
231
+ - pattern: Uruguay
232
+ - pattern: Uzbekistan
233
+ - pattern: Venezuela
234
+ - pattern: Vietnam
235
+ - pattern: Wales
236
+ - pattern: Yemen
237
+ - pattern: Zambia
238
+ - pattern: Zimbabwe
239
+ - pattern: Alberta
240
+ - pattern: British Columbia
241
+ - pattern: Manitoba
242
+ - pattern: New Brunswick
243
+ - pattern: Newfoundland and Labrador
244
+ - pattern: Nova Scotia
245
+ - pattern: Ontario
246
+ - pattern: Quebec
247
+ - pattern: Saskatchewan
@@ -0,0 +1,9 @@
1
+ # A word before the first date and a word between the two dates that together make a period: "from 1 May 2026 to
2
+ # 31 May 2026". Written as "lead … joint". "to" alone is not a range-connector because "moved from March 10 to March 3"
3
+ # changes a date; date-change-word says when the frame is a change instead. "between … and" is not a frame: "choose
4
+ # between 1 May and 30 April" names two dates to pick from.
5
+ id: range-frame
6
+ language: en
7
+ entries:
8
+ - pattern: from … to
9
+ - pattern: from … up to
@@ -0,0 +1,5 @@
1
+ # "and/or" (Berry et al. 2003): the reader cannot tell whether both are meant, or either one is enough.
2
+ id: requirement-either
3
+ language: en
4
+ entries:
5
+ - pattern: and/or
@@ -0,0 +1,17 @@
1
+ # Phrases that open a loophole in a requirement or leave it unverifiable (Femmer et al. 2017; the terms ISO/IEC/IEEE
2
+ # 29148 says to avoid). The reader cannot tell how much is enough to meet it.
3
+ id: requirement-loophole
4
+ language: en
5
+ entries:
6
+ - pattern: as far as possible
7
+ - pattern: as much as possible
8
+ - pattern: as soon as possible
9
+ - pattern: as fast as possible
10
+ - pattern: to the extent possible
11
+ - pattern: if possible
12
+ - pattern: where possible
13
+ - pattern: as appropriate
14
+ - pattern: where appropriate
15
+ - pattern: as applicable
16
+ - pattern: if necessary
17
+ - pattern: as needed
@@ -0,0 +1,9 @@
1
+ # What makes a sentence a requirement for requirement-smell: the forms ISO/IEC/IEEE 29148 and the Federal Plain Language
2
+ # Guidelines use for an obligation. Only a sentence with one of them is read as a requirement.
3
+ id: requirement-marker
4
+ language: en
5
+ entries:
6
+ - pattern: shall
7
+ - pattern: must
8
+ - pattern: is required to
9
+ - pattern: are required to
@@ -0,0 +1,7 @@
1
+ # "shall" and what to write instead (instead_of), read by requirement-modal when shall: must is set.
2
+ # The Federal Plain Language Guidelines (PLAIN 2011) say to use "must" for an obligation: "shall" is ambiguous, read as
3
+ # an obligation, a future or a permission, and courts have read it each way.
4
+ id: requirement-modal-must
5
+ language: en
6
+ entries:
7
+ - { pattern: shall, instead_of: must }
@@ -0,0 +1,9 @@
1
+ # Words that leave a list open (Femmer et al. 2017, open-ended terms; ISO/IEC/IEEE 29148 names "but not limited to").
2
+ # In a requirement the reader cannot tell what else it covers.
3
+ id: requirement-open-end
4
+ language: en
5
+ entries:
6
+ - pattern: etc.
7
+ - pattern: and so on
8
+ - pattern: and the like
9
+ - pattern: but not limited to
@@ -0,0 +1,273 @@
1
+ # -ise and -ize (organise / organize, organisation / organization). pattern is -ise, instead_of -ize.
2
+ # Compared apart from spelling-variant: British writing uses both, and Oxford spelling writes -ize with colour.
3
+ id: spelling-ize
4
+ language: en
5
+ entries:
6
+ - pattern: organise
7
+ instead_of: organize
8
+ - pattern: organises
9
+ instead_of: organizes
10
+ - pattern: organised
11
+ instead_of: organized
12
+ - pattern: organising
13
+ instead_of: organizing
14
+ - pattern: organisation
15
+ instead_of: organization
16
+ - pattern: organisations
17
+ instead_of: organizations
18
+ - pattern: organiser
19
+ instead_of: organizer
20
+ - pattern: organisers
21
+ instead_of: organizers
22
+ - pattern: recognise
23
+ instead_of: recognize
24
+ - pattern: recognises
25
+ instead_of: recognizes
26
+ - pattern: recognised
27
+ instead_of: recognized
28
+ - pattern: recognising
29
+ instead_of: recognizing
30
+ - pattern: realise
31
+ instead_of: realize
32
+ - pattern: realises
33
+ instead_of: realizes
34
+ - pattern: realised
35
+ instead_of: realized
36
+ - pattern: realising
37
+ instead_of: realizing
38
+ - pattern: realisation
39
+ instead_of: realization
40
+ - pattern: prioritise
41
+ instead_of: prioritize
42
+ - pattern: prioritises
43
+ instead_of: prioritizes
44
+ - pattern: prioritised
45
+ instead_of: prioritized
46
+ - pattern: prioritising
47
+ instead_of: prioritizing
48
+ - pattern: prioritisation
49
+ instead_of: prioritization
50
+ - pattern: minimise
51
+ instead_of: minimize
52
+ - pattern: minimises
53
+ instead_of: minimizes
54
+ - pattern: minimised
55
+ instead_of: minimized
56
+ - pattern: minimising
57
+ instead_of: minimizing
58
+ - pattern: maximise
59
+ instead_of: maximize
60
+ - pattern: maximises
61
+ instead_of: maximizes
62
+ - pattern: maximised
63
+ instead_of: maximized
64
+ - pattern: maximising
65
+ instead_of: maximizing
66
+ - pattern: optimise
67
+ instead_of: optimize
68
+ - pattern: optimises
69
+ instead_of: optimizes
70
+ - pattern: optimised
71
+ instead_of: optimized
72
+ - pattern: optimising
73
+ instead_of: optimizing
74
+ - pattern: optimisation
75
+ instead_of: optimization
76
+ - pattern: optimisations
77
+ instead_of: optimizations
78
+ - pattern: customise
79
+ instead_of: customize
80
+ - pattern: customises
81
+ instead_of: customizes
82
+ - pattern: customised
83
+ instead_of: customized
84
+ - pattern: customising
85
+ instead_of: customizing
86
+ - pattern: customisation
87
+ instead_of: customization
88
+ - pattern: customisable
89
+ instead_of: customizable
90
+ - pattern: standardise
91
+ instead_of: standardize
92
+ - pattern: standardises
93
+ instead_of: standardizes
94
+ - pattern: standardised
95
+ instead_of: standardized
96
+ - pattern: standardising
97
+ instead_of: standardizing
98
+ - pattern: standardisation
99
+ instead_of: standardization
100
+ - pattern: summarise
101
+ instead_of: summarize
102
+ - pattern: summarises
103
+ instead_of: summarizes
104
+ - pattern: summarised
105
+ instead_of: summarized
106
+ - pattern: summarising
107
+ instead_of: summarizing
108
+ - pattern: emphasise
109
+ instead_of: emphasize
110
+ - pattern: emphasises
111
+ instead_of: emphasizes
112
+ - pattern: emphasised
113
+ instead_of: emphasized
114
+ - pattern: emphasising
115
+ instead_of: emphasizing
116
+ - pattern: authorise
117
+ instead_of: authorize
118
+ - pattern: authorises
119
+ instead_of: authorizes
120
+ - pattern: authorised
121
+ instead_of: authorized
122
+ - pattern: authorising
123
+ instead_of: authorizing
124
+ - pattern: authorisation
125
+ instead_of: authorization
126
+ - pattern: authorisations
127
+ instead_of: authorizations
128
+ - pattern: categorise
129
+ instead_of: categorize
130
+ - pattern: categorises
131
+ instead_of: categorizes
132
+ - pattern: categorised
133
+ instead_of: categorized
134
+ - pattern: categorising
135
+ instead_of: categorizing
136
+ - pattern: categorisation
137
+ instead_of: categorization
138
+ - pattern: finalise
139
+ instead_of: finalize
140
+ - pattern: finalises
141
+ instead_of: finalizes
142
+ - pattern: finalised
143
+ instead_of: finalized
144
+ - pattern: finalising
145
+ instead_of: finalizing
146
+ - pattern: utilise
147
+ instead_of: utilize
148
+ - pattern: utilises
149
+ instead_of: utilizes
150
+ - pattern: utilised
151
+ instead_of: utilized
152
+ - pattern: utilising
153
+ instead_of: utilizing
154
+ - pattern: utilisation
155
+ instead_of: utilization
156
+ - pattern: apologise
157
+ instead_of: apologize
158
+ - pattern: apologises
159
+ instead_of: apologizes
160
+ - pattern: apologised
161
+ instead_of: apologized
162
+ - pattern: apologising
163
+ instead_of: apologizing
164
+ - pattern: criticise
165
+ instead_of: criticize
166
+ - pattern: criticises
167
+ instead_of: criticizes
168
+ - pattern: criticised
169
+ instead_of: criticized
170
+ - pattern: criticising
171
+ instead_of: criticizing
172
+ - pattern: specialise
173
+ instead_of: specialize
174
+ - pattern: specialises
175
+ instead_of: specializes
176
+ - pattern: specialised
177
+ instead_of: specialized
178
+ - pattern: specialising
179
+ instead_of: specializing
180
+ - pattern: specialisation
181
+ instead_of: specialization
182
+ - pattern: visualise
183
+ instead_of: visualize
184
+ - pattern: visualises
185
+ instead_of: visualizes
186
+ - pattern: visualised
187
+ instead_of: visualized
188
+ - pattern: visualising
189
+ instead_of: visualizing
190
+ - pattern: visualisation
191
+ instead_of: visualization
192
+ - pattern: visualisations
193
+ instead_of: visualizations
194
+ - pattern: initialise
195
+ instead_of: initialize
196
+ - pattern: initialises
197
+ instead_of: initializes
198
+ - pattern: initialised
199
+ instead_of: initialized
200
+ - pattern: initialising
201
+ instead_of: initializing
202
+ - pattern: initialisation
203
+ instead_of: initialization
204
+ - pattern: normalise
205
+ instead_of: normalize
206
+ - pattern: normalises
207
+ instead_of: normalizes
208
+ - pattern: normalised
209
+ instead_of: normalized
210
+ - pattern: normalising
211
+ instead_of: normalizing
212
+ - pattern: normalisation
213
+ instead_of: normalization
214
+ - pattern: synchronise
215
+ instead_of: synchronize
216
+ - pattern: synchronises
217
+ instead_of: synchronizes
218
+ - pattern: synchronised
219
+ instead_of: synchronized
220
+ - pattern: synchronising
221
+ instead_of: synchronizing
222
+ - pattern: synchronisation
223
+ instead_of: synchronization
224
+ - pattern: modernise
225
+ instead_of: modernize
226
+ - pattern: modernises
227
+ instead_of: modernizes
228
+ - pattern: modernised
229
+ instead_of: modernized
230
+ - pattern: modernising
231
+ instead_of: modernizing
232
+ - pattern: modernisation
233
+ instead_of: modernization
234
+ - pattern: digitise
235
+ instead_of: digitize
236
+ - pattern: digitises
237
+ instead_of: digitizes
238
+ - pattern: digitised
239
+ instead_of: digitized
240
+ - pattern: digitising
241
+ instead_of: digitizing
242
+ - pattern: digitisation
243
+ instead_of: digitization
244
+ - pattern: localise
245
+ instead_of: localize
246
+ - pattern: localises
247
+ instead_of: localizes
248
+ - pattern: localised
249
+ instead_of: localized
250
+ - pattern: localising
251
+ instead_of: localizing
252
+ - pattern: localisation
253
+ instead_of: localization
254
+ - pattern: centralise
255
+ instead_of: centralize
256
+ - pattern: centralises
257
+ instead_of: centralizes
258
+ - pattern: centralised
259
+ instead_of: centralized
260
+ - pattern: centralising
261
+ instead_of: centralizing
262
+ - pattern: centralisation
263
+ instead_of: centralization
264
+ - pattern: characterise
265
+ instead_of: characterize
266
+ - pattern: characterises
267
+ instead_of: characterizes
268
+ - pattern: characterised
269
+ instead_of: characterized
270
+ - pattern: characterising
271
+ instead_of: characterizing
272
+ - pattern: characterisation
273
+ instead_of: characterization
@@ -0,0 +1,260 @@
1
+ # British and American spellings of the same word (colour / color, centre / center, travelled / traveled, analyse / analyze).
2
+ # pattern is the British spelling, instead_of the American. Neither is wrong: spelling-consistency points at whichever the
3
+ # document uses less. -ise / -ize is in spelling-ize, compared on its own, since Oxford spelling writes colour and organize.
4
+ # Words with another meaning in one variety are left out: meter (a device), check (a verb), tire (a verb), program, license,
5
+ # practice, judgment (a court's), dialog and analog (in software and electronics), analyses (the plural of analysis).
6
+ id: spelling-variant
7
+ language: en
8
+ entries:
9
+ - pattern: colour
10
+ instead_of: color
11
+ - pattern: colours
12
+ instead_of: colors
13
+ - pattern: coloured
14
+ instead_of: colored
15
+ - pattern: colouring
16
+ instead_of: coloring
17
+ - pattern: colourful
18
+ instead_of: colorful
19
+ - pattern: colourless
20
+ instead_of: colorless
21
+ - pattern: favour
22
+ instead_of: favor
23
+ - pattern: favours
24
+ instead_of: favors
25
+ - pattern: favoured
26
+ instead_of: favored
27
+ - pattern: favouring
28
+ instead_of: favoring
29
+ - pattern: favourable
30
+ instead_of: favorable
31
+ - pattern: favourite
32
+ instead_of: favorite
33
+ - pattern: favourites
34
+ instead_of: favorites
35
+ - pattern: honour
36
+ instead_of: honor
37
+ - pattern: honours
38
+ instead_of: honors
39
+ - pattern: honoured
40
+ instead_of: honored
41
+ - pattern: honouring
42
+ instead_of: honoring
43
+ - pattern: honourable
44
+ instead_of: honorable
45
+ - pattern: labour
46
+ instead_of: labor
47
+ - pattern: labours
48
+ instead_of: labors
49
+ - pattern: laboured
50
+ instead_of: labored
51
+ - pattern: labouring
52
+ instead_of: laboring
53
+ - pattern: behaviour
54
+ instead_of: behavior
55
+ - pattern: behaviours
56
+ instead_of: behaviors
57
+ - pattern: behavioural
58
+ instead_of: behavioral
59
+ - pattern: neighbour
60
+ instead_of: neighbor
61
+ - pattern: neighbours
62
+ instead_of: neighbors
63
+ - pattern: neighbourhood
64
+ instead_of: neighborhood
65
+ - pattern: neighbourhoods
66
+ instead_of: neighborhoods
67
+ - pattern: neighbouring
68
+ instead_of: neighboring
69
+ - pattern: humour
70
+ instead_of: humor
71
+ - pattern: humours
72
+ instead_of: humors
73
+ - pattern: rumour
74
+ instead_of: rumor
75
+ - pattern: rumours
76
+ instead_of: rumors
77
+ - pattern: rumoured
78
+ instead_of: rumored
79
+ - pattern: harbour
80
+ instead_of: harbor
81
+ - pattern: harbours
82
+ instead_of: harbors
83
+ - pattern: endeavour
84
+ instead_of: endeavor
85
+ - pattern: endeavours
86
+ instead_of: endeavors
87
+ - pattern: endeavoured
88
+ instead_of: endeavored
89
+ - pattern: endeavouring
90
+ instead_of: endeavoring
91
+ - pattern: flavour
92
+ instead_of: flavor
93
+ - pattern: flavours
94
+ instead_of: flavors
95
+ - pattern: flavoured
96
+ instead_of: flavored
97
+ - pattern: flavouring
98
+ instead_of: flavoring
99
+ - pattern: vapour
100
+ instead_of: vapor
101
+ - pattern: vapours
102
+ instead_of: vapors
103
+ - pattern: savour
104
+ instead_of: savor
105
+ - pattern: savours
106
+ instead_of: savors
107
+ - pattern: savoury
108
+ instead_of: savory
109
+ - pattern: centre
110
+ instead_of: center
111
+ - pattern: centres
112
+ instead_of: centers
113
+ - pattern: centred
114
+ instead_of: centered
115
+ - pattern: theatre
116
+ instead_of: theater
117
+ - pattern: theatres
118
+ instead_of: theaters
119
+ - pattern: fibre
120
+ instead_of: fiber
121
+ - pattern: fibres
122
+ instead_of: fibers
123
+ - pattern: litre
124
+ instead_of: liter
125
+ - pattern: litres
126
+ instead_of: liters
127
+ - pattern: kilometre
128
+ instead_of: kilometer
129
+ - pattern: kilometres
130
+ instead_of: kilometers
131
+ - pattern: centimetre
132
+ instead_of: centimeter
133
+ - pattern: centimetres
134
+ instead_of: centimeters
135
+ - pattern: millimetre
136
+ instead_of: millimeter
137
+ - pattern: millimetres
138
+ instead_of: millimeters
139
+ - pattern: calibre
140
+ instead_of: caliber
141
+ - pattern: sombre
142
+ instead_of: somber
143
+ - pattern: analyse
144
+ instead_of: analyze
145
+ - pattern: analysed
146
+ instead_of: analyzed
147
+ - pattern: analysing
148
+ instead_of: analyzing
149
+ - pattern: analyser
150
+ instead_of: analyzer
151
+ - pattern: analysers
152
+ instead_of: analyzers
153
+ - pattern: paralyse
154
+ instead_of: paralyze
155
+ - pattern: paralysed
156
+ instead_of: paralyzed
157
+ - pattern: paralysing
158
+ instead_of: paralyzing
159
+ - pattern: catalyse
160
+ instead_of: catalyze
161
+ - pattern: catalysed
162
+ instead_of: catalyzed
163
+ - pattern: catalysing
164
+ instead_of: catalyzing
165
+ - pattern: defence
166
+ instead_of: defense
167
+ - pattern: defences
168
+ instead_of: defenses
169
+ - pattern: offence
170
+ instead_of: offense
171
+ - pattern: offences
172
+ instead_of: offenses
173
+ - pattern: pretence
174
+ instead_of: pretense
175
+ - pattern: pretences
176
+ instead_of: pretenses
177
+ - pattern: travelled
178
+ instead_of: traveled
179
+ - pattern: travelling
180
+ instead_of: traveling
181
+ - pattern: traveller
182
+ instead_of: traveler
183
+ - pattern: travellers
184
+ instead_of: travelers
185
+ - pattern: cancelled
186
+ instead_of: canceled
187
+ - pattern: cancelling
188
+ instead_of: canceling
189
+ - pattern: labelled
190
+ instead_of: labeled
191
+ - pattern: labelling
192
+ instead_of: labeling
193
+ - pattern: modelled
194
+ instead_of: modeled
195
+ - pattern: modelling
196
+ instead_of: modeling
197
+ - pattern: signalled
198
+ instead_of: signaled
199
+ - pattern: signalling
200
+ instead_of: signaling
201
+ - pattern: fuelled
202
+ instead_of: fueled
203
+ - pattern: fuelling
204
+ instead_of: fueling
205
+ - pattern: totalled
206
+ instead_of: totaled
207
+ - pattern: totalling
208
+ instead_of: totaling
209
+ - pattern: catalogue
210
+ instead_of: catalog
211
+ - pattern: catalogues
212
+ instead_of: catalogs
213
+ - pattern: catalogued
214
+ instead_of: cataloged
215
+ - pattern: grey
216
+ instead_of: gray
217
+ - pattern: greys
218
+ instead_of: grays
219
+ - pattern: greyer
220
+ instead_of: grayer
221
+ - pattern: greyest
222
+ instead_of: grayest
223
+ - pattern: aluminium
224
+ instead_of: aluminum
225
+ - pattern: enrol
226
+ instead_of: enroll
227
+ - pattern: enrols
228
+ instead_of: enrolls
229
+ - pattern: enrolment
230
+ instead_of: enrollment
231
+ - pattern: enrolments
232
+ instead_of: enrollments
233
+ - pattern: fulfil
234
+ instead_of: fulfill
235
+ - pattern: fulfils
236
+ instead_of: fulfills
237
+ - pattern: fulfilment
238
+ instead_of: fulfillment
239
+ - pattern: instalment
240
+ instead_of: installment
241
+ - pattern: instalments
242
+ instead_of: installments
243
+ - pattern: acknowledgement
244
+ instead_of: acknowledgment
245
+ - pattern: acknowledgements
246
+ instead_of: acknowledgments
247
+ - pattern: ageing
248
+ instead_of: aging
249
+ - pattern: manoeuvre
250
+ instead_of: maneuver
251
+ - pattern: manoeuvres
252
+ instead_of: maneuvers
253
+ - pattern: paediatric
254
+ instead_of: pediatric
255
+ - pattern: paediatrics
256
+ instead_of: pediatrics
257
+ - pattern: anaesthesia
258
+ instead_of: anesthesia
259
+ - pattern: oestrogen
260
+ instead_of: estrogen
@@ -0,0 +1,10 @@
1
+ # Pointing at a clause by where it is instead of by its number (JIS Z 8301:2019 10.6 avoids "the clause below").
2
+ # instead_of names the kind in the message. Only a document that numbers its clauses or chapters (a numbered article
3
+ # or chapter in its structure tree) is checked. Matched in any case.
4
+ id: vague-clause-pointer
5
+ language: en
6
+ entries:
7
+ - { pattern: the above clause, instead_of: clause }
8
+ - { pattern: the clause above, instead_of: clause }
9
+ - { pattern: the below clause, instead_of: clause }
10
+ - { pattern: the clause below, instead_of: clause }
@@ -0,0 +1,14 @@
1
+ # Pointing at a figure or a table by where it is instead of by its number (JIS Z 8301:2019 10.6 avoids "the figure
2
+ # above"). instead_of names the kind it points at, as figure-label names it (Figure, Table). Only a document that
3
+ # numbers that kind is checked. Matched in any case.
4
+ id: vague-figure-pointer
5
+ language: en
6
+ entries:
7
+ - { pattern: the above figure, instead_of: Figure }
8
+ - { pattern: the figure above, instead_of: Figure }
9
+ - { pattern: the below figure, instead_of: Figure }
10
+ - { pattern: the figure below, instead_of: Figure }
11
+ - { pattern: the above table, instead_of: Table }
12
+ - { pattern: the table above, instead_of: Table }
13
+ - { pattern: the below table, instead_of: Table }
14
+ - { pattern: the table below, instead_of: Table }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chaffjs/lang-en",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "English language adapter for chaff",
5
5
  "license": "MIT",
6
6
  "author": "isamu",
@@ -37,7 +37,9 @@ export const definitions = (text: string): Mention[] =>
37
37
  const term = match.groups?.["term"];
38
38
  if (term === undefined) return [];
39
39
  const end = match.index + match[0].length;
40
- const namesAParty = match[0].startsWith("(") && APPLIES.test(text);
41
- return [{ start: match.index, end, attrs: { term, ...(isPointer(text, end) || namesAParty ? { scope: "local" } : {}) } }];
40
+ const inline = match[0].startsWith("(");
41
+ const namesAParty = inline && APPLIES.test(text);
42
+ const scope = isPointer(text, end) || namesAParty ? { scope: "local" } : {};
43
+ return [{ start: match.index, end, attrs: { term, ...scope, ...(inline ? { placement: "inline" } : {}) } }];
42
44
  }),
43
45
  );
package/src/lexicons.ts CHANGED
@@ -14,11 +14,15 @@ const toEntry = (raw: unknown): LexiconEntry | undefined => {
14
14
  if (!isRecord(raw) || typeof raw["pattern"] !== "string") return undefined;
15
15
  const weight = raw["weight"];
16
16
  const instead = raw["instead_of"];
17
+ const rewrite = raw["rewrite"];
18
+ const group = raw["group"];
17
19
  return {
18
20
  pattern: raw["pattern"],
19
21
  weight: typeof weight === "number" ? weight : undefined,
20
22
  instead_of: typeof instead === "string" ? instead : undefined,
21
23
  position: POSITIONS.find((position) => position === raw["position"]),
24
+ rewrite: typeof rewrite === "string" ? rewrite : undefined,
25
+ ...(typeof group === "string" ? { group } : {}),
22
26
  };
23
27
  };
24
28