textlint-rule-preset-jtf-style
Advanced tools
Comparing version
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -18,9 +19,6 @@ 1.1.1.本文 | ||
*/ | ||
var _analyzeDesumasuDearu = require("analyze-desumasu-dearu"); | ||
var _textlintRuleHelper = require("textlint-rule-helper"); | ||
module.exports = function (context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -31,25 +29,20 @@ RuleError, | ||
} = context; | ||
var helper = new _textlintRuleHelper.RuleHelper(context); | ||
var desumasuList = []; | ||
var dearuList = []; | ||
function reportResult(list, _ref) { | ||
var { | ||
desumasu, | ||
dearu | ||
} = _ref; | ||
list.forEach(_ref2 => { | ||
var { | ||
node, | ||
matches | ||
} = _ref2; | ||
let helper = new _textlintRuleHelper.RuleHelper(context); | ||
let desumasuList = []; | ||
let dearuList = []; | ||
function reportResult(list, { | ||
desumasu, | ||
dearu | ||
}) { | ||
list.forEach(({ | ||
node, | ||
matches | ||
}) => { | ||
matches.forEach(match => { | ||
var message; | ||
let message; | ||
if (desumasu) { | ||
message = "\u672C\u6587\u3092\u5E38\u4F53(\u3067\u3042\u308B\u8ABF)\u306B\u7D71\u4E00\u3057\u3066\u4E0B\u3055\u3044\u3002\n\u672C\u6587\u306E\u6587\u4F53\u306F\u3001\u656C\u4F53(\u3067\u3059\u307E\u3059\u8ABF)\u3042\u308B\u3044\u306F\u5E38\u4F53(\u3067\u3042\u308B\u8ABF)\u306E\u3069\u3061\u3089\u304B\u3067\u7D71\u4E00\u3057\u307E\u3059\u3002\n\"".concat(match.value, "\"\u304C\u656C\u4F53(\u3067\u3059\u307E\u3059\u8ABF)\u3067\u3059\u3002"); | ||
message = `本文を常体(である調)に統一して下さい。\n本文の文体は、敬体(ですます調)あるいは常体(である調)のどちらかで統一します。\n"${match.value}"が敬体(ですます調)です。`; | ||
} else if (dearu) { | ||
message = "\u672C\u6587\u3092\u656C\u4F53(\u3067\u3059\u307E\u3059\u8ABF)\u306B\u7D71\u4E00\u3057\u3066\u4E0B\u3055\u3044\u3002\n\u672C\u6587\u306E\u6587\u4F53\u306F\u3001\u656C\u4F53(\u3067\u3059\u307E\u3059\u8ABF)\u3042\u308B\u3044\u306F\u5E38\u4F53(\u3067\u3042\u308B\u8ABF)\u306E\u3069\u3061\u3089\u304B\u3067\u7D71\u4E00\u3057\u307E\u3059\u3002\n\"".concat(match.value, "\"\u304C\u5E38\u4F53(\u3067\u3042\u308B\u8ABF)\u3067\u3059\u3002"); | ||
message = `本文を敬体(ですます調)に統一して下さい。\n本文の文体は、敬体(ですます調)あるいは常体(である調)のどちらかで統一します。\n"${match.value}"が常体(である調)です。`; | ||
} | ||
report(node, new RuleError(message, { | ||
@@ -62,3 +55,2 @@ line: match.lineNumber - 1, | ||
} | ||
return { | ||
@@ -69,3 +61,2 @@ [Syntax.Document]() { | ||
}, | ||
[Syntax.Str](node) { | ||
@@ -76,12 +67,9 @@ // 本文以外は無視する | ||
return; | ||
} // Listについては1.1.3. 箇条書きで扱う | ||
} | ||
// Listについては1.1.3. 箇条書きで扱う | ||
if (helper.isChildNode(node, [Syntax.ListItem])) { | ||
return; | ||
} | ||
var text = getSource(node); | ||
var retDesumasu = (0, _analyzeDesumasuDearu.analyzeDesumasu)(text); | ||
let text = getSource(node); | ||
let retDesumasu = (0, _analyzeDesumasuDearu.analyzeDesumasu)(text); | ||
if (retDesumasu.length > 0) { | ||
@@ -93,5 +81,3 @@ desumasuList.push({ | ||
} | ||
var retDearu = (0, _analyzeDesumasuDearu.analyzeDearu)(text); | ||
let retDearu = (0, _analyzeDesumasuDearu.analyzeDearu)(text); | ||
if (retDearu.length > 0) { | ||
@@ -104,21 +90,12 @@ dearuList.push({ | ||
}, | ||
["".concat(Syntax.Document, ":exit")]() { | ||
var desumasuCount = desumasuList.reduce((count, _ref3) => { | ||
var { | ||
matches | ||
} = _ref3; | ||
return count + matches.length; | ||
}, 0); | ||
var dearuCount = dearuList.reduce((count, _ref4) => { | ||
var { | ||
matches | ||
} = _ref4; | ||
return count + matches.length; | ||
}, 0); | ||
[`${Syntax.Document}:exit`]() { | ||
let desumasuCount = desumasuList.reduce((count, { | ||
matches | ||
}) => count + matches.length, 0); | ||
let dearuCount = dearuList.reduce((count, { | ||
matches | ||
}) => count + matches.length, 0); | ||
if (desumasuCount === 0 || dearuCount === 0) { | ||
return; | ||
} | ||
if (desumasuCount > dearuCount) { | ||
@@ -138,5 +115,4 @@ reportResult(dearuList, { | ||
} | ||
}; | ||
}; | ||
//# sourceMappingURL=1.1.1.js.map |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -19,7 +20,5 @@ 1.1.2.見出し | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
function mixer(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -36,8 +35,6 @@ RuleError, | ||
} | ||
var text = getSource(node); // Headerの末尾には。をつけない | ||
var matchReg = /。(\s*?)$/; | ||
var index = text.search(matchReg); | ||
let text = getSource(node); | ||
// Headerの末尾には。をつけない | ||
let matchReg = /。(\s*?)$/; | ||
let index = text.search(matchReg); | ||
if (index !== -1) { | ||
@@ -48,9 +45,7 @@ report(node, new RuleError("見出しの文末には、句点(。)を付けません。", { | ||
})); | ||
} // TODO: いずれの場合も、すべての見出しを通して複数の文体をできるだけ混在させないことが重要です。 | ||
} | ||
// TODO: いずれの場合も、すべての見出しを通して複数の文体をできるだけ混在させないことが重要です。 | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -57,0 +52,0 @@ linter: mixer, |
119
lib/1.1.3.js
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -12,7 +13,5 @@ 1.1.3.箇条書き | ||
*/ | ||
var _analyzeDesumasuDearu = require("analyze-desumasu-dearu"); | ||
module.exports = function (context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -23,9 +22,8 @@ RuleError, | ||
} = context; | ||
var desumasuList = []; | ||
var dearuList = []; // 。付きのListItem | ||
var withPointList = []; // 。なしのListItem | ||
var withoutPointList = []; | ||
let desumasuList = []; | ||
let dearuList = []; | ||
// 。付きのListItem | ||
let withPointList = []; | ||
// 。なしのListItem | ||
let withoutPointList = []; | ||
function resetList() { | ||
@@ -37,39 +35,30 @@ dearuList = []; | ||
} | ||
function reportPointResult(nodeList, _ref) { | ||
var { | ||
shouldUsePoint | ||
} = _ref; | ||
function reportPointResult(nodeList, { | ||
shouldUsePoint | ||
}) { | ||
nodeList.forEach(node => { | ||
var message; | ||
let message; | ||
if (shouldUsePoint) { | ||
message = "\u7B87\u6761\u66F8\u304D\u306E\u6587\u672B\u306B\u53E5\u70B9(\u3002)\u3092\u4ED8\u3051\u3066\u4E0B\u3055\u3044\u3002\n\u7B87\u6761\u66F8\u304D\u306E\u6587\u672B\u306B\u53E5\u70B9(\u3002)\u3092\u4ED8\u3051\u308B\u304B\u3092\u7D71\u4E00\u3057\u307E\u3059\u3002"; | ||
message = `箇条書きの文末に句点(。)を付けて下さい。\n箇条書きの文末に句点(。)を付けるかを統一します。`; | ||
} else { | ||
message = "\u7B87\u6761\u66F8\u304D\u306E\u6587\u672B\u304B\u3089\u53E5\u70B9(\u3002)\u3092\u5916\u3057\u3066\u4E0B\u3055\u3044\u3002\n\u7B87\u6761\u66F8\u304D\u306E\u6587\u672B\u306B\u53E5\u70B9(\u3002)\u3092\u4ED8\u3051\u308B\u304B\u3092\u7D71\u4E00\u3057\u307E\u3059\u3002"; | ||
message = `箇条書きの文末から句点(。)を外して下さい。\n箇条書きの文末に句点(。)を付けるかを統一します。`; | ||
} | ||
report(node, new RuleError(message)); | ||
}); | ||
} | ||
function reportDesumaruDearuResult(list, _ref2) { | ||
var { | ||
desumasu, | ||
dearu | ||
} = _ref2; | ||
list.forEach(_ref3 => { | ||
var { | ||
node, | ||
matches | ||
} = _ref3; | ||
function reportDesumaruDearuResult(list, { | ||
desumasu, | ||
dearu | ||
}) { | ||
list.forEach(({ | ||
node, | ||
matches | ||
}) => { | ||
matches.forEach(match => { | ||
var message; | ||
let message; | ||
if (desumasu) { | ||
message = "\u7B87\u6761\u66F8\u304D\u3092\u656C\u4F53(\u3067\u3059\u307E\u3059\u8ABF)\u306B\u7D71\u4E00\u3057\u3066\u4E0B\u3055\u3044\u3002\n\u3072\u3068\u307E\u3068\u307E\u308A\u306E\u7B87\u6761\u66F8\u304D\u3067\u306F\u3001\u656C\u4F53\u3068\u5E38\u4F53\u3092\u6DF7\u5728\u3055\u305B\u307E\u305B\u3093\u3002\n\"".concat(match.value, "\"\u304C\u5E38\u4F53(\u3067\u3042\u308B\u8ABF)\u3067\u3059\u3002"); | ||
message = `箇条書きを敬体(ですます調)に統一して下さい。\nひとまとまりの箇条書きでは、敬体と常体を混在させません。\n"${match.value}"が常体(である調)です。`; | ||
} else if (dearu) { | ||
message = "\u7B87\u6761\u66F8\u304D\u3092\u5E38\u4F53(\u3067\u3042\u308B\u8ABF)\u306B\u7D71\u4E00\u3057\u3066\u4E0B\u3055\u3044\u3002\n\u3072\u3068\u307E\u3068\u307E\u308A\u306E\u7B87\u6761\u66F8\u304D\u3067\u306F\u3001\u656C\u4F53\u3068\u5E38\u4F53\u3092\u6DF7\u5728\u3055\u305B\u307E\u305B\u3093\u3002\n\"".concat(match.value, "\"\u304C\u656C\u4F53(\u3067\u3059\u307E\u3059\u8ABF)\u3067\u3059\u3002"); | ||
message = `箇条書きを常体(である調)に統一して下さい。\nひとまとまりの箇条書きでは、敬体と常体を混在させません。\n"${match.value}"が敬体(ですます調)です。`; | ||
} | ||
report(node, new RuleError(message, { | ||
@@ -81,5 +70,5 @@ line: match.lineNumber - 1, | ||
}); | ||
} // 末尾に。があるかが統一されているのチェック | ||
} | ||
// 末尾に。があるかが統一されているのチェック | ||
function countingPoint(withPointList, withoutPointList) { | ||
@@ -89,3 +78,2 @@ if (withPointList.length === 0 || withoutPointList.length === 0) { | ||
} | ||
if (withPointList.length > withoutPointList.length) { | ||
@@ -107,24 +95,16 @@ // 。ありに統一 | ||
} | ||
} // 敬体(ですます調)あるいは常体(である調)なのかのチェック | ||
} | ||
// 敬体(ですます調)あるいは常体(である調)なのかのチェック | ||
function countingDesumasuDearu(desumasuList, dearuList) { | ||
var desumasuCount = desumasuList.reduce((count, _ref4) => { | ||
var { | ||
matches | ||
} = _ref4; | ||
return count + matches.length; | ||
}, 0); | ||
var dearuCount = dearuList.reduce((count, _ref5) => { | ||
var { | ||
matches | ||
} = _ref5; | ||
return count + matches.length; | ||
}, 0); | ||
let desumasuCount = desumasuList.reduce((count, { | ||
matches | ||
}) => count + matches.length, 0); | ||
let dearuCount = dearuList.reduce((count, { | ||
matches | ||
}) => count + matches.length, 0); | ||
if (desumasuCount === 0 || dearuCount === 0) { | ||
return; | ||
} // ですます優先 | ||
} | ||
// ですます優先 | ||
if (desumasuCount > dearuCount) { | ||
@@ -146,3 +126,2 @@ reportDesumaruDearuResult(dearuList, { | ||
} | ||
return { | ||
@@ -152,8 +131,6 @@ [Syntax.List](node) { | ||
}, | ||
[Syntax.ListItem](node) { | ||
var text = getSource(node); // 末尾に。があるかが統一されているのチェック | ||
var matchPointReg = /。(\s*?)$/; | ||
let text = getSource(node); | ||
// 末尾に。があるかが統一されているのチェック | ||
let matchPointReg = /。(\s*?)$/; | ||
if (matchPointReg.test(text)) { | ||
@@ -165,7 +142,5 @@ // 。あり | ||
withoutPointList.push(node); | ||
} // 敬体(ですます調)あるいは常体(である調)なのかのチェック | ||
var retDesumasu = (0, _analyzeDesumasuDearu.analyzeDesumasu)(text); | ||
} | ||
// 敬体(ですます調)あるいは常体(である調)なのかのチェック | ||
let retDesumasu = (0, _analyzeDesumasuDearu.analyzeDesumasu)(text); | ||
if (retDesumasu.length > 0) { | ||
@@ -177,5 +152,3 @@ desumasuList.push({ | ||
} | ||
var retDearu = (0, _analyzeDesumasuDearu.analyzeDearu)(text); | ||
let retDearu = (0, _analyzeDesumasuDearu.analyzeDearu)(text); | ||
if (retDearu.length > 0) { | ||
@@ -188,10 +161,8 @@ dearuList.push({ | ||
}, | ||
["".concat(Syntax.List, ":exit")](node) { | ||
[`${Syntax.List}:exit`](node) { | ||
countingPoint(withPointList, withoutPointList); | ||
countingDesumasuDearu(desumasuList, dearuList); | ||
} | ||
}; | ||
}; | ||
//# sourceMappingURL=1.1.3.js.map |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -11,7 +12,5 @@ 1.1.5.図表のキャプション | ||
*/ | ||
var _analyzeDesumasuDearu = require("analyze-desumasu-dearu"); | ||
module.exports = function (context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -22,5 +21,4 @@ RuleError, | ||
} = context; | ||
var desumasuList = []; | ||
var dearuList = []; | ||
let desumasuList = []; | ||
let dearuList = []; | ||
function resetState() { | ||
@@ -30,24 +28,18 @@ desumasuList = []; | ||
} | ||
var imagePaddingLet = 2; // ![ の分paddingを付ける | ||
function reportResult(list, _ref) { | ||
var { | ||
desumasu, | ||
dearu | ||
} = _ref; | ||
list.forEach(_ref2 => { | ||
var { | ||
node, | ||
matches | ||
} = _ref2; | ||
const imagePaddingLet = 2; // ![ の分paddingを付ける | ||
function reportResult(list, { | ||
desumasu, | ||
dearu | ||
}) { | ||
list.forEach(({ | ||
node, | ||
matches | ||
}) => { | ||
matches.forEach(match => { | ||
var message; | ||
let message; | ||
if (desumasu) { | ||
message = "\u56F3\u8868\u306E\u30AD\u30E3\u30D7\u30B7\u30E7\u30F3\u3092\u656C\u4F53(\u3067\u3059\u307E\u3059\u8ABF)\u306B\u7D71\u4E00\u3057\u3066\u4E0B\u3055\u3044\u3002\n\u56F3\u8868\u306E\u30AD\u30E3\u30D7\u30B7\u30E7\u30F3\u5185\u3067\u656C\u4F53\u3001\u5E38\u4F53\u3092\u6DF7\u5728\u3055\u305B\u306A\u3044\u3053\u3068\u304C\u91CD\u8981\u3067\u3059\u3002\n\"".concat(match.value, "\"\u304C\u5E38\u4F53(\u3067\u3042\u308B\u8ABF)\u3067\u3059\u3002"); | ||
message = `図表のキャプションを敬体(ですます調)に統一して下さい。\n図表のキャプション内で敬体、常体を混在させないことが重要です。\n"${match.value}"が常体(である調)です。`; | ||
} else if (dearu) { | ||
message = "\u56F3\u8868\u306E\u30AD\u30E3\u30D7\u30B7\u30E7\u30F3\u3092\u5E38\u4F53(\u3067\u3042\u308B\u8ABF)\u306B\u7D71\u4E00\u3057\u3066\u4E0B\u3055\u3044\u3002\n\u56F3\u8868\u306E\u30AD\u30E3\u30D7\u30B7\u30E7\u30F3\u5185\u3067\u656C\u4F53\u3001\u5E38\u4F53\u3092\u6DF7\u5728\u3055\u305B\u306A\u3044\u3053\u3068\u304C\u91CD\u8981\u3067\u3059\u3002\n\"".concat(match.value, "\"\u304C\u656C\u4F53(\u3067\u3059\u307E\u3059\u8ABF)\u3067\u3059\u3002"); | ||
message = `図表のキャプションを常体(である調)に統一して下さい。\n図表のキャプション内で敬体、常体を混在させないことが重要です。\n"${match.value}"が敬体(ですます調)です。`; | ||
} | ||
report(node, new RuleError(message, { | ||
@@ -60,15 +52,11 @@ line: match.lineNumber - 1, | ||
} | ||
return { | ||
[Syntax.Document]: resetState, | ||
[Syntax.Image](node) { | ||
var text = node.alt; // alt がない場合は無視する | ||
let text = node.alt; | ||
// alt がない場合は無視する | ||
if (text === undefined || text === null) { | ||
return; | ||
} | ||
var retDesumasu = (0, _analyzeDesumasuDearu.analyzeDesumasu)(text); | ||
let retDesumasu = (0, _analyzeDesumasuDearu.analyzeDesumasu)(text); | ||
if (retDesumasu.length > 0) { | ||
@@ -80,5 +68,3 @@ desumasuList.push({ | ||
} | ||
var retDearu = (0, _analyzeDesumasuDearu.analyzeDearu)(text); | ||
let retDearu = (0, _analyzeDesumasuDearu.analyzeDearu)(text); | ||
if (retDearu.length > 0) { | ||
@@ -91,21 +77,12 @@ dearuList.push({ | ||
}, | ||
["".concat(Syntax.Document, ":exit")]() { | ||
var desumasuCount = desumasuList.reduce((count, _ref3) => { | ||
var { | ||
matches | ||
} = _ref3; | ||
return count + matches.length; | ||
}, 0); | ||
var dearuCount = dearuList.reduce((count, _ref4) => { | ||
var { | ||
matches | ||
} = _ref4; | ||
return count + matches.length; | ||
}, 0); | ||
[`${Syntax.Document}:exit`]() { | ||
let desumasuCount = desumasuList.reduce((count, { | ||
matches | ||
}) => count + matches.length, 0); | ||
let dearuCount = dearuList.reduce((count, { | ||
matches | ||
}) => count + matches.length, 0); | ||
if (desumasuCount === 0 || dearuCount === 0) { | ||
return; | ||
} | ||
if (desumasuCount > dearuCount) { | ||
@@ -125,5 +102,4 @@ reportResult(dearuList, { | ||
} | ||
}; | ||
}; | ||
//# sourceMappingURL=1.1.5.js.map |
@@ -5,18 +5,8 @@ // LICENSE : MIT | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _matchIndex = require("match-index"); | ||
var _mergeMatches = _interopRequireDefault(require("./util/merge-matches")); | ||
var _nodeUtil = require("./util/node-util"); | ||
var _templateObject, _templateObject2; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
/* | ||
@@ -29,13 +19,18 @@ 1.2.1. 句点(。)と読点(、) | ||
// [,.]{日本語} | ||
var leftTarget = rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ([,.])\n ", "\n "], ["\n ([,\\.])\n ", "\n "])), _regexp.japaneseRegExp); // {日本語}[,.] | ||
var rightTarget = rx(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", "\n ([,.])\n "], ["\n ", "\n ([,\\.])\n "])), _regexp.japaneseRegExp); // . => 。 の置換マップ | ||
var replaceSymbol = { | ||
const leftTarget = rx` | ||
([,\.]) | ||
${_regexp.japaneseRegExp} | ||
`; | ||
// {日本語}[,.] | ||
const rightTarget = rx` | ||
${_regexp.japaneseRegExp} | ||
([,\.]) | ||
`; | ||
// . => 。 の置換マップ | ||
const replaceSymbol = { | ||
".": "。", | ||
",": "、" | ||
}; | ||
var reporter = context => { | ||
var { | ||
const reporter = context => { | ||
let { | ||
Syntax, | ||
@@ -52,10 +47,9 @@ RuleError, | ||
} | ||
var text = getSource(node); | ||
var leftMatches = (0, _matchIndex.matchCaptureGroupAll)(text, leftTarget); | ||
var rightMatches = (0, _matchIndex.matchCaptureGroupAll)(text, rightTarget); | ||
var matches = (0, _mergeMatches.default)(leftMatches, rightMatches); | ||
const text = getSource(node); | ||
const leftMatches = (0, _matchIndex.matchCaptureGroupAll)(text, leftTarget); | ||
const rightMatches = (0, _matchIndex.matchCaptureGroupAll)(text, rightTarget); | ||
const matches = (0, _mergeMatches.default)(leftMatches, rightMatches); | ||
matches.forEach(match => { | ||
var symbol = replaceSymbol[match.text]; | ||
var indexOfSymbol = match.index; | ||
const symbol = replaceSymbol[match.text]; | ||
const indexOfSymbol = match.index; | ||
report(node, new RuleError("句読点には全角の「、」と「。」を使います。和文の句読点としてピリオド(.)とカンマ(,)を使用しません。", { | ||
@@ -67,6 +61,4 @@ index: indexOfSymbol, | ||
} | ||
}; | ||
}; | ||
module.exports = { | ||
@@ -73,0 +65,0 @@ linter: reporter, |
@@ -5,3 +5,2 @@ // LICENSE : MIT | ||
var _nodeUtil = require("./util/node-util"); | ||
/* | ||
@@ -12,10 +11,10 @@ 1.2.2. ピリオド(.)とカンマ(,) | ||
*/ | ||
// . => 。 の置換マップ | ||
var replaceSymbol = { | ||
const replaceSymbol = { | ||
".": ".", | ||
",": "," | ||
}; | ||
function report(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -32,8 +31,7 @@ RuleError, | ||
} | ||
var text = getSource(node); // 1.2.2. ピリオド(.)とカンマ(,) | ||
let text = getSource(node); | ||
// 1.2.2. ピリオド(.)とカンマ(,) | ||
if (/[.,]/.test(text)) { | ||
var index = text.search(/[.,]/); | ||
var symbol = replaceSymbol[text[index]]; | ||
const index = text.search(/[.,]/); | ||
const symbol = replaceSymbol[text[index]]; | ||
report(node, new RuleError("全角のピリオドとカンマは使用しません。", { | ||
@@ -45,6 +43,4 @@ index: index, | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -51,0 +47,0 @@ linter: report, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -8,9 +9,6 @@ 2.1.10.算用数字の位取りの表記 | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -27,16 +25,14 @@ RuleError, | ||
} | ||
var text = getSource(node); // 数字,で絞って | ||
var numberWithComma = /([\d,]+)/g; // 0,xxx な文字列を検出する | ||
var strictMatchReg = /^0+(,)\d+$/; | ||
var match; | ||
let text = getSource(node); | ||
// 数字,で絞って | ||
let numberWithComma = /([\d,]+)/g; | ||
// 0,xxx な文字列を検出する | ||
let strictMatchReg = /^0+(,)\d+$/; | ||
let match; | ||
while (match = numberWithComma.exec(text)) { | ||
// この段階では 10,000 も含まれている | ||
// ^0,xxx をだけを取り出す | ||
var matchedString = match[0]; | ||
let matchedString = match[0]; | ||
(0, _matchIndex.matchCaptureGroupAll)(matchedString, strictMatchReg).forEach(subMatch => { | ||
var { | ||
const { | ||
index | ||
@@ -51,6 +47,4 @@ } = subMatch; | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -57,0 +51,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -9,7 +10,4 @@ 2.1.2.漢字 | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _regexp = require("./util/regexp"); | ||
// http://qiita.com/YusukeHirao/items/2f0fb8d5bbb981101be0 | ||
@@ -19,11 +17,8 @@ function stringToArray(value) { | ||
} | ||
var JOYOKANJI = ["亜", "哀", "挨", "愛", "曖", "悪", "握", "圧", "扱", "宛", "嵐", "安", "案", "暗", "以", "衣", "位", "囲", "医", "依", "委", "威", "為", "畏", "胃", "尉", "異", "移", "萎", "偉", "椅", "彙", "意", "違", "維", "慰", "遺", "緯", "域", "育", "一", "壱", "逸", "茨", "芋", "引", "印", "因", "咽", "姻", "員", "院", "淫", "陰", "飲", "隠", "韻", "右", "宇", "羽", "雨", "唄", "鬱", "畝", "浦", "運", "雲", "永", "泳", "英", "映", "栄", "営", "詠", "影", "鋭", "衛", "易", "疫", "益", "液", "駅", "悦", "越", "謁", "閲", "円", "延", "沿", "炎", "怨", "宴", "媛", "援", "園", "煙", "猿", "遠", "鉛", "塩", "演", "縁", "艶", "汚", "王", "凹", "央", "応", "往", "押", "旺", "欧", "殴", "桜", "翁", "奥", "横", "岡", "屋", "億", "憶", "臆", "虞", "乙", "俺", "卸", "音", "恩", "温", "穏", "下", "化", "火", "加", "可", "仮", "何", "花", "佳", "価", "果", "河", "苛", "科", "架", "夏", "家", "荷", "華", "菓", "貨", "渦", "過", "嫁", "暇", "禍", "靴", "寡", "歌", "箇", "稼", "課", "蚊", "牙", "瓦", "我", "画", "芽", "賀", "雅", "餓", "介", "回", "灰", "会", "快", "戒", "改", "怪", "拐", "悔", "海", "界", "皆", "械", "絵", "開", "階", "塊", "楷", "解", "潰", "壊", "懐", "諧", "貝", "外", "劾", "害", "崖", "涯", "街", "慨", "蓋", "該", "概", "骸", "垣", "柿", "各", "角", "拡", "革", "格", "核", "殻", "郭", "覚", "較", "隔", "閣", "確", "獲", "嚇", "穫", "学", "岳", "楽", "額", "顎", "掛", "潟", "括", "活", "喝", "渇", "割", "葛", "滑", "褐", "轄", "且", "株", "釜", "鎌", "刈", "干", "刊", "甘", "汗", "缶", "完", "肝", "官", "冠", "巻", "看", "陥", "乾", "勘", "患", "貫", "寒", "喚", "堪", "換", "敢", "棺", "款", "間", "閑", "勧", "寛", "幹", "感", "漢", "慣", "管", "関", "歓", "監", "緩", "憾", "還", "館", "環", "簡", "観", "韓", "艦", "鑑", "丸", "含", "岸", "岩", "玩", "眼", "頑", "顔", "願", "企", "伎", "危", "机", "気", "岐", "希", "忌", "汽", "奇", "祈", "季", "紀", "軌", "既", "記", "起", "飢", "鬼", "帰", "基", "寄", "規", "亀", "喜", "幾", "揮", "期", "棋", "貴", "棄", "毀", "旗", "器", "畿", "輝", "機", "騎", "技", "宜", "偽", "欺", "義", "疑", "儀", "戯", "擬", "犠", "議", "菊", "吉", "喫", "詰", "却", "客", "脚", "逆", "虐", "九", "久", "及", "弓", "丘", "旧", "休", "吸", "朽", "臼", "求", "究", "泣", "急", "級", "糾", "宮", "救", "球", "給", "嗅", "窮", "牛", "去", "巨", "居", "拒", "拠", "挙", "虚", "許", "距", "魚", "御", "漁", "凶", "共", "叫", "狂", "京", "享", "供", "協", "況", "峡", "挟", "狭", "恐", "恭", "胸", "脅", "強", "教", "郷", "境", "橋", "矯", "鏡", "競", "響", "驚", "仰", "暁", "業", "凝", "曲", "局", "極", "玉", "巾", "斤", "均", "近", "金", "菌", "勤", "琴", "筋", "僅", "禁", "緊", "錦", "謹", "襟", "吟", "銀", "区", "句", "苦", "駆", "具", "惧", "愚", "空", "偶", "遇", "隅", "串", "屈", "掘", "窟", "熊", "繰", "君", "訓", "勲", "薫", "軍", "郡", "群", "兄", "刑", "形", "系", "径", "茎", "係", "型", "契", "計", "恵", "啓", "掲", "渓", "経", "蛍", "敬", "景", "軽", "傾", "携", "継", "詣", "慶", "憬", "稽", "憩", "警", "鶏", "芸", "迎", "鯨", "隙", "劇", "撃", "激", "桁", "欠", "穴", "血", "決", "結", "傑", "潔", "月", "犬", "件", "見", "券", "肩", "建", "研", "県", "倹", "兼", "剣", "拳", "軒", "健", "険", "圏", "堅", "検", "嫌", "献", "絹", "遣", "権", "憲", "賢", "謙", "鍵", "繭", "顕", "験", "懸", "元", "幻", "玄", "言", "弦", "限", "原", "現", "舷", "減", "源", "厳", "己", "戸", "古", "呼", "固", "股", "虎", "孤", "弧", "故", "枯", "個", "庫", "湖", "雇", "誇", "鼓", "錮", "顧", "五", "互", "午", "呉", "後", "娯", "悟", "碁", "語", "誤", "護", "口", "工", "公", "勾", "孔", "功", "巧", "広", "甲", "交", "光", "向", "后", "好", "江", "考", "行", "坑", "孝", "抗", "攻", "更", "効", "幸", "拘", "肯", "侯", "厚", "恒", "洪", "皇", "紅", "荒", "郊", "香", "候", "校", "耕", "航", "貢", "降", "高", "康", "控", "梗", "黄", "喉", "慌", "港", "硬", "絞", "項", "溝", "鉱", "構", "綱", "酵", "稿", "興", "衡", "鋼", "講", "購", "乞", "号", "合", "拷", "剛", "傲", "豪", "克", "告", "谷", "刻", "国", "黒", "穀", "酷", "獄", "骨", "駒", "込", "頃", "今", "困", "昆", "恨", "根", "婚", "混", "痕", "紺", "魂", "墾", "懇", "左", "佐", "沙", "査", "砂", "唆", "差", "詐", "鎖", "座", "挫", "才", "再", "災", "妻", "采", "砕", "宰", "栽", "彩", "採", "済", "祭", "斎", "細", "菜", "最", "裁", "債", "催", "塞", "歳", "載", "際", "埼", "在", "材", "剤", "財", "罪", "崎", "作", "削", "昨", "柵", "索", "策", "酢", "搾", "錯", "咲", "冊", "札", "刷", "刹", "拶", "殺", "察", "撮", "擦", "雑", "皿", "三", "山", "参", "桟", "蚕", "惨", "産", "傘", "散", "算", "酸", "賛", "残", "斬", "暫", "士", "子", "支", "止", "氏", "仕", "史", "司", "四", "市", "矢", "旨", "死", "糸", "至", "伺", "志", "私", "使", "刺", "始", "姉", "枝", "祉", "肢", "姿", "思", "指", "施", "師", "恣", "紙", "脂", "視", "紫", "詞", "歯", "嗣", "試", "詩", "資", "飼", "誌", "雌", "摯", "賜", "諮", "示", "字", "寺", "次", "耳", "自", "似", "児", "事", "侍", "治", "持", "時", "滋", "慈", "辞", "磁", "餌", "璽", "鹿", "式", "識", "軸", "七", "叱", "失", "室", "疾", "執", "湿", "嫉", "漆", "質", "実", "芝", "写", "社", "車", "舎", "者", "射", "捨", "赦", "斜", "煮", "遮", "謝", "邪", "蛇", "尺", "借", "酌", "釈", "爵", "若", "弱", "寂", "手", "主", "守", "朱", "取", "狩", "首", "殊", "珠", "酒", "腫", "種", "趣", "寿", "受", "呪", "授", "需", "儒", "樹", "収", "囚", "州", "舟", "秀", "周", "宗", "拾", "秋", "臭", "修", "袖", "終", "羞", "習", "週", "就", "衆", "集", "愁", "酬", "醜", "蹴", "襲", "十", "汁", "充", "住", "柔", "重", "従", "渋", "銃", "獣", "縦", "叔", "祝", "宿", "淑", "粛", "縮", "塾", "熟", "出", "述", "術", "俊", "春", "瞬", "旬", "巡", "盾", "准", "殉", "純", "循", "順", "準", "潤", "遵", "処", "初", "所", "書", "庶", "暑", "署", "緒", "諸", "女", "如", "助", "序", "叙", "徐", "除", "小", "升", "少", "召", "匠", "床", "抄", "肖", "尚", "招", "承", "昇", "松", "沼", "昭", "宵", "将", "消", "症", "祥", "称", "笑", "唱", "商", "渉", "章", "紹", "訟", "勝", "掌", "晶", "焼", "焦", "硝", "粧", "詔", "証", "象", "傷", "奨", "照", "詳", "彰", "障", "憧", "衝", "賞", "償", "礁", "鐘", "上", "丈", "冗", "条", "状", "乗", "城", "浄", "剰", "常", "情", "場", "畳", "蒸", "縄", "壌", "嬢", "錠", "譲", "醸", "色", "拭", "食", "植", "殖", "飾", "触", "嘱", "織", "職", "辱", "尻", "心", "申", "伸", "臣", "芯", "身", "辛", "侵", "信", "津", "神", "唇", "娠", "振", "浸", "真", "針", "深", "紳", "進", "森", "診", "寝", "慎", "新", "審", "震", "薪", "親", "人", "刃", "仁", "尽", "迅", "甚", "陣", "尋", "腎", "須", "図", "水", "吹", "垂", "炊", "帥", "粋", "衰", "推", "酔", "遂", "睡", "穂", "随", "髄", "枢", "崇", "数", "据", "杉", "裾", "寸", "瀬", "是", "井", "世", "正", "生", "成", "西", "声", "制", "姓", "征", "性", "青", "斉", "政", "星", "牲", "省", "凄", "逝", "清", "盛", "婿", "晴", "勢", "聖", "誠", "精", "製", "誓", "静", "請", "整", "醒", "税", "夕", "斥", "石", "赤", "昔", "析", "席", "脊", "隻", "惜", "戚", "責", "跡", "積", "績", "籍", "切", "折", "拙", "窃", "接", "設", "雪", "摂", "節", "説", "舌", "絶", "千", "川", "仙", "占", "先", "宣", "専", "泉", "浅", "洗", "染", "扇", "栓", "旋", "船", "戦", "煎", "羨", "腺", "詮", "践", "箋", "銭", "潜", "線", "遷", "選", "薦", "繊", "鮮", "全", "前", "善", "然", "禅", "漸", "膳", "繕", "狙", "阻", "祖", "租", "素", "措", "粗", "組", "疎", "訴", "塑", "遡", "礎", "双", "壮", "早", "争", "走", "奏", "相", "荘", "草", "送", "倉", "捜", "挿", "桑", "巣", "掃", "曹", "曽", "爽", "窓", "創", "喪", "痩", "葬", "装", "僧", "想", "層", "総", "遭", "槽", "踪", "操", "燥", "霜", "騒", "藻", "造", "像", "増", "憎", "蔵", "贈", "臓", "即", "束", "足", "促", "則", "息", "捉", "速", "側", "測", "俗", "族", "属", "賊", "続", "卒", "率", "存", "村", "孫", "尊", "損", "遜", "他", "多", "汰", "打", "妥", "唾", "堕", "惰", "駄", "太", "対", "体", "耐", "待", "怠", "胎", "退", "帯", "泰", "堆", "袋", "逮", "替", "貸", "隊", "滞", "態", "戴", "大", "代", "台", "第", "題", "滝", "宅", "択", "沢", "卓", "拓", "託", "濯", "諾", "濁", "但", "達", "脱", "奪", "棚", "誰", "丹", "旦", "担", "単", "炭", "胆", "探", "淡", "短", "嘆", "端", "綻", "誕", "鍛", "団", "男", "段", "断", "弾", "暖", "談", "壇", "地", "池", "知", "値", "恥", "致", "遅", "痴", "稚", "置", "緻", "竹", "畜", "逐", "蓄", "築", "秩", "窒", "茶", "着", "嫡", "中", "仲", "虫", "沖", "宙", "忠", "抽", "注", "昼", "柱", "衷", "酎", "鋳", "駐", "著", "貯", "丁", "弔", "庁", "兆", "町", "長", "挑", "帳", "張", "彫", "眺", "釣", "頂", "鳥", "朝", "貼", "超", "腸", "跳", "徴", "嘲", "潮", "澄", "調", "聴", "懲", "直", "勅", "捗", "沈", "珍", "朕", "陳", "賃", "鎮", "追", "椎", "墜", "通", "痛", "塚", "漬", "坪", "爪", "鶴", "低", "呈", "廷", "弟", "定", "底", "抵", "邸", "亭", "貞", "帝", "訂", "庭", "逓", "停", "偵", "堤", "提", "程", "艇", "締", "諦", "泥", "的", "笛", "摘", "滴", "適", "敵", "溺", "迭", "哲", "鉄", "徹", "撤", "天", "典", "店", "点", "展", "添", "転", "填", "田", "伝", "殿", "電", "斗", "吐", "妬", "徒", "途", "都", "渡", "塗", "賭", "土", "奴", "努", "度", "怒", "刀", "冬", "灯", "当", "投", "豆", "東", "到", "逃", "倒", "凍", "唐", "島", "桃", "討", "透", "党", "悼", "盗", "陶", "塔", "搭", "棟", "湯", "痘", "登", "答", "等", "筒", "統", "稲", "踏", "糖", "頭", "謄", "藤", "闘", "騰", "同", "洞", "胴", "動", "堂", "童", "道", "働", "銅", "導", "瞳", "峠", "匿", "特", "得", "督", "徳", "篤", "毒", "独", "読", "栃", "凸", "突", "届", "屯", "豚", "頓", "貪", "鈍", "曇", "丼", "那", "奈", "内", "梨", "謎", "鍋", "南", "軟", "難", "二", "尼", "弐", "匂", "肉", "虹", "日", "入", "乳", "尿", "任", "妊", "忍", "認", "寧", "熱", "年", "念", "捻", "粘", "燃", "悩", "納", "能", "脳", "農", "濃", "把", "波", "派", "破", "覇", "馬", "婆", "罵", "拝", "杯", "背", "肺", "俳", "配", "排", "敗", "廃", "輩", "売", "倍", "梅", "培", "陪", "媒", "買", "賠", "白", "伯", "拍", "泊", "迫", "剥", "舶", "博", "薄", "麦", "漠", "縛", "爆", "箱", "箸", "畑", "肌", "八", "鉢", "発", "髪", "伐", "抜", "罰", "閥", "反", "半", "氾", "犯", "帆", "汎", "伴", "判", "坂", "阪", "板", "版", "班", "畔", "般", "販", "斑", "飯", "搬", "煩", "頒", "範", "繁", "藩", "晩", "番", "蛮", "盤", "比", "皮", "妃", "否", "批", "彼", "披", "肥", "非", "卑", "飛", "疲", "秘", "被", "悲", "扉", "費", "碑", "罷", "避", "尾", "眉", "美", "備", "微", "鼻", "膝", "肘", "匹", "必", "泌", "筆", "姫", "百", "氷", "表", "俵", "票", "評", "漂", "標", "苗", "秒", "病", "描", "猫", "品", "浜", "貧", "賓", "頻", "敏", "瓶", "不", "夫", "父", "付", "布", "扶", "府", "怖", "阜", "附", "訃", "負", "赴", "浮", "婦", "符", "富", "普", "腐", "敷", "膚", "賦", "譜", "侮", "武", "部", "舞", "封", "風", "伏", "服", "副", "幅", "復", "福", "腹", "複", "覆", "払", "沸", "仏", "物", "粉", "紛", "雰", "噴", "墳", "憤", "奮", "分", "文", "聞", "丙", "平", "兵", "併", "並", "柄", "陛", "閉", "塀", "幣", "弊", "蔽", "餅", "米", "壁", "璧", "癖", "別", "蔑", "片", "辺", "返", "変", "偏", "遍", "編", "弁", "便", "勉", "歩", "保", "哺", "捕", "補", "舗", "母", "募", "墓", "慕", "暮", "簿", "方", "包", "芳", "邦", "奉", "宝", "抱", "放", "法", "泡", "胞", "俸", "倣", "峰", "砲", "崩", "訪", "報", "蜂", "豊", "飽", "褒", "縫", "亡", "乏", "忙", "坊", "妨", "忘", "防", "房", "肪", "某", "冒", "剖", "紡", "望", "傍", "帽", "棒", "貿", "貌", "暴", "膨", "謀", "頬", "北", "木", "朴", "牧", "睦", "僕", "墨", "撲", "没", "勃", "堀", "本", "奔", "翻", "凡", "盆", "麻", "摩", "磨", "魔", "毎", "妹", "枚", "昧", "埋", "幕", "膜", "枕", "又", "末", "抹", "万", "満", "慢", "漫", "未", "味", "魅", "岬", "密", "蜜", "脈", "妙", "民", "眠", "矛", "務", "無", "夢", "霧", "娘", "名", "命", "明", "迷", "冥", "盟", "銘", "鳴", "滅", "免", "面", "綿", "麺", "茂", "模", "毛", "妄", "盲", "耗", "猛", "網", "目", "黙", "門", "紋", "問", "冶", "夜", "野", "弥", "厄", "役", "約", "訳", "薬", "躍", "闇", "由", "油", "喩", "愉", "諭", "輸", "癒", "唯", "友", "有", "勇", "幽", "悠", "郵", "湧", "猶", "裕", "遊", "雄", "誘", "憂", "融", "優", "与", "予", "余", "誉", "預", "幼", "用", "羊", "妖", "洋", "要", "容", "庸", "揚", "揺", "葉", "陽", "溶", "腰", "様", "瘍", "踊", "窯", "養", "擁", "謡", "曜", "抑", "沃", "浴", "欲", "翌", "翼", "拉", "裸", "羅", "来", "雷", "頼", "絡", "落", "酪", "辣", "乱", "卵", "覧", "濫", "藍", "欄", "吏", "利", "里", "理", "痢", "裏", "履", "璃", "離", "陸", "立", "律", "慄", "略", "柳", "流", "留", "竜", "粒", "隆", "硫", "侶", "旅", "虜", "慮", "了", "両", "良", "料", "涼", "猟", "陵", "量", "僚", "領", "寮", "療", "瞭", "糧", "力", "緑", "林", "厘", "倫", "輪", "隣", "臨", "瑠", "涙", "累", "塁", "類", "令", "礼", "冷", "励", "戻", "例", "鈴", "零", "霊", "隷", "齢", "麗", "暦", "歴", "列", "劣", "烈", "裂", "恋", "連", "廉", "練", "錬", "呂", "炉", "賂", "路", "露", "老", "労", "弄", "郎", "朗", "浪", "廊", "楼", "漏", "籠", "六", "録", "麓", "論", "和", "話", "賄", "脇", "惑", "枠", "湾", "腕"]; | ||
var isJoyoKanji = kanji => { | ||
const JOYOKANJI = ["亜", "哀", "挨", "愛", "曖", "悪", "握", "圧", "扱", "宛", "嵐", "安", "案", "暗", "以", "衣", "位", "囲", "医", "依", "委", "威", "為", "畏", "胃", "尉", "異", "移", "萎", "偉", "椅", "彙", "意", "違", "維", "慰", "遺", "緯", "域", "育", "一", "壱", "逸", "茨", "芋", "引", "印", "因", "咽", "姻", "員", "院", "淫", "陰", "飲", "隠", "韻", "右", "宇", "羽", "雨", "唄", "鬱", "畝", "浦", "運", "雲", "永", "泳", "英", "映", "栄", "営", "詠", "影", "鋭", "衛", "易", "疫", "益", "液", "駅", "悦", "越", "謁", "閲", "円", "延", "沿", "炎", "怨", "宴", "媛", "援", "園", "煙", "猿", "遠", "鉛", "塩", "演", "縁", "艶", "汚", "王", "凹", "央", "応", "往", "押", "旺", "欧", "殴", "桜", "翁", "奥", "横", "岡", "屋", "億", "憶", "臆", "虞", "乙", "俺", "卸", "音", "恩", "温", "穏", "下", "化", "火", "加", "可", "仮", "何", "花", "佳", "価", "果", "河", "苛", "科", "架", "夏", "家", "荷", "華", "菓", "貨", "渦", "過", "嫁", "暇", "禍", "靴", "寡", "歌", "箇", "稼", "課", "蚊", "牙", "瓦", "我", "画", "芽", "賀", "雅", "餓", "介", "回", "灰", "会", "快", "戒", "改", "怪", "拐", "悔", "海", "界", "皆", "械", "絵", "開", "階", "塊", "楷", "解", "潰", "壊", "懐", "諧", "貝", "外", "劾", "害", "崖", "涯", "街", "慨", "蓋", "該", "概", "骸", "垣", "柿", "各", "角", "拡", "革", "格", "核", "殻", "郭", "覚", "較", "隔", "閣", "確", "獲", "嚇", "穫", "学", "岳", "楽", "額", "顎", "掛", "潟", "括", "活", "喝", "渇", "割", "葛", "滑", "褐", "轄", "且", "株", "釜", "鎌", "刈", "干", "刊", "甘", "汗", "缶", "完", "肝", "官", "冠", "巻", "看", "陥", "乾", "勘", "患", "貫", "寒", "喚", "堪", "換", "敢", "棺", "款", "間", "閑", "勧", "寛", "幹", "感", "漢", "慣", "管", "関", "歓", "監", "緩", "憾", "還", "館", "環", "簡", "観", "韓", "艦", "鑑", "丸", "含", "岸", "岩", "玩", "眼", "頑", "顔", "願", "企", "伎", "危", "机", "気", "岐", "希", "忌", "汽", "奇", "祈", "季", "紀", "軌", "既", "記", "起", "飢", "鬼", "帰", "基", "寄", "規", "亀", "喜", "幾", "揮", "期", "棋", "貴", "棄", "毀", "旗", "器", "畿", "輝", "機", "騎", "技", "宜", "偽", "欺", "義", "疑", "儀", "戯", "擬", "犠", "議", "菊", "吉", "喫", "詰", "却", "客", "脚", "逆", "虐", "九", "久", "及", "弓", "丘", "旧", "休", "吸", "朽", "臼", "求", "究", "泣", "急", "級", "糾", "宮", "救", "球", "給", "嗅", "窮", "牛", "去", "巨", "居", "拒", "拠", "挙", "虚", "許", "距", "魚", "御", "漁", "凶", "共", "叫", "狂", "京", "享", "供", "協", "況", "峡", "挟", "狭", "恐", "恭", "胸", "脅", "強", "教", "郷", "境", "橋", "矯", "鏡", "競", "響", "驚", "仰", "暁", "業", "凝", "曲", "局", "極", "玉", "巾", "斤", "均", "近", "金", "菌", "勤", "琴", "筋", "僅", "禁", "緊", "錦", "謹", "襟", "吟", "銀", "区", "句", "苦", "駆", "具", "惧", "愚", "空", "偶", "遇", "隅", "串", "屈", "掘", "窟", "熊", "繰", "君", "訓", "勲", "薫", "軍", "郡", "群", "兄", "刑", "形", "系", "径", "茎", "係", "型", "契", "計", "恵", "啓", "掲", "渓", "経", "蛍", "敬", "景", "軽", "傾", "携", "継", "詣", "慶", "憬", "稽", "憩", "警", "鶏", "芸", "迎", "鯨", "隙", "劇", "撃", "激", "桁", "欠", "穴", "血", "決", "結", "傑", "潔", "月", "犬", "件", "見", "券", "肩", "建", "研", "県", "倹", "兼", "剣", "拳", "軒", "健", "険", "圏", "堅", "検", "嫌", "献", "絹", "遣", "権", "憲", "賢", "謙", "鍵", "繭", "顕", "験", "懸", "元", "幻", "玄", "言", "弦", "限", "原", "現", "舷", "減", "源", "厳", "己", "戸", "古", "呼", "固", "股", "虎", "孤", "弧", "故", "枯", "個", "庫", "湖", "雇", "誇", "鼓", "錮", "顧", "五", "互", "午", "呉", "後", "娯", "悟", "碁", "語", "誤", "護", "口", "工", "公", "勾", "孔", "功", "巧", "広", "甲", "交", "光", "向", "后", "好", "江", "考", "行", "坑", "孝", "抗", "攻", "更", "効", "幸", "拘", "肯", "侯", "厚", "恒", "洪", "皇", "紅", "荒", "郊", "香", "候", "校", "耕", "航", "貢", "降", "高", "康", "控", "梗", "黄", "喉", "慌", "港", "硬", "絞", "項", "溝", "鉱", "構", "綱", "酵", "稿", "興", "衡", "鋼", "講", "購", "乞", "号", "合", "拷", "剛", "傲", "豪", "克", "告", "谷", "刻", "国", "黒", "穀", "酷", "獄", "骨", "駒", "込", "頃", "今", "困", "昆", "恨", "根", "婚", "混", "痕", "紺", "魂", "墾", "懇", "左", "佐", "沙", "査", "砂", "唆", "差", "詐", "鎖", "座", "挫", "才", "再", "災", "妻", "采", "砕", "宰", "栽", "彩", "採", "済", "祭", "斎", "細", "菜", "最", "裁", "債", "催", "塞", "歳", "載", "際", "埼", "在", "材", "剤", "財", "罪", "崎", "作", "削", "昨", "柵", "索", "策", "酢", "搾", "錯", "咲", "冊", "札", "刷", "刹", "拶", "殺", "察", "撮", "擦", "雑", "皿", "三", "山", "参", "桟", "蚕", "惨", "産", "傘", "散", "算", "酸", "賛", "残", "斬", "暫", "士", "子", "支", "止", "氏", "仕", "史", "司", "四", "市", "矢", "旨", "死", "糸", "至", "伺", "志", "私", "使", "刺", "始", "姉", "枝", "祉", "肢", "姿", "思", "指", "施", "師", "恣", "紙", "脂", "視", "紫", "詞", "歯", "嗣", "試", "詩", "資", "飼", "誌", "雌", "摯", "賜", "諮", "示", "字", "寺", "次", "耳", "自", "似", "児", "事", "侍", "治", "持", "時", "滋", "慈", "辞", "磁", "餌", "璽", "鹿", "式", "識", "軸", "七", "叱", "失", "室", "疾", "執", "湿", "嫉", "漆", "質", "実", "芝", "写", "社", "車", "舎", "者", "射", "捨", "赦", "斜", "煮", "遮", "謝", "邪", "蛇", "尺", "借", "酌", "釈", "爵", "若", "弱", "寂", "手", "主", "守", "朱", "取", "狩", "首", "殊", "珠", "酒", "腫", "種", "趣", "寿", "受", "呪", "授", "需", "儒", "樹", "収", "囚", "州", "舟", "秀", "周", "宗", "拾", "秋", "臭", "修", "袖", "終", "羞", "習", "週", "就", "衆", "集", "愁", "酬", "醜", "蹴", "襲", "十", "汁", "充", "住", "柔", "重", "従", "渋", "銃", "獣", "縦", "叔", "祝", "宿", "淑", "粛", "縮", "塾", "熟", "出", "述", "術", "俊", "春", "瞬", "旬", "巡", "盾", "准", "殉", "純", "循", "順", "準", "潤", "遵", "処", "初", "所", "書", "庶", "暑", "署", "緒", "諸", "女", "如", "助", "序", "叙", "徐", "除", "小", "升", "少", "召", "匠", "床", "抄", "肖", "尚", "招", "承", "昇", "松", "沼", "昭", "宵", "将", "消", "症", "祥", "称", "笑", "唱", "商", "渉", "章", "紹", "訟", "勝", "掌", "晶", "焼", "焦", "硝", "粧", "詔", "証", "象", "傷", "奨", "照", "詳", "彰", "障", "憧", "衝", "賞", "償", "礁", "鐘", "上", "丈", "冗", "条", "状", "乗", "城", "浄", "剰", "常", "情", "場", "畳", "蒸", "縄", "壌", "嬢", "錠", "譲", "醸", "色", "拭", "食", "植", "殖", "飾", "触", "嘱", "織", "職", "辱", "尻", "心", "申", "伸", "臣", "芯", "身", "辛", "侵", "信", "津", "神", "唇", "娠", "振", "浸", "真", "針", "深", "紳", "進", "森", "診", "寝", "慎", "新", "審", "震", "薪", "親", "人", "刃", "仁", "尽", "迅", "甚", "陣", "尋", "腎", "須", "図", "水", "吹", "垂", "炊", "帥", "粋", "衰", "推", "酔", "遂", "睡", "穂", "随", "髄", "枢", "崇", "数", "据", "杉", "裾", "寸", "瀬", "是", "井", "世", "正", "生", "成", "西", "声", "制", "姓", "征", "性", "青", "斉", "政", "星", "牲", "省", "凄", "逝", "清", "盛", "婿", "晴", "勢", "聖", "誠", "精", "製", "誓", "静", "請", "整", "醒", "税", "夕", "斥", "石", "赤", "昔", "析", "席", "脊", "隻", "惜", "戚", "責", "跡", "積", "績", "籍", "切", "折", "拙", "窃", "接", "設", "雪", "摂", "節", "説", "舌", "絶", "千", "川", "仙", "占", "先", "宣", "専", "泉", "浅", "洗", "染", "扇", "栓", "旋", "船", "戦", "煎", "羨", "腺", "詮", "践", "箋", "銭", "潜", "線", "遷", "選", "薦", "繊", "鮮", "全", "前", "善", "然", "禅", "漸", "膳", "繕", "狙", "阻", "祖", "租", "素", "措", "粗", "組", "疎", "訴", "塑", "遡", "礎", "双", "壮", "早", "争", "走", "奏", "相", "荘", "草", "送", "倉", "捜", "挿", "桑", "巣", "掃", "曹", "曽", "爽", "窓", "創", "喪", "痩", "葬", "装", "僧", "想", "層", "総", "遭", "槽", "踪", "操", "燥", "霜", "騒", "藻", "造", "像", "増", "憎", "蔵", "贈", "臓", "即", "束", "足", "促", "則", "息", "捉", "速", "側", "測", "俗", "族", "属", "賊", "続", "卒", "率", "存", "村", "孫", "尊", "損", "遜", "他", "多", "汰", "打", "妥", "唾", "堕", "惰", "駄", "太", "対", "体", "耐", "待", "怠", "胎", "退", "帯", "泰", "堆", "袋", "逮", "替", "貸", "隊", "滞", "態", "戴", "大", "代", "台", "第", "題", "滝", "宅", "択", "沢", "卓", "拓", "託", "濯", "諾", "濁", "但", "達", "脱", "奪", "棚", "誰", "丹", "旦", "担", "単", "炭", "胆", "探", "淡", "短", "嘆", "端", "綻", "誕", "鍛", "団", "男", "段", "断", "弾", "暖", "談", "壇", "地", "池", "知", "値", "恥", "致", "遅", "痴", "稚", "置", "緻", "竹", "畜", "逐", "蓄", "築", "秩", "窒", "茶", "着", "嫡", "中", "仲", "虫", "沖", "宙", "忠", "抽", "注", "昼", "柱", "衷", "酎", "鋳", "駐", "著", "貯", "丁", "弔", "庁", "兆", "町", "長", "挑", "帳", "張", "彫", "眺", "釣", "頂", "鳥", "朝", "貼", "超", "腸", "跳", "徴", "嘲", "潮", "澄", "調", "聴", "懲", "直", "勅", "捗", "沈", "珍", "朕", "陳", "賃", "鎮", "追", "椎", "墜", "通", "痛", "塚", "漬", "坪", "爪", "鶴", "低", "呈", "廷", "弟", "定", "底", "抵", "邸", "亭", "貞", "帝", "訂", "庭", "逓", "停", "偵", "堤", "提", "程", "艇", "締", "諦", "泥", "的", "笛", "摘", "滴", "適", "敵", "溺", "迭", "哲", "鉄", "徹", "撤", "天", "典", "店", "点", "展", "添", "転", "填", "田", "伝", "殿", "電", "斗", "吐", "妬", "徒", "途", "都", "渡", "塗", "賭", "土", "奴", "努", "度", "怒", "刀", "冬", "灯", "当", "投", "豆", "東", "到", "逃", "倒", "凍", "唐", "島", "桃", "討", "透", "党", "悼", "盗", "陶", "塔", "搭", "棟", "湯", "痘", "登", "答", "等", "筒", "統", "稲", "踏", "糖", "頭", "謄", "藤", "闘", "騰", "同", "洞", "胴", "動", "堂", "童", "道", "働", "銅", "導", "瞳", "峠", "匿", "特", "得", "督", "徳", "篤", "毒", "独", "読", "栃", "凸", "突", "届", "屯", "豚", "頓", "貪", "鈍", "曇", "丼", "那", "奈", "内", "梨", "謎", "鍋", "南", "軟", "難", "二", "尼", "弐", "匂", "肉", "虹", "日", "入", "乳", "尿", "任", "妊", "忍", "認", "寧", "熱", "年", "念", "捻", "粘", "燃", "悩", "納", "能", "脳", "農", "濃", "把", "波", "派", "破", "覇", "馬", "婆", "罵", "拝", "杯", "背", "肺", "俳", "配", "排", "敗", "廃", "輩", "売", "倍", "梅", "培", "陪", "媒", "買", "賠", "白", "伯", "拍", "泊", "迫", "剥", "舶", "博", "薄", "麦", "漠", "縛", "爆", "箱", "箸", "畑", "肌", "八", "鉢", "発", "髪", "伐", "抜", "罰", "閥", "反", "半", "氾", "犯", "帆", "汎", "伴", "判", "坂", "阪", "板", "版", "班", "畔", "般", "販", "斑", "飯", "搬", "煩", "頒", "範", "繁", "藩", "晩", "番", "蛮", "盤", "比", "皮", "妃", "否", "批", "彼", "披", "肥", "非", "卑", "飛", "疲", "秘", "被", "悲", "扉", "費", "碑", "罷", "避", "尾", "眉", "美", "備", "微", "鼻", "膝", "肘", "匹", "必", "泌", "筆", "姫", "百", "氷", "表", "俵", "票", "評", "漂", "標", "苗", "秒", "病", "描", "猫", "品", "浜", "貧", "賓", "頻", "敏", "瓶", "不", "夫", "父", "付", "布", "扶", "府", "怖", "阜", "附", "訃", "負", "赴", "浮", "婦", "符", "富", "普", "腐", "敷", "膚", "賦", "譜", "侮", "武", "部", "舞", "封", "風", "伏", "服", "副", "幅", "復", "福", "腹", "複", "覆", "払", "沸", "仏", "物", "粉", "紛", "雰", "噴", "墳", "憤", "奮", "分", "文", "聞", "丙", "平", "兵", "併", "並", "柄", "陛", "閉", "塀", "幣", "弊", "蔽", "餅", "米", "壁", "璧", "癖", "別", "蔑", "片", "辺", "返", "変", "偏", "遍", "編", "弁", "便", "勉", "歩", "保", "哺", "捕", "補", "舗", "母", "募", "墓", "慕", "暮", "簿", "方", "包", "芳", "邦", "奉", "宝", "抱", "放", "法", "泡", "胞", "俸", "倣", "峰", "砲", "崩", "訪", "報", "蜂", "豊", "飽", "褒", "縫", "亡", "乏", "忙", "坊", "妨", "忘", "防", "房", "肪", "某", "冒", "剖", "紡", "望", "傍", "帽", "棒", "貿", "貌", "暴", "膨", "謀", "頬", "北", "木", "朴", "牧", "睦", "僕", "墨", "撲", "没", "勃", "堀", "本", "奔", "翻", "凡", "盆", "麻", "摩", "磨", "魔", "毎", "妹", "枚", "昧", "埋", "幕", "膜", "枕", "又", "末", "抹", "万", "満", "慢", "漫", "未", "味", "魅", "岬", "密", "蜜", "脈", "妙", "民", "眠", "矛", "務", "無", "夢", "霧", "娘", "名", "命", "明", "迷", "冥", "盟", "銘", "鳴", "滅", "免", "面", "綿", "麺", "茂", "模", "毛", "妄", "盲", "耗", "猛", "網", "目", "黙", "門", "紋", "問", "冶", "夜", "野", "弥", "厄", "役", "約", "訳", "薬", "躍", "闇", "由", "油", "喩", "愉", "諭", "輸", "癒", "唯", "友", "有", "勇", "幽", "悠", "郵", "湧", "猶", "裕", "遊", "雄", "誘", "憂", "融", "優", "与", "予", "余", "誉", "預", "幼", "用", "羊", "妖", "洋", "要", "容", "庸", "揚", "揺", "葉", "陽", "溶", "腰", "様", "瘍", "踊", "窯", "養", "擁", "謡", "曜", "抑", "沃", "浴", "欲", "翌", "翼", "拉", "裸", "羅", "来", "雷", "頼", "絡", "落", "酪", "辣", "乱", "卵", "覧", "濫", "藍", "欄", "吏", "利", "里", "理", "痢", "裏", "履", "璃", "離", "陸", "立", "律", "慄", "略", "柳", "流", "留", "竜", "粒", "隆", "硫", "侶", "旅", "虜", "慮", "了", "両", "良", "料", "涼", "猟", "陵", "量", "僚", "領", "寮", "療", "瞭", "糧", "力", "緑", "林", "厘", "倫", "輪", "隣", "臨", "瑠", "涙", "累", "塁", "類", "令", "礼", "冷", "励", "戻", "例", "鈴", "零", "霊", "隷", "齢", "麗", "暦", "歴", "列", "劣", "烈", "裂", "恋", "連", "廉", "練", "錬", "呂", "炉", "賂", "路", "露", "老", "労", "弄", "郎", "朗", "浪", "廊", "楼", "漏", "籠", "六", "録", "麓", "論", "和", "話", "賄", "脇", "惑", "枠", "湾", "腕"]; | ||
const isJoyoKanji = kanji => { | ||
return JOYOKANJI.includes(kanji); | ||
}; | ||
module.exports = function (context) { | ||
var { | ||
const { | ||
Syntax, | ||
@@ -39,9 +34,6 @@ RuleError, | ||
} | ||
var text = getSource(node); | ||
var strArray = stringToArray(text); | ||
for (var index = 0; index < strArray.length; index++) { | ||
var item = strArray[index]; | ||
const text = getSource(node); | ||
const strArray = stringToArray(text); | ||
for (let index = 0; index < strArray.length; index++) { | ||
const item = strArray[index]; | ||
if (_regexp.kanjiRegExp.test(item) && !isJoyoKanji(item)) { | ||
@@ -54,5 +46,4 @@ report(node, new RuleError("「" + item + "」は「常用漢字表」外の漢字です。", { | ||
} | ||
}; | ||
}; | ||
//# sourceMappingURL=2.1.2.js.map |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -12,15 +13,8 @@ 2.1.5.カタカナ | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _textlintRulePrh = _interopRequireDefault(require("textlint-rule-prh")); | ||
var _path = _interopRequireDefault(require("path")); | ||
var _matchIndex = require("match-index"); | ||
var _moji = _interopRequireDefault(require("moji")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
/** | ||
@@ -34,5 +28,4 @@ * 半角カタカナを全角カタカナに変換 | ||
} | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -43,21 +36,18 @@ RuleError, | ||
getSource | ||
} = context; // 辞書ベースのカタカタ表記のチェックを行う | ||
var dictRule = _textlintRulePrh.default.fixer(context, { | ||
} = context; | ||
// 辞書ベースのカタカタ表記のチェックを行う | ||
let dictRule = _textlintRulePrh.default.fixer(context, { | ||
ruleContents: ["# This dictionary is based on http://www.jtf.jp/jp/style_guide/jtfstylechecker.html\n# \u30C6\u30AF\u30CB\u30AB\u30EB\u30B3\u30DF\u30E5\u30CB\u30B1\u30FC\u30BF\u30FC\u5354\u4F1A> \u5916\u6765\u8A9E\uFF08\u30AB\u30BF\u30AB\u30CA\uFF09\u8868\u8A18\u30AC\u30A4\u30C9\u30E9\u30A4\u30F3 http://www.jtca.org/standardization/\n# TODO: [WIP] not complete\nversion: 1\nrules:\n - expected: \u30A2\u30B8\u30A2\n patterns: \u30A2\u30B8\u30E4\n\n - expected: \u30A2\u30C8\u30E9\u30F3\u30C6\u30A3\u30C3\u30AF\n patterns: \u30A2\u30C8\u30E9\u30F3\u30C1\u30C3\u30AF\n\n - expected: \u30A2\u30D9\u30EC\u30FC\u30B8\n patterns: \u30A2\u30F4\u30A7\u30EC\u30FC\u30B8\n\n - expected: \u30A2\u30D9\u30EC\u30FC\u30B8\n patterns: \u30A2\u30D9\u30EC\u30A4\u30B8\n\n - expected: \u30A2\u30F3\u30C1\n patterns: \u30A2\u30F3\u30C6\u30A3\n\n - expected: \u30A2\u30F3\u30C6\u30A3\u30FC\u30AF\n patterns: \u30A2\u30F3\u30C1\u30FC\u30AF\n\n - expected: \u30A2\u30F3\u30E2\u30CB\u30A2\n patterns: \u30A2\u30F3\u30E2\u30CB\u30E4\n\n - expected: \u30A4\u30BF\u30EA\u30A2\n patterns: \u30A4\u30BF\u30EA\u30E4\n\n - expected: \u30A4\u30CB\u30B7\u30A2\u30C1\u30D6\n patterns: \u30A4\u30CB\u30B7\u30A2\u30C6\u30A3\u30D6\n\n - expected: \u30A4\u30D9\u30F3\u30C8\n patterns: \u30A4\u30F4\u30A7\u30F3\u30C8\n\n - expected: \u30A4\u30DF\u30C6\u30FC\u30B7\u30E7\u30F3\n patterns: \u30A4\u30DF\u30C6\u30A4\u30B7\u30E7\u30F3\n\n - expected: \u30A4\u30E4\u30DB\u30F3\n patterns: \u30A4\u30A2\u30DB\u30F3\n\n - expected: \u30A4\u30E4\u30DB\u30F3\n patterns: \u30A4\u30E4\u30D5\u30A9\u30F3\n\n - expected: \u30A4\u30F3\u30B8\u30B1\u30FC\u30BF\u30FC\n patterns: \u30A4\u30F3\u30C7\u30A3\u30B1\u30FC\u30BF\n\n - expected: \u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\n patterns: \u30A4\u30F3\u30BF\u30D5\u30A7\u30A4\u30B9\n\n - expected: \u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\n patterns: \u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\n\n - expected: \u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\n patterns: \u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\n\n - expected: \u30A4\u30F3\u30BF\u30FC\u30DB\u30F3\n patterns: \u30A4\u30F3\u30BF\u30FC\u30D5\u30A9\u30F3\n\n - expected: \u30A4\u30F3\u30D5\u30A9\u30E1\u30FC\u30B7\u30E7\u30F3\n patterns: \u30A4\u30F3\u30DB\u30E1\u30FC\u30B7\u30E7\u30F3\n\n - expected: \u30A6\u30A7\u30A2\n patterns: \u30A6\u30A8\u30A2\n\n - expected: \u30A8\u30B8\u30BD\u30F3\n patterns: \u30A8\u30C7\u30A3\u30BD\u30F3\n\n - expected: \u30A8\u30B9\u30AB\u30EC\u30FC\u30BF\u30FC\n patterns: \u30A8\u30B9\u30AB\u30EC\u30A4\u30BF\n\n - expected: \u30A8\u30E9\u30FC\n patterns: \u30A8\u30E9\u30A2\n\n - expected: \u30A8\u30EC\u30D9\u30FC\u30BF\u30FC\n patterns: \u30A8\u30EC\u30D9\u30A4\u30BF\n\n - expected: \u30AA\u30FC\u30C7\u30A3\u30AA\n patterns: \u30AA\u30A6\u30C7\u30A3\u30AA\n\n - expected: \u30AA\u30FC\u30C8\u30DE\u30C1\u30C3\u30AF\n patterns: \u30AA\u30FC\u30C8\u30DE\u30C1\u30C3\u30AF\n\n - expected: \u30AA\u30FC\u30CA\u30FC\n patterns: \u30AA\u30A6\u30CA\u30FC\n\n - expected: \u30AA\u30FC\u30D0\u30FC\n patterns: \u30AA\u30A6\u30D0\u30FC\n\n - expected: \u30AA\u30FC\u30D0\u30FC\u30B3\u30FC\u30C8\n patterns: \u30AA\u30A6\u30D0\u30FC\u30B3\u30FC\u30C8\n\n - expected: \u30AB\u30D0\u30FC\n patterns: \u30AB\u30D0\u30A2\n\n - expected: \u30AB\u30D5\u30A7\u30C6\u30EA\u30A2\n patterns: \u30AB\u30D5\u30A7\u30C6\u30EA\u30E4\n\n - expected: \u30AB\u30E9\u30FC\n patterns: \u30AB\u30E9\u30A2\n\n - expected: \u30AE\u30A2\n patterns: \u30AE\u30E4\n\n - expected: \u30AD\u30FC\n patterns: \u30AD\u30A4\n\n - expected: \u30AD\u30E3\u30E9\u30D0\u30F3\n patterns: \u30AD\u30E3\u30E9\u30F4\u30A1\u30F3\n\n - expected: \u30B0\u30E9\u30D3\u30A2\n patterns: \u30B0\u30E9\u30D3\u30E4\n\n - expected: \u30AF\u30EA\u30A8\u30FC\u30C6\u30A3\u30D6\n patterns: \u30AF\u30EA\u30A8\u30A4\u30C6\u30A3\u30D6\n\n - expected: \u30B1\u30A2\n patterns: \u30B1\u30A2\u30FC\n\n - expected: \u30B1\u30FC\u30B9\n patterns: \u30B1\u30A4\u30B9\n\n - expected: \u30B2\u30FC\u30E0\n patterns: \u30B2\u30A4\u30E0\n\n - expected: \u30B3\u30D4\u30FC\n patterns: \u30B3\u30D4\u30A4\n\n - expected: \u30B3\u30F3\u30C7\u30A3\u30B7\u30E7\u30F3\n patterns: \u30B3\u30F3\u30C7\u30B7\u30E7\u30F3\n\n - expected: \u30B5\u30FC\u30D3\u30B9\n patterns: \u30B5\u30FC\u30F4\u30A3\u30B9\n\n - expected: \u30B5\u30FC\u30D9\u30A4\n patterns: \u30B5\u30FC\u30F4\u30A7\u30A4\n\n - expected: \u30B5\u30E9\u30C0\u30DC\u30A6\u30EB\n patterns: \u30B5\u30E9\u30C0\u30DC\u30FC\u30EB\n\n - expected: \u30B7\u30A7\u30FC\u30C9\n patterns: \u30B7\u30A7\u30A4\u30C9\n\n - expected: \u30B8\u30D5\u30C6\u30EA\u30A2\n patterns: \u30B8\u30D5\u30C6\u30EA\u30E4\n\n - expected: \u30B7\u30DF\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3\n patterns: \u30B7\u30DF\u30E5\u30EC\u30A4\u30B7\u30E7\u30F3\n\n - expected: \u30B7\u30DF\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3\n patterns: \u30B7\u30E5\u30DF\u30EC\u30FC\u30B7\u30E7\u30F3\n\n - expected: \u30B7\u30DF\u30E5\u30EC\u30FC\u30BF\u30FC\n patterns: \u30B7\u30E5\u30DF\u30EC\u30FC\u30BF\n\n - expected: \u30B7\u30E7\u30FC\n patterns: \u30B7\u30E7\u30A6\n\n - expected: \u30B9\u30FC\u30D1\u30FC\n patterns: \u30B9\u30FC\u30D1\u30A2\n\n - expected: \u30B9\u30B1\u30FC\u30EB\n patterns: \u30B9\u30B1\u30A4\u30EB\n\n - expected: \u30B9\u30BF\u30B8\u30A2\u30E0\n patterns: \u30B9\u30BF\u30C7\u30A3\u30A2\u30E0\n\n - expected: \u30B9\u30C8\u30A2\n patterns: \u30B9\u30C8\u30A2\u30FC\n\n - expected: \u30B9\u30DA\u30FC\u30B9\n patterns: \u30B9\u30DA\u30A4\u30B9\n\n - expected: \u30B9\u30EA\u30C3\u30D1\n patterns: \u30B9\u30EA\u30C3\u30D1\u30FC\n\n - expected: \u30BB\u30FC\u30D5\u30C6\u30A3\u30FC\n patterns: \u30BB\u30A4\u30D5\u30C6\u30A3\u30FC\n\n - expected: \u30BB\u30D4\u30A2\n patterns: \u30BB\u30D4\u30E4\n\n - expected: \u30BB\u30ED\u30CF\u30F3\n patterns: \u30BB\u30ED\u30D5\u30A1\u30F3\n\n - expected: \u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\n patterns: \u30BD\u30D5\u30C8\u30A6\u30A8\u30A2\n\n - expected: \u30BF\u30A4\u30E4\n patterns: \u30BF\u30A4\u30A2\n\n - expected: \u30C0\u30A4\u30E4\u30B0\u30E9\u30E0\n patterns: \u30C0\u30A4\u30A2\u30B0\u30E9\u30E0\n\n - expected: \u30C0\u30A4\u30E4\u30E2\u30F3\u30C9\n patterns: \u30C0\u30A4\u30A2\u30E2\u30F3\u30C9\n\n - expected: \u30C0\u30A4\u30E4\u30E9\u30FC\n patterns: \u30C0\u30A4\u30A2\u30E9\n\n - expected: \u30C0\u30A4\u30E4\u30EB\n patterns: \u30C0\u30A4\u30A2\u30EB\n\n - expected: \u30C0\u30DF\u30FC\n patterns: \u30C0\u30DF\u30A4\n\n - expected: \u30C1\u30A2\u30DF\u30F3\n patterns: \u30C6\u30A3\u30A2\u30DF\u30F3\n\n - expected: \u30C1\u30A7\u30FC\u30F3\n patterns: \u30C1\u30A7\u30A4\u30F3\n\n - expected: \u30C1\u30B1\u30C3\u30C8\n patterns: \u30C6\u30A3\u30B1\u30C3\u30C8\n\n - expected: \u30C1\u30C3\u30D7\n patterns: \u30C6\u30A3\u30C3\u30D7\n\n - expected: \u30C7\u30A3\u30B9\u30AB\u30C3\u30B7\u30E7\u30F3\n patterns: \u30C7\u30B9\u30AB\u30C3\u30B7\u30E7\u30F3\n\n - expected: \u30C7\u30A3\u30B9\u30AB\u30D0\u30EA\u30FC\n patterns: \u30C7\u30B9\u30AB\u30D0\u30EA\n\n - expected: \u30C7\u30A3\u30BA\u30CB\u30FC\n patterns: \u30C7\u30BA\u30CB\u30FC\n\n - expected: \u30C7\u30A3\u30B9\u30D7\u30EC\u30FC\n patterns: \u30C7\u30A3\u30B9\u30D7\u30EC\u30A4\n\n - expected: \u30C7\u30A3\u30B9\u30D7\u30EC\u30FC\n patterns: \u30C7\u30B9\u30D7\u30EC\u30FC\n\n - expected: \u30C7\u30A3\u30B9\u30D7\u30EC\u30FC\n patterns: \u30C7\u30B9\u30D7\u30EC\u30A4\n\n - expected: \u30C7\u30B8\u30BF\u30EB\n patterns: \u30C7\u30A3\u30B8\u30BF\u30EB\n\n - expected: \u30C6\u30EC\u30D5\u30A9\u30F3\u30B5\u30FC\u30D3\u30B9\n patterns: \u30C6\u30EC\u30DB\u30F3\u30B5\u30FC\u30D3\u30B9\n\n - expected: \u30C9\u30A2\n patterns: \u30C9\u30A2\u30FC\n\n - expected: \u30C8\u30CA\u30FC\n patterns: \u30C8\u30CA\u30A2\n\n - expected: \u30C9\u30E1\u30A4\u30F3\n patterns: \u30C9\u30E1\u30FC\u30F3\n\n - expected: \u30C8\u30E9\u30A4\u30A2\u30EB\n patterns: \u30C8\u30E9\u30A4\u30E4\u30EB\n\n - expected: \u30C9\u30EA\u30A2\n patterns: \u30C9\u30EA\u30E4\n\n - expected: \u30C8\u30EC\u30FC\u30CA\u30FC\n patterns: \u30C8\u30EC\u30A4\u30CA\u30FC\n\n - expected: \u30CB\u30E5\u30FC\u30C8\u30F3\n patterns: \u30CB\u30E5\u30A6\u30C8\u30F3\n\n - expected: \u30CD\u30FC\u30C1\u30E3\u30FC\n patterns: \u30CD\u30A4\u30C1\u30E3\u30FC\n\n - expected: \u30CD\u30FC\u30E0\n patterns: \u30CD\u30A4\u30E0\n\n - expected: \u30CD\u30AC\u30C6\u30A3\u30D6\n patterns: \u30CD\u30AC\u30C6\u30A3\u30F4\n\n - expected: \u30D0\u30FC\u30B8\u30E7\u30F3\n patterns: \u30F4\u30A1\u30FC\u30B8\u30E7\u30F3\n\n - expected: \u30CF\u30FC\u30C9\u30A6\u30A7\u30A2\n patterns: \u30CF\u30FC\u30C9\u30A6\u30A8\u30A2\n\n - expected: \u30D0\u30A4\u30A2\u30B9\n patterns: \u30D0\u30A4\u30E4\u30B9\n\n - expected: \u30D0\u30A4\u30AA\u30EA\u30F3\n patterns: \u30F4\u30A1\u30A4\u30AA\u30EA\u30F3\n\n - expected: \u30D0\u30AF\u30C6\u30EA\u30A2\n patterns: \u30D0\u30AF\u30C6\u30EA\u30E4\n\n - expected: \u30D0\u30CB\u30E9\n patterns: \u30F4\u30A1\u30CB\u30E9\n\n - expected: \u30D0\u30EA\u30A8\u30FC\u30B7\u30E7\u30F3\n patterns: \u30F4\u30A1\u30EA\u30A8\u30FC\u30B7\u30E7\u30F3\n\n - expected: \u30D0\u30EB\u30D6\n patterns: \u30F4\u30A1\u30EB\u30D6\n\n - expected: \u30D0\u30EC\u30A8\n patterns: \u30D0\u30EC\u30FC\n\n - expected: \u30CF\u30F3\u30C1\u30F3\u30B0\n patterns: \u30CF\u30F3\u30C6\u30A3\u30F3\u30B0\n\n - expected: \u30D4\u30A2\u30CE\n patterns: \u30D4\u30E4\u30CE\n\n - expected: \u30D3\u30B8\u30FC\n patterns: \u30D3\u30B8\u30A4\n\n - expected: \u30D3\u30C7\u30AA\n patterns: \u30F4\u30A3\u30C7\u30AA\n\n - expected: \u30D3\u30EA\u30E4\u30FC\u30C9\n patterns: \u30D3\u30EA\u30A2\u30FC\u30C9\n\n - expected: \u30D5\u30A1\u30F3\u30BF\u30B9\u30C6\u30A3\u30C3\u30AF\n patterns: \u30D5\u30A1\u30F3\u30BF\u30B9\u30C1\u30C3\u30AF\n\n - expected: \u30D5\u30A9\u30FC\u30AF\u30C0\u30F3\u30B9\n patterns: \u30DB\u30FC\u30AF\u30C0\u30F3\u30B9\n\n - expected: \u30D5\u30A9\u30EB\u30C0\u30FC\n patterns: \u30DB\u30EB\u30C0\u30FC\n\n - expected: \u30D5\u30A9\u30EF\u30FC\u30C9\n patterns: \u30DB\u30EF\u30FC\u30C9\n\n - expected: \u30D7\u30E9\u30B9\u30C1\u30C3\u30AF\n patterns: \u30D7\u30E9\u30B9\u30C6\u30A3\u30C3\u30AF\n\n - expected: \u30D7\u30E9\u30C3\u30C8\u30DB\u30FC\u30E0\n patterns: \u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\n\n - expected: \u30D7\u30EC\u30FC\u30E4\u30FC\n patterns: \u30D7\u30EC\u30A4\u30E4\u30FC\n\n - expected: \u30DA\u30FC\u30B8\n patterns: \u30DA\u30A4\u30B8\n\n - expected: \u30DA\u30FC\u30D1\u30FC\n patterns: \u30DA\u30A4\u30D1\u30FC\n\n - expected: \u30D9\u30FC\u30EB\n patterns: \u30F4\u30A7\u30FC\u30EB\n\n - expected: \u30D9\u30C6\u30E9\u30F3\n patterns: \u30F4\u30A7\u30C6\u30E9\u30F3\n\n - expected: \u30D9\u30CB\u30E4\n patterns: \u30D9\u30CB\u30A2\n\n - expected: \u30DC\u30FC\u30AB\u30EB\n patterns: \u30F4\u30A9\u30FC\u30AB\u30EB\n\n - expected: \u30DC\u30E9\u30F3\u30C6\u30A3\u30A2\n patterns: \u30F4\u30A9\u30E9\u30F3\u30C6\u30A3\u30A2\n\n - expected: \u30DC\u30E9\u30F3\u30C6\u30A3\u30A2\n patterns: \u30DC\u30E9\u30F3\u30C6\u30A3\u30E4\n\n - expected: \u30DC\u30EA\u30E5\u30FC\u30E0\n patterns: \u30F4\u30A9\u30EA\u30E5\u30FC\u30E0\n\n - expected: \u30DB\u30EB\u30DE\u30EA\u30F3\n patterns: \u30D5\u30A9\u30EB\u30DE\u30EA\u30F3\n\n - expected: \u30DE\u30EB\u30C1\n patterns: \u30DE\u30EB\u30C6\u30A3\n\n - expected: \u30DF\u30E9\u30FC\n patterns: \u30DF\u30E9\u30A2\n\n - expected: \u30E1\u30A4\u30F3\n patterns: \u30E1\u30FC\u30F3\n\n - expected: \u30E1\u30FC\u30AB\u30FC\n patterns: \u30E1\u30A4\u30AB\u30FC\n\n - expected: \u30E1\u30FC\u30EB\n patterns: \u30E1\u30A4\u30EB\n\n - expected: \u30E1\u30AC\u30DB\u30F3\n patterns: \u30E1\u30AC\u30D5\u30A9\u30F3\n\n - expected: \u30E1\u30C3\u30BB\u30FC\u30B8\n patterns: \u30E1\u30C3\u30BB\u30A4\u30B8\n\n - expected: \u30E1\u30C7\u30A3\u30A2\n patterns: \u30E1\u30C7\u30A3\u30E4\n\n - expected: \u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\n patterns: \u30E1\u30A4\u30F3\u30C6\u30CA\u30F3\u30B9\n\n - expected: \u30E2\u30EB\u30D2\u30CD\n patterns: \u30E2\u30EB\u30D5\u30A3\u30CD\n\n - expected: \u30E6\u30CB\u30D0\u30FC\u30B5\u30EB\n patterns: \u30E6\u30CB\u30F4\u30A1\u30FC\u30B5\u30EB\n\n - expected: \u30E6\u30CB\u30D5\u30A9\u30FC\u30E0\n patterns: \u30E6\u30CB\u30DB\u30FC\u30E0\n\n - expected: \u30E9\u30B8\u30A2\u30EB\n patterns: \u30E9\u30B8\u30E4\u30EB\n\n - expected: \u30E9\u30B8\u30AA\n patterns: \u30E9\u30C7\u30A3\u30AA\n\n - expected: \u30EA\u30D0\u30A4\u30D0\u30EB\n patterns: \u30EA\u30F4\u30A1\u30A4\u30F4\u30A1\u30EB\n\n - expected: \u30EC\u30A4\u30A2\u30A6\u30C8\n patterns: \u30EC\u30FC\u30A2\u30A6\u30C8\n\n - expected: \u30EC\u30A4\u30E4\u30FC\n patterns: \u30EC\u30A4\u30A2\u30FC\n\n - expected: \u30EC\u30A4\u30F3\u30B3\u30FC\u30C8\n patterns: \u30EC\u30FC\u30F3\u30B3\u30FC\u30C8\n\n - expected: \u30EC\u30FC\u30B6\u30FC\n patterns: \u30EC\u30A4\u30B6\u30FC\n\n - expected: \u30EC\u30FC\u30C0\u30FC\n patterns: \u30EC\u30A4\u30C0\u30FC\n\n - expected: \u30EC\u30BF\u30FC\n patterns: \u30EC\u30BF\u30A2\n\n - expected: \u30EC\u30D3\u30E5\u30FC\n patterns: \u30EC\u30F4\u30E5\u30FC\n\n - expected: \u30EC\u30D9\u30EB\n patterns: \u30EC\u30F4\u30A7\u30EB\n"] | ||
}); | ||
var originalStrRule = dictRule[Syntax.Str]; // 半角カタカナの使用をチェックする | ||
let originalStrRule = dictRule[Syntax.Str]; | ||
// 半角カタカナの使用をチェックする | ||
dictRule[Syntax.Str] = function (node) { | ||
originalStrRule(node); | ||
if (!(0, _nodeUtil.isUserWrittenNode)(node, context)) { | ||
return; | ||
} | ||
var text = getSource(node); | ||
var matches = (0, _matchIndex.matchCaptureGroupAll)(text, /([\uFF65-\uFF9F]+)/g); | ||
const text = getSource(node); | ||
const matches = (0, _matchIndex.matchCaptureGroupAll)(text, /([\uFF65-\uFF9F]+)/g); | ||
matches.forEach(match => { | ||
var { | ||
const { | ||
index, | ||
@@ -72,6 +62,4 @@ text | ||
}; | ||
return dictRule; | ||
} | ||
module.exports = { | ||
@@ -78,0 +66,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -9,10 +10,6 @@ 2.1.6.カタカナの長音 | ||
*/ | ||
var _path = _interopRequireDefault(require("path")); | ||
var _textlintRulePrh = _interopRequireDefault(require("textlint-rule-prh")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var report = function report(context) { | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const report = function (context) { | ||
// 辞書ベースのカタカナ末尾の長音のチェックを行う | ||
@@ -23,3 +20,2 @@ return _textlintRulePrh.default.fixer(context, { | ||
}; | ||
module.exports = { | ||
@@ -26,0 +22,0 @@ linter: report, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -9,17 +10,11 @@ 2.1.8.算用数字 | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _moji = _interopRequireDefault(require("moji")); | ||
var _matchIndex = require("match-index"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
function toHankaku(string) { | ||
return (0, _moji.default)(string).convert("ZE", "HE").toString(); | ||
} | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -36,7 +31,6 @@ RuleError, | ||
} | ||
var text = getSource(node); | ||
var matchRegExp = /([0-9]+)/; | ||
const text = getSource(node); | ||
const matchRegExp = /([0-9]+)/; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchRegExp).forEach(match => { | ||
var { | ||
const { | ||
index, | ||
@@ -51,6 +45,4 @@ text | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -57,0 +49,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -9,17 +10,11 @@ 2.1.9.アルファベット | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _moji = _interopRequireDefault(require("moji")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
function toHankaku(string) { | ||
return (0, _moji.default)(string).convert("ZE", "HE").toString(); | ||
} | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -36,7 +31,6 @@ RuleError, | ||
} | ||
var text = getSource(node); | ||
var matchRegExp = /([A-Z]+)/; | ||
const text = getSource(node); | ||
const matchRegExp = /([A-Z]+)/; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchRegExp).forEach(match => { | ||
var { | ||
const { | ||
index, | ||
@@ -51,6 +45,4 @@ text | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -57,0 +49,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -17,10 +18,6 @@ 2.2.1.ひらがなと漢字の使い分け | ||
*/ | ||
var _path = _interopRequireDefault(require("path")); | ||
var _textlintRulePrh = _interopRequireDefault(require("textlint-rule-prh")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var report = function report(context) { | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const report = function (context) { | ||
return _textlintRulePrh.default.fixer(context, { | ||
@@ -30,3 +27,2 @@ ruleContents: ["version: 1\nrules:\n - expected: \u3042\u3089\u304B\u3058\u3081\n patterns: \u4E88\u3081\n - expected: \u3044\u305A\u308C\n patterns: \u4F55\u308C\n - expected: \u3044\u3064\n patterns: \u4F55\u6642\n - expected: \u304A\u3088\u305D\n patterns: \u51E1\u305D\n - expected: \u304A\u3082\u3080\u308D\u306B\n patterns: \u5F90\u306B\n - expected: \u304B\u3048\u3063\u3066\n patterns: \u5374\u3063\u3066\n - expected: \u304B\u3064\n patterns: \u4E14\u3064\n - expected: \u304B\u3082\u3057\u308C\u306A\u3044\n patterns: \u304B\u3082\u77E5\u308C\u306A\u3044\n - expected: \u304F\u3060\u3055\u3044\n patterns: \u4E0B\u3055\u3044\n specs:\n - from: \u63D0\u51FA\u3057\u3066\u4E0B\u3055\u3044\u3002\n to : \u63D0\u51FA\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n - expected: \u3053\u308C\u307B\u3069\n patterns: \u3053\u308C\u7A0B\n - expected: \u3054$1\n patterns: /\u5FA1(\u89A7|\u610F\u898B)/\n specs:\n - from: \u5FA1\u89A7\u304F\u3060\u3055\u3044\n to: \u3054\u89A7\u304F\u3060\u3055\u3044\n - from: \u5FA1\u610F\u898B\n to: \u3054\u610F\u898B\n - expected: \u5B50\u3069\u3082\n patterns:\n - \u5B50\u4F9B\n - \u3053\u3069\u3082\n # \u63A5\u7D9A\u8A5E \u307E\u305F\u306F \u6587\u982D\u3067\u3042\u308B\u3053\u3068\u3092\u8003\u616E\u3059\u308B\n - expected: $1\u3055\u3089\u306B\n patterns:\n - /([\\s\u3002\u3001\\n\u3041-\u3093\u30A1-\u30F6])\u66F4\u306B/\n specs:\n - from: A\u306F\u52A0\u901F\u3057\u305F\u3001\u66F4\u306B\u52A0\u901F\u3057\u305F\u3002\n to: A\u306F\u52A0\u901F\u3057\u305F\u3001\u3055\u3089\u306B\u52A0\u901F\u3057\u305F\u3002\n - from: \u52A0\u901F\u3059\u308B\u3068\u66F4\u306B\u52A0\u901F\u3057\u305F\n to: \u52A0\u901F\u3059\u308B\u3068\u3055\u3089\u306B\u52A0\u901F\u3057\u305F\n - from: \u5909\u66F4\u306B\u52A0\u3048\u3066\n to: \u5909\u66F4\u306B\u52A0\u3048\u3066\n - expected: \u3055\u3089\u306B\n patterns: /^\u66F4\u306B/\n specs:\n - from: \u66F4\u306B\u52A0\u901F\u3057\u305F\u3002\n to: \u3055\u3089\u306B\u52A0\u901F\u3057\u305F\u3002\n - expected: \u3057\u304B\u3057\n patterns: \u7136\u3057\n - expected: \u3057\u3070\u3089\u304F\n patterns: \u66AB\u304F\n - expected: \u3059\u306A\u308F\u3061\n patterns: \u5373\u3061\n - expected: \u3059\u3079\u304D\n patterns: \u53EF\u304D\n - expected: \u305B\u3063\u304B\u304F\n patterns: \u6298\u89D2\n - expected: \u305F\u3073\u305F\u3073\n patterns: \u5EA6\u3005\n - expected: \u305F\u3060\u3057\n patterns: \u4F46\u3057\n# \u8AA4\u7206\u3092\u907F\u3051\u308B\u306E\u304C\u96E3\u3057\u3044\n# - expected: \u305F\u3061\n# patterns: \u9054\n\n - expected: \u3067\u304D\u308B\n patterns: \u51FA\u6765\u308B\n - expected: \u3069\u3053\n patterns: \u4F55\u51E6\n - expected: \u306A\u3044\u3057\n patterns: \u4E43\u81F3\n # \u306A\u304A => \u5C1A\n - expected: \u306A\u304A\u3055\u3089\n patterns: \u5C1A\u3055\u3089\n - expected: \u306A\u304B\u306A\u304B\n patterns: \u4E2D\u3005\n specs:\n - from: \u4E2D\u3005\u3067\u304D\u306A\u3044\u3053\u3068\u3060\u3002\n to: \u306A\u304B\u306A\u304B\u3067\u304D\u306A\u3044\u3053\u3068\u3060\u3002\n # \u7A0B -> \u307B\u3069\n - expected: \u3053\u308C\u307B\u3069\n patterns: \u3053\u308C\u7A0B\n - expected: \u307E\u305F\u306F\n patterns: \u53C8\u306F\n - expected: \u3080\u3057\u308D\n patterns: \u5BE7\u308D\n - expected: \u3081\u3063\u305F\u306B\n patterns: \u6EC5\u591A\u306B\n\n - expected: \u3082\u306F\u3084\n patterns: \u6700\u65E9\n - expected: \u3082\u3057\u304F\u306F\n patterns: \u82E5\u3057\u304F\u306F\n - expected: \u3082\u3063\u3066\n patterns:\n - \u4EE5\u3066\n - \u4EE5\u3063\u3066\n - expected: \u306E\u3088\u3046\u306B\n patterns: /\u306E\u69D8\u306B/\n specs:\n - from: \u4E00\u69D8\u306B\n to: \u4E00\u69D8\u306B\n - from: \u301C\u306E\u69D8\u306B\n to: \u301C\u306E\u3088\u3046\u306B\n - expected: \u3088\u307B\u3069\n patterns: \u4F59\u7A0B\n# \u6F22\u5B57\u3067\u66F8\u304F\n - expected: \u4E00\u5207\n patterns: \u3044\u3063\u3055\u3044\n - expected: \u5FC5\u305A\n patterns: \u304B\u306A\u3089\u305A\n - expected: \u5927\u3044\u306B\n patterns: \u304A\u304A\u3044\u306B\n - expected: \u5F37\u3044\u3066\n patterns: \u3057\u3044\u3066\n - expected: $1\u4E2D\n patterns: /(\u4E16\u754C|\u65E5)\u3058\u3085\u3046/\n spec:\n - from: \u4E00\u65E5\u3058\u3085\u3046\n to: \u4E00\u65E5\u4E2D\n - from: \u4E16\u754C\u3058\u3085\u3046\n to : \u4E16\u754C\u4E2D\n - expected: \u6642\u3005\n patterns: \u3068\u304D\u3069\u304D\n - expected: \u4F55\u3057\u308D\n patterns: \u306A\u306B\u3057\u308D\n specs:\n - from: \u306A\u306B\u3057\u308D\u56F0\u3063\u3066\u3044\u308B\n to: \u4F55\u3057\u308D\u56F0\u3063\u3066\u3044\u308B\n\n - expected: \u4F55\u3082\n patterns: \u306A\u306B\u3082\n specs:\n - from: \u306A\u306B\u3082\u77E5\u3089\u306A\u3044\n to: \u4F55\u3082\u77E5\u3089\u306A\u3044\n - expected: \u4F55\u3089\u304B\u306E\n patterns: \u306A\u3093\u3089\u304B\u306E\n specs:\n - from: \u306A\u3093\u3089\u304B\u306E\u7B56\u3002\n to: \u4F55\u3089\u304B\u306E\u7B56\u3002\n - expected: \u4F55\u3068\u3082\n patterns: \u306A\u3093\u3068\u3082\n spec:\n - from: \u306A\u3093\u3068\u3082\u8A00\u3048\u306A\u3044\u3002\n to: \u4F55\u3068\u3082\u8A00\u3048\u306A\u3044\u3002\n# \u6F22\u5B57\u3092\u4F7F\u3044\u5206\u3051\u308B\n #\u300C\u500B\u300D\u304C\u8868\u5916\u97F3\n - expected: \u7B87\u6240\n patterns: \u500B\u6240\n #\u300C\u500B\u300D\u304C\u8868\u5916\u97F3\n - expected: \u7B87\u6761\u66F8\u304D\n patterns: \u500B\u6761\u66F8\u304D\n # \u52D5\u8A5E\u3067\u306F\u300C\u4ED8\u5C5E\u3059\u308B\u300D\u304C\u4E00\u822C\u7684\n - expected: \u4ED8\u5C5E\u3059\u308B\n patterns: \u9644\u5C5E\u3059\u308B\n #\u300C\u6469\u300D\u306F\u300C\u3053\u3059\u308B\u300D\u3001\u300C\u78E8\u300D\u306F\u300C\u78E8\u304F\uFF08\u307F\u304C\u304F\uFF09\u300D\u306E\u610F\u5473\n - expected: \u6469\u8017\n patterns: \u78E8\u8017\n - expected: \u6469\u6EC5\n patterns: \u78E8\u6EC5\n# \u54C1\u8A5E\u30FB\u610F\u5473\u3067\u4F7F\u3044\u5206\u3051\u308B\n - expected: \u304A\u3088\u3073\n patterns: \u53CA\u3073\n - expected: \u304C\u53CA\u3076\n patterns: \u304C\u304A\u3088\u3076\n specs:\n - from: \uFF08\u4F8B\uFF09\u5F71\u97FF\u304C\u304A\u3088\u3076\u3002\n to: \uFF08\u4F8B\uFF09\u5F71\u97FF\u304C\u53CA\u3076\u3002\n# \u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\u304C\u96E3\u3057\u3044\u306E\u7121\u52B9\n# - expected: $1\u3044\u305F\u3057\u307E\u3059\n# patterns: ([^\u5F15\u62DB\u9001\u8A98\u62C9\u4E00\u5408\u6975\u96C5\u7B46\u98A8])\u81F4\u3057\u307E\u3059\n# specs:\n# - from: \uFF08\u4F8B\uFF09\u304A\u9858\u3044\u81F4\u3057\u307E\u3059\u3002\n# to: \uFF08\u4F8B\uFF09\u304A\u9858\u3044\u3044\u305F\u3057\u307E\u3059\u3002\n - expected: \u81F4\u3059\n patterns: \u3044\u305F\u3059\n specs:\n - from: \uFF08\u4F8B\uFF09\u601D\u3044\u3092\u3044\u305F\u3059\u3002\n to: \uFF08\u4F8B\uFF09\u601D\u3044\u3092\u81F4\u3059\u3002\n # \uFF08\u63A5\u7D9A\u8A5E\u306E\u5834\u5408\uFF09\u3072\u3089\u304C\u306A\u3092\u4F7F\u3046\n - expected: \u3057\u305F\u304C\u3063\u3066\n patterns: /(\u306B)?\u5F93\u3063\u3066/\n regexpMustEmpty: $1\n #\uFF08\u52D5\u8A5E\u306E\u5834\u5408\uFF09\u6F22\u5B57\u3092\u4F7F\u3046\n - expected: \u306B\u5F93\u3063\u3066\n pattern: \u306B\u3057\u305F\u304C\u3063\u3066\n - expected: \u5F93\u3046\n patterns: \u3057\u305F\u304C\u3046\n - expected: $1\u3060\u3059\n patterns: /(\u3046\u308A|\u58F2\u308A|\u9001\u308A|\u3055\u3057|\u5DEE\u3057|\u9020\u308A|\u5275\u308A|\u3068\u308A|\u53D6\u308A|\u306F\u304D|\u3088\u3073|\u547C\u3073|\u3088\u307F|\u8AAD\u307F|\u52D5\u304D|\u7B11\u3044)\u51FA\u3059/\n specs:\n - from: \uFF08\u4F8B\uFF09\u52D5\u304D\u51FA\u3059\u3002\n to: \uFF08\u4F8B\uFF09\u52D5\u304D\u3060\u3059\u3002\n - from: \uFF08\u4F8B\uFF09\u7B11\u3044\u51FA\u3059\u3002\n to: \uFF08\u4F8B\uFF09\u7B11\u3044\u3060\u3059\u3002\n - from: \u63A2\u3057\u3060\u3059\n to: \u63A2\u3057\u3060\u3059\n - expected: $1\u51FA\u3059\n patterns: /(\u63A2\u3057|\u898B\u3064\u3051|\u898B\u3044)\u3060\u3059/\n specs:\n - from: \u63A2\u3057\u3060\u3059\n to: \u63A2\u3057\u51FA\u3059\n - from: \u898B\u3064\u3051\u3060\u3059\n to: \u898B\u3064\u3051\u51FA\u3059\n #\uFF08\u52D5\u8A5E\u306E\u5834\u5408\uFF09\u6F22\u5B57\u3092\u4F7F\u3046\n - expected: $1\u4ED8\u304F\n patterns: /(\u6C17\u304C|\u5229\u5B50\u304C)\u3064\u304F/\n specs:\n - from: \u6C17\u304C\u3064\u304F\u3002\n to: \u6C17\u304C\u4ED8\u304F\u3002\n - from: \u5229\u5B50\u304C\u3064\u304F\u3002\n to: \u5229\u5B50\u304C\u4ED8\u304F\u3002\n #\uFF08\u63A5\u5C3E\u8A9E\u306E\u5834\u5408\uFF09\u3072\u3089\u304C\u306A\u3092\u4F7F\u3046\n - expected: \u6D3B\u6C17\u3065\u304F\n patterns: \u6D3B\u6C17\u4ED8\u304F\n specs:\n - from: \u6D3B\u6C17\u4ED8\u304F\n to: \u6D3B\u6C17\u3065\u304F\n - expected: \u51CD\u308A\u3064\u304F\n patterns: \u51CD\u308A\u4ED8\u304F\n specs:\n - from: \u51CD\u308A\u4ED8\u304F\n to: \u51CD\u308A\u3064\u304F\n - expected: $1\u3064\u304D\n patterns: /(\u624B|\u76EE|\u8170)\u4ED8\u304D/\n specs:\n - from: \u76EE\u4ED8\u304D\u3002\n to: \u76EE\u3064\u304D\u3002\n - from: \u624B\u4ED8\u304D\u3002\n to: \u624B\u3064\u304D\u3002\n - expected: $1\u3068\u304A\u308A\n patterns: /(\u601D\u3063\u305F|\u4EE5\u4E0B\u306E)\u901A\u308A/\n specs:\n - from: \uFF08\u4F8B\uFF09\u601D\u3063\u305F\u901A\u308A\u3002\n to: \uFF08\u4F8B\uFF09\u601D\u3063\u305F\u3068\u304A\u308A\u3002\n - from: \u4EE5\u4E0B\u306E\u901A\u308A\u3067\u3059\u3002\n to: \u4EE5\u4E0B\u306E\u3068\u304A\u308A\u3067\u3059\u3002\n #\uFF08\u6570\u8A5E\u306B\u4ED8\u304F\u5834\u5408\uFF09\n - expected: $1\u901A\u308A\n patterns: /(\\d)\u3068\u304A\u308A/\n specs:\n - from: (\u4F8B)2\u3068\u304A\u308A\u306E\u65B9\u6CD5\n to: (\u4F8B)2\u901A\u308A\u306E\u65B9\u6CD5\n # (\u88DC\u52A9\u52D5\u8A5E\u306E\u5834\u5408)\u3072\u3089\u304C\u306A\u3092\u4F7F\u3046\n - expected: \u3066\u307B\u3057\u3044\n patterns: \u3066\u6B32\u3057\u3044\n specs:\n - from: \u8003\u3048\u3066\u6B32\u3057\u3044\n to: \u8003\u3048\u3066\u307B\u3057\u3044\n - expected: \u304C\u6B32\u3057\u3044\n patterns: \u304C\u307B\u3057\u3044\n specs:\n - from: \u3053\u306E\u672C\u304C\u307B\u3057\u3044\n to: \u3053\u306E\u672C\u304C\u6B32\u3057\u3044"] | ||
}; | ||
module.exports = { | ||
@@ -33,0 +29,0 @@ linter: report, |
@@ -5,18 +5,13 @@ // LICENSE : MIT | ||
var _nodeUtil = require("./util/node-util"); | ||
var _japaneseNumeralsToNumber = _interopRequireDefault(require("japanese-numerals-to-number")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
function matchToReplace(text, pattern, matchFn) { | ||
var match = pattern.exec(text); | ||
if (match) { | ||
return matchFn(text, pattern, match); | ||
} | ||
return null; | ||
} // http://www.drk7.jp/MT/archives/001587.html | ||
} | ||
// http://www.drk7.jp/MT/archives/001587.html | ||
function _num2ja(num, opt) { | ||
@@ -39,16 +34,11 @@ var sign = { | ||
var shins = []; | ||
for (var i = int.length; i > 0; i -= 4) { | ||
for (let i = int.length; i > 0; i -= 4) { | ||
shins.push(int.substring(i, i - 4)); | ||
} | ||
if (shins.length >= 18) { | ||
return suffices[17]; | ||
} | ||
var suffix = 0; | ||
for (var _i = 0; _i < shins.length; _i++) { | ||
var shin = shins[_i]; | ||
for (let i = 0; i < shins.length; i++) { | ||
var shin = shins[i]; | ||
if (shin == "0000") { | ||
@@ -58,14 +48,11 @@ suffix++; | ||
} | ||
var sens = ""; | ||
var keta = 0; | ||
var digits = shin.split("").reverse(); | ||
for (var j = 0; j < digits.length; j++) { | ||
var digit = digits[j]; | ||
if (opt["fixed4"] || opt["with_arabic"]) { | ||
if (opt["with_arabic"]) { | ||
var flg = 0; // 余分な 0 を削除する | ||
var flg = 0; | ||
// 余分な 0 を削除する | ||
if (digit == "0") { | ||
@@ -75,3 +62,2 @@ for (var k = j + 1; k < digits.length; k++) { | ||
} | ||
if (flg == 0) { | ||
@@ -81,3 +67,2 @@ digit = ""; | ||
} | ||
sens = digit + sens; | ||
@@ -89,3 +74,2 @@ } else { | ||
var suuji = digit == 1 && !opt["p_one"] && keta > 0 ? "" : zero2nine[digit]; | ||
if (digit != 0) { | ||
@@ -95,21 +79,15 @@ sens = suuji + ten2thou[keta] + sens; | ||
} | ||
keta++; | ||
} | ||
seisuu = sens + suffices[suffix++] + seisuu; | ||
} | ||
var result = (sign[sig] || "") + seisuu; | ||
result = result || zero; | ||
if (fract) { | ||
result = result + point + fract; | ||
} | ||
return result; | ||
} | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -126,12 +104,12 @@ RuleError, | ||
} | ||
var text = getSource(node); // 漢数字 -> 算用数字 | ||
var toNumber = (text, pattern, match) => { | ||
var matchedString = match[0]; | ||
var index = match.index; | ||
var expected = matchedString.replace(pattern, function (all, match) { | ||
const text = getSource(node); | ||
// 漢数字 -> 算用数字 | ||
const toNumber = (text, pattern, match) => { | ||
const matchedString = match[0]; | ||
const index = match.index; | ||
const expected = matchedString.replace(pattern, function (all, match) { | ||
return all.replace(match, (0, _japaneseNumeralsToNumber.default)(match)); | ||
}); | ||
var ruleError = new RuleError("".concat(matchedString, " => ").concat(expected, "\n\u6570\u91CF\u3092\u8868\u73FE\u3057\u3001\u6570\u3092\u6570\u3048\u3089\u308C\u308B\u3082\u306E\u306F\u7B97\u7528\u6570\u5B57\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u4EFB\u610F\u306E\u6570\u306B\u7F6E\u304D\u63DB\u3048\u3066\u3082\u901A\u7528\u3059\u308B\u8A9E\u53E5\u304C\u3053\u308C\u306B\u8A72\u5F53\u3057\u307E\u3059\u3002"), { | ||
const ruleError = new RuleError(`${matchedString} => ${expected} | ||
数量を表現し、数を数えられるものは算用数字を使用します。任意の数に置き換えても通用する語句がこれに該当します。`, { | ||
index: index, | ||
@@ -142,2 +120,3 @@ fix: fixer.replaceTextRange([index, index + matchedString.length], expected) | ||
}; | ||
/** | ||
@@ -149,7 +128,5 @@ * 算用数字 -> 漢数字 | ||
*/ | ||
var toKanNumber = (text, pattern, match) => { | ||
var matchedString = match[0]; | ||
var expected = matchedString.replace(pattern, function (all, match) { | ||
const toKanNumber = (text, pattern, match) => { | ||
const matchedString = match[0]; | ||
const expected = matchedString.replace(pattern, function (all, match) { | ||
return all.replace(match, _num2ja(match, { | ||
@@ -159,11 +136,12 @@ with_arabic: false | ||
}); | ||
var index = match.index; | ||
report(node, new RuleError("".concat(matchedString, " => ").concat(expected, "\n\u6163\u7528\u7684\u8868\u73FE\u3001\u719F\u8A9E\u3001\u6982\u6570\u3001\u56FA\u6709\u540D\u8A5E\u3001\u526F\u8A5E\u306A\u3069\u3001\u6F22\u6570\u5B57\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u304C\u4E00\u822C\u7684\u306A\u8A9E\u53E5\u3067\u306F\u6F22\u6570\u5B57\u3092\u4F7F\u3044\u307E\u3059\u3002"), { | ||
const index = match.index; | ||
report(node, new RuleError(`${matchedString} => ${expected} | ||
慣用的表現、熟語、概数、固有名詞、副詞など、漢数字を使用することが一般的な語句では漢数字を使います。`, { | ||
index: index, | ||
fix: fixer.replaceTextRange([index, index + matchedString.length], expected) | ||
})); | ||
}; // ignorePatternにマッチしたらmatchFnを呼ばないようにする(エラーを無視する) | ||
}; | ||
var ignoreWhenMatched = (ignorePatterns, matchFn) => { | ||
// ignorePatternにマッチしたらmatchFnを呼ばないようにする(エラーを無視する) | ||
const ignoreWhenMatched = (ignorePatterns, matchFn) => { | ||
return (text, pattern, match) => { | ||
@@ -176,7 +154,7 @@ if (ignorePatterns.some(p => p.test(text))) { | ||
}; | ||
}; // *数えられる数字は算用数字を使う | ||
}; | ||
// *数えられる数字は算用数字を使う | ||
// 数十万、数百億にマッチしないように"数"という文字から始まるものは除外 | ||
// https://github.com/textlint-ja/textlint-rule-preset-jtf-style/pull/23 | ||
matchToReplace(text, /([一二三四五六七八九十壱弐参拾百〇]+)[兆億万]/g, ignoreWhenMatched([/(数|何)([一二三四五六七八九十壱弐参拾百〇]+)[兆億万]/g], toNumber)); | ||
@@ -190,10 +168,10 @@ matchToReplace(text, /([一二三四五六七八九十壱弐参拾百〇]+)つ/g, ignoreWhenMatched([/[一二三四五六七八九]つ(返事|子|ひとつ|星|編|葉|橋|と[無な]い|に一つ)/g, /(ただ|唯|[女男]手|穴|瓜|馬鹿の)[一二]つ/g], toNumber)); | ||
matchToReplace(text, /第([一二三四五六七八九十壱弐参拾百〇]+)章/g, toNumber); | ||
matchToReplace(text, /第([一二三四五六七八九十壱弐参拾百〇]+)節/g, toNumber); // *漢数字を使う | ||
matchToReplace(text, /第([一二三四五六七八九十壱弐参拾百〇]+)節/g, toNumber); | ||
// *漢数字を使う | ||
// 慣用的表現、熟語、概数、固有名詞、副詞など、漢数字を使用することが一般的な語句では漢数字を使います。 | ||
matchToReplace(text, /世界(1)/g, toKanNumber); | ||
matchToReplace(text, /(1)時的/g, toKanNumber); | ||
matchToReplace(text, /(1)部分/g, toKanNumber); | ||
matchToReplace(text, /第(3)者/g, toKanNumber); // 1種 -> 一種: 11種類などにはマッチしない | ||
matchToReplace(text, /第(3)者/g, toKanNumber); | ||
// 1種 -> 一種: 11種類などにはマッチしない | ||
matchToReplace(text, /[^\d](1)種(?!類)/g, toKanNumber); | ||
@@ -208,7 +186,6 @@ matchToReplace(text, /(1)部の/g, toKanNumber); | ||
} | ||
}; | ||
} // 2.2.2. 算用数字と漢数字の使い分け | ||
} | ||
// 2.2.2. 算用数字と漢数字の使い分け | ||
module.exports = { | ||
@@ -215,0 +192,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -7,10 +8,6 @@ 2.2.3. 一部の助数詞の表記 | ||
*/ | ||
var _textlintRulePrh = _interopRequireDefault(require("textlint-rule-prh")); | ||
var _path = _interopRequireDefault(require("path")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var report = function report(context) { | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const report = function (context) { | ||
return _textlintRulePrh.default.fixer(context, { | ||
@@ -20,3 +17,2 @@ ruleContents: ["version: 1\nrules:\n - expected: $1\u304B$2\n patterns:\n - /(\\d+)\u30F6([\u6240\u6708\u56FD\u5E74])/\n specs:\n - from: 3\u30F6\u6708\u672A\u6E80\u3002\n to: 3\u304B\u6708\u672A\u6E80\u3002\n - from: 10\u30F6\u6240\n to: 10\u304B\u6240\n - from: 5\u30F6\u5E74\u8A08\u753B\u3002\n to: 5\u304B\u5E74\u8A08\u753B\u3002"] | ||
}; | ||
module.exports = { | ||
@@ -23,0 +19,0 @@ linter: report, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -9,9 +10,6 @@ 3.1.1. 全角文字と半角文字の間 | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -28,10 +26,8 @@ RuleError, | ||
} | ||
var text = getSource(node); // アルファベットと全角の間は半角スペースではない | ||
var betweenHanAndZen = (0, _matchIndex.matchCaptureGroupAll)(text, /[A-Za-z0-9]( )(?:[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])/); | ||
var betweenZenAndHan = (0, _matchIndex.matchCaptureGroupAll)(text, /(?:[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])( )[A-Za-z0-9]/); | ||
var reportMatch = match => { | ||
var { | ||
let text = getSource(node); | ||
// アルファベットと全角の間は半角スペースではない | ||
let betweenHanAndZen = (0, _matchIndex.matchCaptureGroupAll)(text, /[A-Za-z0-9]( )(?:[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])/); | ||
let betweenZenAndHan = (0, _matchIndex.matchCaptureGroupAll)(text, /(?:[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])( )[A-Za-z0-9]/); | ||
const reportMatch = match => { | ||
const { | ||
index | ||
@@ -44,10 +40,7 @@ } = match; | ||
}; | ||
betweenHanAndZen.forEach(reportMatch); | ||
betweenZenAndHan.forEach(reportMatch); | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -54,0 +47,0 @@ linter: reporter, |
@@ -5,16 +5,7 @@ // LICENSE : MIT | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _templateObject; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
/* | ||
@@ -26,5 +17,4 @@ 3.1.2. 全角文字どうし | ||
*/ | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -41,19 +31,17 @@ RuleError, | ||
} | ||
var text = getSource(node); // 全角同士の間は半角スペースを入れない | ||
var matchReg = rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["", "( )", ""])), _regexp.japaneseRegExp, _regexp.japaneseRegExp); | ||
var katakakana = /[ァ-ヶ]( )[ァ-ヶ]/; | ||
const text = getSource(node); | ||
// 全角同士の間は半角スペースを入れない | ||
const matchReg = rx`${_regexp.japaneseRegExp}( )${_regexp.japaneseRegExp}`; | ||
const katakakana = /[ァ-ヶ]( )[ァ-ヶ]/; | ||
(0, _matchIndex.matchAll)(text, matchReg).forEach(match => { | ||
var { | ||
const { | ||
input, | ||
captureGroups | ||
} = match; // ただしカタカナ複合語の場合を除きます。 | ||
} = match; | ||
// ただしカタカナ複合語の場合を除きます。 | ||
if (katakakana.test(input)) { | ||
return; | ||
} | ||
captureGroups.forEach(captureGroup => { | ||
var index = captureGroup.index; | ||
const index = captureGroup.index; | ||
report(node, new RuleError("原則として、全角文字どうしの間にスペースを入れません。", { | ||
@@ -66,6 +54,4 @@ index: index, | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -72,0 +58,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -8,9 +9,6 @@ 3.2.カタカナ語間のスペースの有無 | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
module.exports = function (context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -26,11 +24,9 @@ RuleError, | ||
} | ||
var text = getSource(node); // カタカナ(カタカナ以外)カタカナ のパターンを取り出す | ||
const text = getSource(node); | ||
// カタカナ(カタカナ以外)カタカナ のパターンを取り出す | ||
(0, _matchIndex.matchCaptureGroupAll)(text, /[ァ-ヶー]([^[ァ-ヶー])[ァ-ヶー]/).forEach(match => { | ||
// カタカナの間を全角スペースでは区切らない | ||
var { | ||
const { | ||
text | ||
} = match; | ||
if (text === " ") { | ||
@@ -43,5 +39,4 @@ report(node, new RuleError("カタカナ語間は中黒(・)または半角スペースを用いてカタカナ語を区切ります", { | ||
} | ||
}; | ||
}; | ||
//# sourceMappingURL=3.2.js.map |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -7,17 +8,20 @@ 3.3. かっこ類と隣接する文字の間のスペースの有無 | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var brackets = ["\\[", "\\]", "(", ")", "[", "]", "「", "」", "『", "』"]; | ||
var leftBrackets = brackets.map(bracket => { | ||
var _regexp = require("./util/regexp"); | ||
const brackets = ["\\(", "\\)", "\\[", "\\]", "(", ")", "[", "]", "「", "」", "『", "』"]; | ||
const leftBrackets = brackets.map(bracket => { | ||
return new RegExp("([ ])" + bracket, "g"); | ||
}); | ||
var rightBrackets = brackets.map(bracket => { | ||
const rightBrackets = brackets.map(bracket => { | ||
return new RegExp(bracket + "([ ])", "g"); | ||
}); | ||
function reporter(context) { | ||
var { | ||
const leftHalfParentheses = new RegExp(`${_regexp.japaneseRegExp.source}(\\()`, "g"); | ||
const rightHalfParentheses = new RegExp(`(\\))${_regexp.japaneseRegExp.source}`, "g"); | ||
const defaultOptions = { | ||
allowOutsideHalfParentheses: true, | ||
requireOutsideHalfParentheses: false | ||
}; | ||
function reporter(context, options) { | ||
let { | ||
Syntax, | ||
@@ -29,2 +33,4 @@ RuleError, | ||
} = context; | ||
const allowOutsideHalfParentheses = options.allowOutsideHalfParentheses ?? defaultOptions.allowOutsideHalfParentheses; | ||
const requireOutsideHalfParentheses = options.requireOutsideHalfParentheses ?? defaultOptions.requireOutsideHalfParentheses; | ||
return { | ||
@@ -35,10 +41,12 @@ [Syntax.Str](node) { | ||
} | ||
var text = getSource(node); // 左にスペース | ||
const text = getSource(node); | ||
// 左にスペース | ||
leftBrackets.forEach(pattern => { | ||
(0, _matchIndex.matchCaptureGroupAll)(text, pattern).forEach(match => { | ||
var { | ||
const { | ||
index | ||
} = match; | ||
if (allowOutsideHalfParentheses && text.substring(index, index + 2) === " (") { | ||
return; | ||
} | ||
report(node, new RuleError("かっこの外側、内側ともにスペースを入れません。", { | ||
@@ -49,10 +57,12 @@ index: index, | ||
}); | ||
}); // 右にスペース | ||
}); | ||
// 右にスペース | ||
rightBrackets.forEach(pattern => { | ||
(0, _matchIndex.matchCaptureGroupAll)(text, pattern).forEach(match => { | ||
var { | ||
index, | ||
text | ||
const { | ||
index | ||
} = match; | ||
if (allowOutsideHalfParentheses && text.substring(index - 1, index + 1) === ") ") { | ||
return; | ||
} | ||
report(node, new RuleError("かっこの外側、内側ともにスペースを入れません。", { | ||
@@ -64,7 +74,27 @@ index: index, | ||
}); | ||
if (requireOutsideHalfParentheses) { | ||
// 左にスペース必須 | ||
(0, _matchIndex.matchCaptureGroupAll)(text, leftHalfParentheses).forEach(match => { | ||
const { | ||
index | ||
} = match; | ||
report(node, new RuleError("半角かっこの外側に半角スペースが必要です。", { | ||
index, | ||
fix: fixer.replaceTextRange([index, index + 1], " " + match.text) | ||
})); | ||
}); | ||
// 右にスペース必須 | ||
(0, _matchIndex.matchCaptureGroupAll)(text, rightHalfParentheses).forEach(match => { | ||
const { | ||
index | ||
} = match; | ||
report(node, new RuleError("半角かっこの外側に半角スペースが必要です。", { | ||
index, | ||
fix: fixer.replaceTextRange([index, index + 1], match.text + " ") | ||
})); | ||
}); | ||
} | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -71,0 +101,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -10,14 +11,10 @@ 4.1.1. 句点(。) | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var brackets = ["」", ")", "\\)"]; | ||
var leftBrackets = brackets.map(bracket => { | ||
const brackets = ["」", ")", "\\)"]; | ||
const leftBrackets = brackets.map(bracket => { | ||
return new RegExp("(。)" + bracket, "g"); | ||
}); | ||
var reporter = function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -34,7 +31,6 @@ RuleError, | ||
} | ||
var text = getSource(node); | ||
let text = getSource(node); | ||
leftBrackets.forEach(pattern => { | ||
(0, _matchIndex.matchCaptureGroupAll)(text, pattern).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -49,6 +45,4 @@ } = match; | ||
} | ||
}; | ||
}; | ||
module.exports = { | ||
@@ -55,0 +49,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -10,9 +11,6 @@ | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -29,8 +27,7 @@ RuleError, | ||
} | ||
var text = getSource(node); // 和文. はエラー | ||
var matchReg = /(?:[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])(\.)/g; | ||
let text = getSource(node); | ||
// 和文. はエラー | ||
const matchReg = /(?:[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])(\.)/g; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchReg).forEach(match => { | ||
var index = match.index; | ||
const index = match.index; | ||
report(node, new RuleError("和文の句読点としてはピリオドを使用しません。", { | ||
@@ -42,6 +39,4 @@ index: index, | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -48,0 +43,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -14,9 +15,6 @@ 4.2.1. 感嘆符(!) | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -33,8 +31,7 @@ RuleError, | ||
} | ||
var text = getSource(node); // 半角の!は利用しない | ||
var matchRegExp = /(?:[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])(!)/; | ||
let text = getSource(node); | ||
// 半角の!は利用しない | ||
const matchRegExp = /(?:[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])(!)/; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchRegExp).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -46,8 +43,8 @@ } = match; | ||
})); | ||
}); // !の後ろは全角スペースが推奨 | ||
}); | ||
// !の後ろは全角スペースが推奨 | ||
// 半角スペースである場合 | ||
var matchAfter = /!( )[^\n]/; | ||
const matchAfter = /!( )[^\n]/; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchAfter).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -61,6 +58,4 @@ } = match; | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -67,0 +62,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -13,21 +14,10 @@ 4.2.2.疑問符(?) | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _templateObject; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -44,8 +34,7 @@ RuleError, | ||
} | ||
var text = getSource(node); // 和文で半角の?は利用しない | ||
var matchRegExp = rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["", "(?)"], ["", "(\\?)"])), _regexp.japaneseRegExp); | ||
let text = getSource(node); | ||
// 和文で半角の?は利用しない | ||
const matchRegExp = rx`${_regexp.japaneseRegExp}(\?)`; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchRegExp).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -57,8 +46,8 @@ } = match; | ||
})); | ||
}); // ?の後ろは全角スペースが推奨 | ||
}); | ||
// ?の後ろは全角スペースが推奨 | ||
// 半角スペースである場合はエラーとする | ||
var matchAfter = /?( )[^\n]/; | ||
const matchAfter = /?( )[^\n]/; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchAfter).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -72,6 +61,4 @@ } = match; | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -78,0 +65,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -11,21 +12,10 @@ 4.2.4.中黒(・) | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _templateObject; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -42,8 +32,7 @@ RuleError, | ||
} | ||
var text = getSource(node); // 和文で半角の・は利用しない | ||
var matchHanNakaguro = rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["(?:", "|[a-zA-Z])(\uFF65)(?:", "|[a-zA-Z])"])), _regexp.japaneseRegExp, _regexp.japaneseRegExp); | ||
const text = getSource(node); | ||
// 和文で半角の・は利用しない | ||
const matchHanNakaguro = rx`(?:${_regexp.japaneseRegExp}|[a-zA-Z])(・)(?:${_regexp.japaneseRegExp}|[a-zA-Z])`; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchHanNakaguro).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -57,6 +46,4 @@ } = match; | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -63,0 +50,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -7,9 +8,6 @@ 4.2.5.波線(〜) | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -26,8 +24,7 @@ RuleError, | ||
} | ||
var text = getSource(node); // 数値の区切りに半角の~は利用しない | ||
var matchHanQuestion = /\d(~)\d/g; | ||
const text = getSource(node); | ||
// 数値の区切りに半角の~は利用しない | ||
const matchHanQuestion = /\d(~)\d/g; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchHanQuestion).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -41,6 +38,4 @@ } = match; | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -47,0 +42,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -9,23 +10,11 @@ 4.2.6.ハイフン(-) | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _mergeMatches = _interopRequireDefault(require("./util/merge-matches")); | ||
var _templateObject, _templateObject2; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
module.exports = function (context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -41,15 +30,15 @@ RuleError, | ||
} | ||
var text = getSource(node); // 和文ではハイフン(-)を使用しません | ||
let text = getSource(node); | ||
// 和文ではハイフン(-)を使用しません | ||
// right | ||
var rightMatches = (0, _matchIndex.matchCaptureGroupAll)(text, rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["", "(-)"], ["", "(\\-)"])), _regexp.japaneseRegExp)); // left | ||
var leftMatches = (0, _matchIndex.matchCaptureGroupAll)(text, rx(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["(-)", ""], ["(\\-)", ""])), _regexp.japaneseRegExp)); | ||
var matches = (0, _mergeMatches.default)(leftMatches, rightMatches); | ||
const rightMatches = (0, _matchIndex.matchCaptureGroupAll)(text, rx`${_regexp.japaneseRegExp}(\-)`); | ||
// left | ||
const leftMatches = (0, _matchIndex.matchCaptureGroupAll)(text, rx`(\-)${_regexp.japaneseRegExp}`); | ||
const matches = (0, _mergeMatches.default)(leftMatches, rightMatches); | ||
matches.forEach(match => { | ||
var { | ||
const { | ||
index | ||
} = match; | ||
report(node, new RuleError("\u539F\u5247\u3068\u3057\u3066\u548C\u6587\u3067\u306F\u30CF\u30A4\u30D5\u30F3(-)\u3092\u4F7F\u7528\u3057\u307E\u305B\u3093\u3002\n\u4F8B\u5916\u306F\u3001\u4F4F\u6240\u3084\u96FB\u8A71\u756A\u53F7\u306E\u533A\u5207\u308A\u306B\u4F7F\u3046\u5834\u5408\u3067\u3059\u3002", { | ||
report(node, new RuleError(`原則として和文ではハイフン(-)を使用しません。 | ||
例外は、住所や電話番号の区切りに使う場合です。`, { | ||
index: index | ||
@@ -59,5 +48,4 @@ })); | ||
} | ||
}; | ||
}; | ||
//# sourceMappingURL=4.2.6.js.map |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -9,21 +10,10 @@ 4.2.7.コロン(:) | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _templateObject; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -40,8 +30,8 @@ RuleError, | ||
} | ||
const text = getSource(node); | ||
// "和文:" というような半角:は使用しない | ||
var text = getSource(node); // "和文:" というような半角:は使用しない | ||
var matchHanQuestion = rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["(?:", ")(:)"])), _regexp.japaneseRegExp); | ||
const matchHanQuestion = rx`(?:${_regexp.japaneseRegExp})(:)`; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchHanQuestion).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -55,6 +45,4 @@ } = match; | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -61,0 +49,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -8,21 +9,10 @@ 4.2.8.セミコロン(;) | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _templateObject; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
module.exports = function (context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -38,8 +28,7 @@ RuleError, | ||
} | ||
var text = getSource(node); // "和文;" というような半角;は使用しない | ||
var matchRegExp = rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["(?:", ")(;)"])), _regexp.japaneseRegExp); | ||
const text = getSource(node); | ||
// "和文;" というような半角;は使用しない | ||
const matchRegExp = rx`(?:${_regexp.japaneseRegExp})(;)`; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchRegExp).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -52,5 +41,4 @@ } = match; | ||
} | ||
}; | ||
}; | ||
//# sourceMappingURL=4.2.8.js.map |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -12,21 +13,10 @@ 4.2.9.ダッシュ(-) | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _templateObject; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
module.exports = function (context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -42,8 +32,7 @@ RuleError, | ||
} | ||
var text = getSource(node); // 和文でダッシュは使用しない | ||
var matchRegExp = rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["(?:", ")([\u2012-\u2015])"], ["(?:", ")([\\u2012-\\u2015])"])), _regexp.japaneseRegExp); | ||
const text = getSource(node); | ||
// 和文でダッシュは使用しない | ||
const matchRegExp = rx`(?:${_regexp.japaneseRegExp})([\u2012-\u2015])`; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchRegExp).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -56,5 +45,4 @@ } = match; | ||
} | ||
}; | ||
}; | ||
//# sourceMappingURL=4.2.9.js.map |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -8,20 +9,9 @@ 4.3.1.丸かっこ() | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _templateObject; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
var replaceSymbol = symbol => { | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
const replaceSymbol = symbol => { | ||
var newSymbol = { | ||
@@ -31,12 +21,9 @@ "(": "(", | ||
}[symbol]; | ||
if (!newSymbol) { | ||
throw new Error("fail to replace symbol"); | ||
} | ||
return newSymbol; | ||
}; | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -52,13 +39,9 @@ RuleError, | ||
return; | ||
} // 半角のかっこ()は使用しないで全角のかっこを使用する | ||
var text = getSource(node); | ||
var matchRegExps = [// FIXME: https://github.com/textlint-ja/textlint-rule-preset-JTF-style/issues/79 | ||
// rx`([\(\)])(?:${japaneseRegExp}+)([\(\)])`, | ||
// rx`([\(\)])(?:${japaneseRegExp})`, | ||
rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["(?:", ")([()])"], ["(?:", ")([\\(\\)])"])), _regexp.japaneseRegExp)]; | ||
} | ||
// 半角のかっこ()は使用しないで全角のかっこを使用する | ||
const text = getSource(node); | ||
const matchRegExps = [rx`([\(\)])(?:.*${_regexp.japaneseRegExp}.*)([\(\)])`, rx`(?:${_regexp.japaneseRegExp})([\(\)])(?:${_regexp.japaneseRegExp})`, rx`^(\()(?:${_regexp.japaneseRegExp})`, rx`(?:${_regexp.japaneseRegExp})(\))$`]; | ||
matchRegExps.forEach(matchRegExp => { | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchRegExp).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -73,6 +56,4 @@ } = match; | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -79,0 +60,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -8,20 +9,9 @@ 4.3.2.大かっこ[] | ||
*/ | ||
var _nodeUtil = require("./util/node-util"); | ||
var _matchIndex = require("match-index"); | ||
var _regx = _interopRequireDefault(require("regx")); | ||
var _regexp = require("./util/regexp"); | ||
var _templateObject; | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var rx = (0, _regx.default)("g"); | ||
var replaceSymbol = symbol => { | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const rx = (0, _regx.default)("g"); | ||
const replaceSymbol = symbol => { | ||
var newSymbol = { | ||
@@ -31,12 +21,9 @@ "[": "[", | ||
}[symbol]; | ||
if (!newSymbol) { | ||
throw new Error("fail to replace symbol"); | ||
} | ||
return newSymbol; | ||
}; | ||
function reporter(context) { | ||
var { | ||
let { | ||
Syntax, | ||
@@ -52,9 +39,8 @@ RuleError, | ||
return; | ||
} // 半角のかっこ[]は使用しないで全角のかっこを使用する | ||
var text = getSource(node); | ||
var matchRegExp = rx(_templateObject || (_templateObject = _taggedTemplateLiteral(["(?:", ")([[]])"], ["(?:", ")([\\[\\]])"])), _regexp.japaneseRegExp); | ||
} | ||
// 半角のかっこ[]は使用しないで全角のかっこを使用する | ||
const text = getSource(node); | ||
const matchRegExp = rx`(?:${_regexp.japaneseRegExp})([\[\]])`; | ||
(0, _matchIndex.matchCaptureGroupAll)(text, matchRegExp).forEach(match => { | ||
var { | ||
const { | ||
index | ||
@@ -68,6 +54,4 @@ } = match; | ||
} | ||
}; | ||
} | ||
module.exports = { | ||
@@ -74,0 +58,0 @@ linter: reporter, |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -9,5 +10,3 @@ 4.3.3.かぎかっこ「」 | ||
*/ | ||
var _pairChecker = require("./util/pair-checker"); | ||
module.exports = function (context) { | ||
@@ -14,0 +13,0 @@ return (0, _pairChecker.checkPair)(context, { |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -7,5 +8,3 @@ 4.3.4.二重かぎかっこ『』 | ||
*/ | ||
var _pairChecker = require("./util/pair-checker"); | ||
module.exports = function (context) { | ||
@@ -12,0 +11,0 @@ return (0, _pairChecker.checkPair)(context, { |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -7,5 +8,3 @@ 4.3.5.二重引用符"" | ||
*/ | ||
var _pairChecker = require("./util/pair-checker"); | ||
module.exports = function (context) { | ||
@@ -12,0 +11,0 @@ return (0, _pairChecker.checkPair)(context, { |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -8,5 +9,3 @@ 4.3.6.中かっこ{} | ||
*/ | ||
var _pairChecker = require("./util/pair-checker"); | ||
module.exports = function (context) { | ||
@@ -13,0 +12,0 @@ return (0, _pairChecker.checkPair)(context, { |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -8,5 +9,3 @@ 4.3.7.山かっこ<> | ||
*/ | ||
var _pairChecker = require("./util/pair-checker"); | ||
module.exports = function (context) { | ||
@@ -13,0 +12,0 @@ return (0, _pairChecker.checkPair)(context, { |
// LICENSE : MIT | ||
"use strict"; | ||
/* | ||
@@ -8,5 +9,3 @@ 4.3.8.一重引用符'' | ||
*/ | ||
var _pairChecker = require("./util/pair-checker"); | ||
module.exports = function (context) { | ||
@@ -13,0 +12,0 @@ // do no anything |
// LICENSE : MIT | ||
"use strict"; | ||
module.exports = function mergeMatches() { | ||
var results = []; | ||
for (var _len = arguments.length, aMatches = new Array(_len), _key = 0; _key < _len; _key++) { | ||
aMatches[_key] = arguments[_key]; | ||
} | ||
module.exports = function mergeMatches(...aMatches) { | ||
const results = []; | ||
aMatches.forEach(matches => { | ||
matches.forEach(targetMatch => { | ||
var alreadyHave = results.some(match => { | ||
var { | ||
const alreadyHave = results.some(match => { | ||
const { | ||
text, | ||
@@ -20,3 +15,2 @@ index | ||
}); | ||
if (!alreadyHave) { | ||
@@ -23,0 +17,0 @@ results.push(targetMatch); |
@@ -8,5 +8,3 @@ // LICENSE : MIT | ||
exports.isUserWrittenNode = isUserWrittenNode; | ||
var _textlintRuleHelper = require("textlint-rule-helper"); | ||
/** | ||
@@ -20,13 +18,12 @@ * ユーザーが書いたと推測されるNodeかどうかを判定する | ||
function isUserWrittenNode(node, context) { | ||
var helper = new _textlintRuleHelper.RuleHelper(context); | ||
var Syntax = context.Syntax; // Strがユーザーに書かれたと断定できるNodeかを判定する | ||
let helper = new _textlintRuleHelper.RuleHelper(context); | ||
let Syntax = context.Syntax; | ||
// Strがユーザーに書かれたと断定できるNodeかを判定する | ||
// LinkやStrongなどはユーザーが書いていない可能性があるStrなので除外する | ||
if (node.type === Syntax.Str) { | ||
return helper.isPlainStrNode(node); | ||
} // ブロック要素の互換性のため古い除外ルールも残す | ||
} | ||
// ブロック要素の互換性のため古い除外ルールも残す | ||
return !helper.isChildNode(node, [Syntax.Link, Syntax.Image, Syntax.BlockQuote, Syntax.Emphasis]); | ||
} | ||
//# sourceMappingURL=node-util.js.map |
// LICENSE : MIT | ||
"use strict"; | ||
/** | ||
@@ -10,3 +11,2 @@ * 「と」といったペアがちゃんと閉じられているかをチェックします | ||
*/ | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -16,27 +16,15 @@ value: true | ||
exports.checkPair = checkPair; | ||
var _assert = _interopRequireDefault(require("assert")); | ||
var _textlintRuleHelper = require("textlint-rule-helper"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
var flat = array => { | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
const flat = array => { | ||
return [].concat.apply([], array); | ||
}; | ||
function checkPair(context, _ref) { | ||
var { | ||
left, | ||
right | ||
} = _ref; | ||
function checkPair(context, { | ||
left, | ||
right | ||
}) { | ||
(0, _assert.default)(left); | ||
(0, _assert.default)(right); | ||
var { | ||
const { | ||
Syntax, | ||
@@ -47,5 +35,5 @@ RuleError, | ||
} = context; | ||
var helper = new _textlintRuleHelper.RuleHelper(context); | ||
var isInParagraph = false; | ||
var currentStrInParagraph = []; | ||
const helper = new _textlintRuleHelper.RuleHelper(context); | ||
let isInParagraph = false; | ||
let currentStrInParagraph = []; | ||
/** | ||
@@ -56,7 +44,5 @@ * `Str` nodeの配列を受け取り、pairが見つからないnodeを返す | ||
*/ | ||
var findAllSymbolLocations = (symbol, text) => { | ||
var index = 0; | ||
var symbolLocations = []; | ||
const findAllSymbolLocations = (symbol, text) => { | ||
let index = 0; | ||
const symbolLocations = []; | ||
while (index < text.length) { | ||
@@ -71,20 +57,17 @@ index = text.indexOf(symbol, index); | ||
} | ||
return symbolLocations; | ||
}; | ||
var foundMissingPairNodes = currentStrInParagraph => { | ||
var matchParentheses = flat(currentStrInParagraph.map(node => { | ||
var text = getSource(node); | ||
var leftSymbolLocations = findAllSymbolLocations(left, text); | ||
var rightSymbolLocations = left !== right ? findAllSymbolLocations(right, text) : []; | ||
var allSymbolLocations = [...leftSymbolLocations, ...rightSymbolLocations].sort((a, b) => a.index - b.index); | ||
return allSymbolLocations.map(loc => _objectSpread(_objectSpread({}, loc), {}, { | ||
const foundMissingPairNodes = currentStrInParagraph => { | ||
const matchParentheses = flat(currentStrInParagraph.map(node => { | ||
let text = getSource(node); | ||
const leftSymbolLocations = findAllSymbolLocations(left, text); | ||
const rightSymbolLocations = left !== right ? findAllSymbolLocations(right, text) : []; | ||
const allSymbolLocations = [...leftSymbolLocations, ...rightSymbolLocations].sort((a, b) => a.index - b.index); | ||
return allSymbolLocations.map(loc => ({ | ||
...loc, | ||
node | ||
})); | ||
})); | ||
if (left === right) { | ||
var isCompletedParentheses = matchParentheses.length % 2 == 0; | ||
const isCompletedParentheses = matchParentheses.length % 2 == 0; | ||
if (isCompletedParentheses) { | ||
@@ -96,7 +79,5 @@ return []; | ||
} else { | ||
var lastUnmatchParences = []; | ||
const lastUnmatchParences = []; | ||
while (matchParentheses.length > 0) { | ||
var item = matchParentheses.shift(); | ||
const item = matchParentheses.shift(); | ||
if (item.symbol == left) { | ||
@@ -106,4 +87,3 @@ lastUnmatchParences.push(item); | ||
// right | ||
var last = lastUnmatchParences.pop(); | ||
const last = lastUnmatchParences.pop(); | ||
if (last) { | ||
@@ -119,7 +99,5 @@ if (last.symbol == right) { | ||
} | ||
return lastUnmatchParences; | ||
} | ||
}; | ||
return { | ||
@@ -130,7 +108,5 @@ [Syntax.Paragraph](node) { | ||
} | ||
currentStrInParagraph = []; | ||
isInParagraph = true; | ||
}, | ||
[Syntax.Str](node) { | ||
@@ -140,22 +116,18 @@ if (!isInParagraph) { | ||
} | ||
currentStrInParagraph.push(node); | ||
}, | ||
["".concat(Syntax.Paragraph, ":exit")]() { | ||
var missingPairList = foundMissingPairNodes(currentStrInParagraph); // 探索おわり | ||
isInParagraph = false; // 全ての対が見つかったなら配列は空になる | ||
[`${Syntax.Paragraph}:exit`]() { | ||
const missingPairList = foundMissingPairNodes(currentStrInParagraph); | ||
// 探索おわり | ||
isInParagraph = false; | ||
// 全ての対が見つかったなら配列は空になる | ||
if (missingPairList.length === 0) { | ||
return; | ||
} | ||
missingPairList.forEach(_ref2 => { | ||
var { | ||
index, | ||
node, | ||
symbol | ||
} = _ref2; | ||
var message = symbol === left ? "".concat(left, "\u306E\u5BFE\u3068\u306A\u308B").concat(right, "\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002").concat(left).concat(right) : "".concat(right, "\u306E\u5BFE\u3068\u306A\u308B").concat(left, "\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002").concat(left).concat(right); | ||
missingPairList.forEach(({ | ||
index, | ||
node, | ||
symbol | ||
}) => { | ||
let message = symbol === left ? `${left}の対となる${right}が見つかりません。${left}${right}` : `${right}の対となる${left}が見つかりません。${left}${right}`; | ||
report(node, new RuleError(message, { | ||
@@ -166,5 +138,4 @@ index | ||
} | ||
}; | ||
} | ||
//# sourceMappingURL=pair-checker.js.map |
@@ -8,16 +8,11 @@ // LICENSE : MIT | ||
exports.karakanaRegExp = exports.kanjiRegExp = exports.japaneseRegExp = exports.hiraganaRegExp = exports.hanKarakanaRegExp = void 0; | ||
var japaneseRegExp = /(?:[々〇〻\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])/; // http://tama-san.com/kanji-regex/ ベース | ||
const japaneseRegExp = exports.japaneseRegExp = /(?:[々〇〻\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]|[ぁ-んァ-ヶ])/; | ||
// http://tama-san.com/kanji-regex/ ベース | ||
// "々" は 記号であるため除外 | ||
// https://github.com/textlint-ja/textlint-rule-preset-jtf-style/issues/48 | ||
exports.japaneseRegExp = japaneseRegExp; | ||
var kanjiRegExp = /(?:[〇〻\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF])/; | ||
exports.kanjiRegExp = kanjiRegExp; | ||
var hiraganaRegExp = /[ぁ-ん]/; | ||
exports.hiraganaRegExp = hiraganaRegExp; | ||
var karakanaRegExp = /[ァ-ヶ]/; // 半角カタカナ | ||
exports.karakanaRegExp = karakanaRegExp; | ||
var hanKarakanaRegExp = /[\uFF65-\uFF9F]/; | ||
exports.hanKarakanaRegExp = hanKarakanaRegExp; | ||
const kanjiRegExp = exports.kanjiRegExp = /(?:[〇〻\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF])/; | ||
const hiraganaRegExp = exports.hiraganaRegExp = /[ぁ-ん]/; | ||
const karakanaRegExp = exports.karakanaRegExp = /[ァ-ヶ]/; | ||
// 半角カタカナ | ||
const hanKarakanaRegExp = exports.hanKarakanaRegExp = /[\uFF65-\uFF9F]/; | ||
//# sourceMappingURL=regexp.js.map |
@@ -14,3 +14,3 @@ { | ||
}, | ||
"version": "2.3.14", | ||
"version": "3.0.0", | ||
"description": "JTF Style Guide for Translators Working into Japanese for textlint.", | ||
@@ -43,7 +43,8 @@ "main": "lib/index.js", | ||
"devDependencies": { | ||
"@textlint/legacy-textlint-core": "^14.4.0", | ||
"glob": "^8.0.3", | ||
"lint-staged": "^13.0.3", | ||
"prettier": "^2.7.1", | ||
"textlint-scripts": "^12.2.1", | ||
"textlint-tester": "^12.2.1" | ||
"lint-staged": "^15.2.10", | ||
"prettier": "^3.4.1", | ||
"textlint-scripts": "^14.4.0", | ||
"textlint-tester": "^14.4.0" | ||
}, | ||
@@ -55,6 +56,6 @@ "dependencies": { | ||
"moji": "^0.5.1", | ||
"regexp.prototype.flags": "^1.4.3", | ||
"regexp.prototype.flags": "^1.5.3", | ||
"regx": "^1.0.4", | ||
"textlint-rule-helper": "^2.2.1", | ||
"textlint-rule-prh": "^5.2.1" | ||
"textlint-rule-helper": "^2.3.1", | ||
"textlint-rule-prh": "^6.0.0" | ||
}, | ||
@@ -74,3 +75,4 @@ "peerDependencies": { | ||
] | ||
} | ||
}, | ||
"packageManager": "yarn@1.22.22+sha256.c17d3797fb9a9115bf375e31bfd30058cac6bc9c3b8807a3d8cb2094794b51ca" | ||
} |
@@ -658,3 +658,39 @@ # textlint-rule-preset-JTF-style [](https://textlint.github.io/) [](https://github.com/textlint-ja/textlint-rule-preset-JTF-style/actions?query=workflow%3A"test") | ||
Q. 半角かっこの外側のスペースを禁止したい・必須にしたい | ||
A. オプションで半角かっこの外側のスペースの扱いを変更することが出来ます。 | ||
[3.3.かっこ類と隣接する文字の間のスペースの有無](./src/3.3.js)のオプションを設定することで、半角かっこの外側のスペースの扱いを変更することができます。 | ||
`allowOutsideHalfParentheses` は半角かっこの外側の半角スペースを許容するオプションです。 | ||
デフォルトは `true` です。 | ||
`false` に設定することで、半角かっこの外側のスペースを禁止できます。 | ||
```json5 | ||
{ | ||
"rules": { | ||
"preset-jtf-style": { | ||
"3.3.かっこ類と隣接する文字の間のスペースの有無": { | ||
"allowOutsideHalfParentheses": false | ||
} | ||
} | ||
} | ||
} | ||
``` | ||
`requireOutsideHalfParentheses` は半角かっこの外側の半角スペースを必須にするオプションです。 | ||
デフォルトは `false` です。 | ||
```json5 | ||
{ | ||
"rules": { | ||
"preset-jtf-style": { | ||
"3.3.かっこ類と隣接する文字の間のスペースの有無": { | ||
"requireOutsideHalfParentheses": true | ||
} | ||
} | ||
} | ||
} | ||
``` | ||
## Migration: `textlint-plugin-jtf-style` to `textlint-rule-preset-jtf-style` | ||
@@ -661,0 +697,0 @@ |
@@ -9,5 +9,5 @@ // LICENSE : MIT | ||
import { matchCaptureGroupAll } from "match-index"; | ||
import { japaneseRegExp } from "./util/regexp"; | ||
const brackets = ["\\[", "\\]", "(", ")", "[", "]", "「", "」", "『", "』"]; | ||
const brackets = ["\\(", "\\)", "\\[", "\\]", "(", ")", "[", "]", "「", "」", "『", "』"]; | ||
const leftBrackets = brackets.map((bracket) => { | ||
@@ -19,4 +19,14 @@ return new RegExp("([ ])" + bracket, "g"); | ||
}); | ||
function reporter(context) { | ||
const leftHalfParentheses = new RegExp(`${japaneseRegExp.source}(\\()`, "g"); | ||
const rightHalfParentheses = new RegExp(`(\\))${japaneseRegExp.source}`, "g"); | ||
const defaultOptions = { | ||
allowOutsideHalfParentheses: true, | ||
requireOutsideHalfParentheses: false | ||
}; | ||
function reporter(context, options) { | ||
let { Syntax, RuleError, report, fixer, getSource } = context; | ||
const allowOutsideHalfParentheses = | ||
options.allowOutsideHalfParentheses ?? defaultOptions.allowOutsideHalfParentheses; | ||
const requireOutsideHalfParentheses = | ||
options.requireOutsideHalfParentheses ?? defaultOptions.requireOutsideHalfParentheses; | ||
return { | ||
@@ -32,2 +42,5 @@ [Syntax.Str](node) { | ||
const { index } = match; | ||
if (allowOutsideHalfParentheses && text.substring(index, index + 2) === " (") { | ||
return; | ||
} | ||
report( | ||
@@ -45,3 +58,6 @@ node, | ||
matchCaptureGroupAll(text, pattern).forEach((match) => { | ||
const { index, text } = match; | ||
const { index } = match; | ||
if (allowOutsideHalfParentheses && text.substring(index - 1, index + 1) === ") ") { | ||
return; | ||
} | ||
report( | ||
@@ -56,2 +72,26 @@ node, | ||
}); | ||
if (requireOutsideHalfParentheses) { | ||
// 左にスペース必須 | ||
matchCaptureGroupAll(text, leftHalfParentheses).forEach((match) => { | ||
const { index } = match; | ||
report( | ||
node, | ||
new RuleError("半角かっこの外側に半角スペースが必要です。", { | ||
index, | ||
fix: fixer.replaceTextRange([index, index + 1], " " + match.text) | ||
}) | ||
); | ||
}); | ||
// 右にスペース必須 | ||
matchCaptureGroupAll(text, rightHalfParentheses).forEach((match) => { | ||
const { index } = match; | ||
report( | ||
node, | ||
new RuleError("半角かっこの外側に半角スペースが必要です。", { | ||
index, | ||
fix: fixer.replaceTextRange([index, index + 1], match.text + " ") | ||
}) | ||
); | ||
}); | ||
} | ||
} | ||
@@ -58,0 +98,0 @@ }; |
@@ -34,6 +34,6 @@ // LICENSE : MIT | ||
const matchRegExps = [ | ||
// FIXME: https://github.com/textlint-ja/textlint-rule-preset-JTF-style/issues/79 | ||
// rx`([\(\)])(?:${japaneseRegExp}+)([\(\)])`, | ||
// rx`([\(\)])(?:${japaneseRegExp})`, | ||
rx`(?:${japaneseRegExp})([\(\)])` | ||
rx`([\(\)])(?:.*${japaneseRegExp}.*)([\(\)])`, | ||
rx`(?:${japaneseRegExp})([\(\)])(?:${japaneseRegExp})`, | ||
rx`^(\()(?:${japaneseRegExp})`, | ||
rx`(?:${japaneseRegExp})(\))$` | ||
]; | ||
@@ -40,0 +40,0 @@ matchRegExps.forEach((matchRegExp) => { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
489848
0.23%6518
0.99%757
4.99%6
20%+ Added
- Removed
- Removed
Updated
Updated