Skip to content

Commit 17143ef

Browse files
aborazmehazu
andauthored
add some characters including bidi formatting characters (#14)
* add some characters including bidi formatting characters * Update package.json --------- Co-authored-by: azu <[email protected]>
1 parent a86aea2 commit 17143ef

File tree

2 files changed

+172
-1
lines changed

2 files changed

+172
-1
lines changed

src/CONTROL_CHARACTERS.js

+164
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,170 @@ const CONTROL_CHARACTERS = [
104104
{
105105
code: "\u001A",
106106
name: "SUBSTITUTE"
107+
},
108+
{
109+
code: "\u001B",
110+
name: "ESCAPE"
111+
},
112+
{
113+
code: "\u001C",
114+
name: "INFORMATION SEPARATOR FOUR"
115+
},
116+
{
117+
code: "\u001D",
118+
name: "INFORMATION SEPARATOR THREE"
119+
},
120+
{
121+
code: "\u001E",
122+
name: "INFORMATION SEPARATOR TWO"
123+
},
124+
{
125+
code: "\u001F",
126+
name: "INFORMATION SEPARATOR ONE"
127+
},
128+
{
129+
code: "\u007F",
130+
name: "DELETE"
131+
},
132+
{
133+
code: "\u0080",
134+
name: "PADDING CHARACTER"
135+
},
136+
{
137+
code: "\u0081",
138+
name: "HIGH OCTET PRESET"
139+
},
140+
{
141+
code: "\u0082",
142+
name: "BREAK PERMITTED HERE"
143+
},
144+
{
145+
code: "\u0083",
146+
name: "NO BREAK HERE"
147+
},
148+
{
149+
code: "\u0084",
150+
name: "INDEX"
151+
},
152+
{
153+
code: "\u0085",
154+
name: "NEXT LINE (NEL)"
155+
},
156+
{
157+
code: "\u0086",
158+
name: "START OF SELECTED AREA"
159+
},
160+
{
161+
code: "\u0087",
162+
name: "END OF SELECTED AREA"
163+
},
164+
{
165+
code: "\u0088",
166+
name: "CHARACTER TABULATION SET"
167+
},
168+
{
169+
code: "\u0089",
170+
name: "CHARACTER TABULATION WITH JUSTIFICATION"
171+
},
172+
{
173+
code: "\u008A",
174+
name: "LINE TABULATION SET"
175+
},
176+
{
177+
code: "\u008B",
178+
name: "PARTIAL LINE FORWARD"
179+
},
180+
{
181+
code: "\u008C",
182+
name: "PARTIAL LINE BACKWARD"
183+
},
184+
{
185+
code: "\u008D",
186+
name: "REVERSE LINE FEED"
187+
},
188+
{
189+
code: "\u008E",
190+
name: "SINGLE SHIFT TWO"
191+
},
192+
{
193+
code: "\u008F",
194+
name: "SINGLE SHIFT THREE"
195+
},
196+
{
197+
code: "\u0090",
198+
name: "DEVICE CONTROL STRING"
199+
},
200+
{
201+
code: "\u0091",
202+
name: "PRIVATE USE ONE"
203+
},
204+
{
205+
code: "\u0092",
206+
name: "PRIVATE USE TWO"
207+
},
208+
{
209+
code: "\u0093",
210+
name: "SET TRANSMIT STATE"
211+
},
212+
{
213+
code: "\u0094",
214+
name: "CANCEL CHARACTER"
215+
},
216+
{
217+
code: "\u0095",
218+
name: "MESSAGE WAITING"
219+
},
220+
{
221+
code: "\u0096",
222+
name: "START OF GUARDED AREA"
223+
},
224+
{
225+
code: "\u0097",
226+
name: "END OF GUARDED AREA"
227+
},
228+
{
229+
code: "\u0098",
230+
name: "START OF STRING"
231+
},
232+
{
233+
code: "\u0099",
234+
name: "SINGLE GRAPHIC CHARACTER INTRODUCER"
235+
},
236+
{
237+
code: "\u009A",
238+
name: "SINGLE CHARACTER INTRODUCER"
239+
},
240+
{
241+
code: "\u009B",
242+
name: "CONTROL SEQUENCE INTRODUCER"
243+
},
244+
{
245+
code: "\u009C",
246+
name: "STRING TERMINATOR"
247+
},
248+
{
249+
code: "\u009D",
250+
name: "OPERATING SYSTEM COMMAND"
251+
},
252+
{
253+
code: "\u009E",
254+
name: "PRIVACY MESSAGE"
255+
},
256+
{
257+
code: "\u009F",
258+
name: "APPLICATION PROGRAM COMMAND"
259+
},
260+
{
261+
code: "\u202C",
262+
name: "POP DIRECTIONAL FORMATTING"
263+
},
264+
{
265+
code: "\u202D",
266+
name: "LEFT-TO-RIGHT OVERRIDE"
267+
},
268+
{
269+
code: "\u202E",
270+
name: "RIGHT-TO-LEFT OVERRIDE"
107271
}
108272
];
109273

src/textlint-rule-no-invalid-control-character.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,14 @@ const reporter = (context, options = {}) => {
4040
const checkNode = (node) => {
4141
const text = getSource(node);
4242
// Ignore \r \n \t
43-
const controlCharacterPattern = /([\x00-\x08\x0B\x0C\x0E-\x1F\x7F])/g;
43+
const asciiControlCharacters = "\x00-\x08\x0B\x0C\x0E-\x1F\x7F";
44+
const c1ControlCharacters = "\x80-\x89\x8A-\x9F";
45+
const bidiFormattingCharacters = "\u202A-\u202E";
46+
const controlCharacterPattern = new RegExp(
47+
`([${asciiControlCharacters}${c1ControlCharacters}${bidiFormattingCharacters}])`,
48+
"g"
49+
);
50+
4451
/**
4552
* @type {Array<{match:string, sub:string[], index:number}>}
4653
*/

0 commit comments

Comments
 (0)