@textlint-ja/textlint-rule-no-dropping-i
Advanced tools
Comparing version 2.0.1 to 3.0.0
@@ -5,13 +5,21 @@ // LICENSE : MIT | ||
var _textlintRuleHelper = require("textlint-rule-helper"); | ||
var _kuromojin = require("kuromojin"); | ||
function isTargetWord(token) { | ||
return token.pos === "助詞" && token.pos_detail_1 === "接続助詞" && token.basic_form === "て"; | ||
function isMasuTargetWord(token) { | ||
return token.pos === "助詞" && token.pos_detail_1 === "接続助詞" && (token.basic_form === "て" || token.basic_form === "で"); | ||
} | ||
function isMasuWord(token) { | ||
return token.pos === "助動詞" && token.pos_detail_1 === "*" && token.basic_form === "ます"; | ||
} | ||
function isTeruTargetWord(token) { | ||
return token.pos === "動詞" && token.pos_detail_1 === "自立"; | ||
} | ||
function isTeruWord(token) { | ||
return token.pos === "動詞" && token.pos_detail_1 === "非自立" && (token.basic_form === "てる" || token.basic_form === "でる"); | ||
} | ||
function isTenaiTargetWord(token) { | ||
return token.pos === "動詞" && token.pos_detail_1 === "非自立" && (token.basic_form === "て" || token.basic_form === "で"); | ||
} | ||
function isTenaiWord(token) { | ||
return token.pos === "助動詞" && token.conjugated_type === "特殊・ナイ" && token.basic_form === "ない"; | ||
} | ||
module.exports = function (context) { | ||
@@ -30,3 +38,2 @@ var helper = new _textlintRuleHelper.RuleHelper(context); | ||
} | ||
var text = getSource(node); | ||
@@ -37,8 +44,9 @@ return (0, _kuromojin.tokenize)(text).then(tokens => { | ||
var prev = tokens[index - 1]; | ||
if (!prev || !current) { | ||
return; | ||
} | ||
if (isTargetWord(prev) && isMasuWord(current)) { | ||
var isMasuPattern = isMasuTargetWord(prev) && isMasuWord(current); | ||
var isTeruPattern = isTeruTargetWord(prev) && isTeruWord(current); | ||
var isTenaiPattern = isTenaiTargetWord(prev) && isTenaiWord(current); | ||
if (isMasuPattern || isTeruPattern || isTenaiPattern) { | ||
report(node, new RuleError("い抜き言葉を使用しています。", { | ||
@@ -51,5 +59,4 @@ index: current.word_position - 1 | ||
} | ||
}; | ||
}; | ||
//# sourceMappingURL=no-dropping-i.js.map |
@@ -8,3 +8,3 @@ { | ||
"kuromojin": "^3.0.0", | ||
"textlint-rule-helper": "^2.1.1" | ||
"textlint-rule-helper": "^2.3.1" | ||
}, | ||
@@ -62,3 +62,3 @@ "description": "い抜き言葉を検出するtextlint rule", | ||
}, | ||
"version": "2.0.1" | ||
"version": "3.0.0" | ||
} |
@@ -5,4 +5,8 @@ # textlint-rule-no-dropping-i [](https://github.com/textlint-ja/textlint-rule-no-dropping-i/actions?query=workflow%3A"test") | ||
- ◯ 開発しています。 | ||
- ✗ 開発してます。 | ||
| ○ | × | | ||
| --- | --- | | ||
| 開発しています。 | 開発してます。 | | ||
| 見学している。 | 見学してる。 | | ||
| 勉強していない。 | 勉強してない。 | | ||
| 遊んでいる。 | 遊んでる。 | | ||
@@ -9,0 +13,0 @@ ## Installation |
@@ -6,4 +6,4 @@ // LICENSE : MIT | ||
function isTargetWord(token) { | ||
return token.pos === "助詞" && token.pos_detail_1 === "接続助詞" && token.basic_form === "て"; | ||
function isMasuTargetWord(token) { | ||
return token.pos === "助詞" && token.pos_detail_1 === "接続助詞" && (token.basic_form === "て" || token.basic_form === "で"); | ||
} | ||
@@ -15,2 +15,18 @@ | ||
function isTeruTargetWord(token) { | ||
return token.pos === "動詞" && token.pos_detail_1 === "自立"; | ||
} | ||
function isTeruWord(token) { | ||
return token.pos === "動詞" && token.pos_detail_1 === "非自立" && (token.basic_form === "てる" || token.basic_form === "でる"); | ||
} | ||
function isTenaiTargetWord(token) { | ||
return token.pos === "動詞" && token.pos_detail_1 === "非自立" && (token.basic_form === "て" || token.basic_form === "で"); | ||
} | ||
function isTenaiWord(token) { | ||
return token.pos === "助動詞" && token.conjugated_type === "特殊・ナイ" && token.basic_form === "ない"; | ||
} | ||
module.exports = function(context) { | ||
@@ -29,6 +45,12 @@ const helper = new RuleHelper(context); | ||
const prev = tokens[index - 1]; | ||
if (!prev || !current) { | ||
return; | ||
} | ||
if (isTargetWord(prev) && isMasuWord(current)) { | ||
const isMasuPattern = isMasuTargetWord(prev) && isMasuWord(current); | ||
const isTeruPattern = isTeruTargetWord(prev) && isTeruWord(current); | ||
const isTenaiPattern = isTenaiTargetWord(prev) && isTenaiWord(current); | ||
if (isMasuPattern || isTeruPattern || isTenaiPattern) { | ||
report( | ||
@@ -35,0 +57,0 @@ node, |
Sorry, the diff of this file is not supported yet
13626
110
45
Updatedtextlint-rule-helper@^2.3.1