@doujinreviewers/textlint-rule-for-creation 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of @doujinreviewers/textlint-rule-for-creation might be problematic. Click here for more details.
- package/lib/dict/arrow.js +1 -1
- package/lib/dict/arrow.js.map +1 -1
- package/lib/enhanced-engine.js +20 -6
- package/lib/enhanced-engine.js.map +1 -1
- package/lib/textlint-rule-for-creation.js +1 -1
- package/lib/textlint-rule-for-creation.js.map +1 -1
- package/package.json +1 -1
- package/src/dict/arrow.js +5 -1
- package/src/enhanced-engine.js +20 -9
- package/src/textlint-rule-for-creation.js +1 -1
package/lib/dict/arrow.js
CHANGED
@@ -2,6 +2,6 @@
|
|
2
2
|
|
3
3
|
module.exports = {
|
4
4
|
"jidousi_tadousi": ["開け", "あけ"],
|
5
|
-
"zyosi": ["こそは", "こそを", "からが", "からは", "をこそ", "とやら", "やらが", "までも", "までもが", "ばかりか", "ばかりが", "ばかりは", "ばかりを", "ばっかりか", "ばっかりが", "ばっかりは", "ばっかりを", "などばかり", "などばっかり", "などが", "なども", "などは", "などを", "とかが", "とかも", "とかは", "とかを", "とかばかり", "とかばっかり", "にも", "ばかりに", "にだって", "とかだって", "などだって", "
|
5
|
+
"zyosi": ["こそは", "こそを", "からが", "からは", "をこそ", "とやら", "やらが", "までも", "までに", "までは", "までもが", "ばかりか", "ばかりが", "ばかりは", "ばかりを", "ばっかりか", "ばっかりが", "ばっかりは", "ばっかりを", "などばかり", "などばっかり", "などが", "なども", "などは", "などを", "とかが", "とかも", "とかは", "とかを", "とかばかり", "とかばっかり", "には", "にも", "ばかりに", "にだって", "とかだって", "などだって", "のかも", "にかも", "とが", "とも", "とは", "さえも", "にさえ", "とさえ", "すらも", "にすら", "とすら", "だけが", "だけを", "ほども", "ほどを", "でも", "てでも", "たりも", "たりが", "たりは", "たりさえ", "たりすら", "たりなど", "ながらも", "つつも", "なりが", "なりを", "てなんて", "になんて", "もなんて", "ばかりなんて", "ばっかりなんて", "だけを", "だけが", "だけは", "だけかも", "だけかも", "なと"]
|
6
6
|
};
|
7
7
|
//# sourceMappingURL=arrow.js.map
|
package/lib/dict/arrow.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/dict/arrow.js"],"names":["module","exports"],"mappings":";;AAAAA,MAAM,CAACC,OAAP,GAAiB;AACf,qBAAmB,CACjB,IADiB,EAEjB,IAFiB,CADJ;AAKf,WAAS,CACP,KADO,EAEP,KAFO,EAGP,KAHO,EAIP,KAJO,EAKP,KALO,EAMP,KANO,EAOP,KAPO,EAQP,KARO,EASP,
|
1
|
+
{"version":3,"sources":["../../src/dict/arrow.js"],"names":["module","exports"],"mappings":";;AAAAA,MAAM,CAACC,OAAP,GAAiB;AACf,qBAAmB,CACjB,IADiB,EAEjB,IAFiB,CADJ;AAKf,WAAS,CACP,KADO,EAEP,KAFO,EAGP,KAHO,EAIP,KAJO,EAKP,KALO,EAMP,KANO,EAOP,KAPO,EAQP,KARO,EASP,KATO,EAUP,KAVO,EAWP,MAXO,EAYP,MAZO,EAaP,MAbO,EAcP,MAdO,EAeP,MAfO,EAgBP,OAhBO,EAiBP,OAjBO,EAkBP,OAlBO,EAmBP,OAnBO,EAoBP,OApBO,EAqBP,QArBO,EAsBP,KAtBO,EAuBP,KAvBO,EAwBP,KAxBO,EAyBP,KAzBO,EA0BP,KA1BO,EA2BP,KA3BO,EA4BP,KA5BO,EA6BP,KA7BO,EA8BP,OA9BO,EA+BP,QA/BO,EAgCP,IAhCO,EAiCP,IAjCO,EAkCP,MAlCO,EAmCP,MAnCO,EAoCP,OApCO,EAqCP,OArCO,EAsCP,KAtCO,EAuCP,KAvCO,EAwCP,IAxCO,EAyCP,IAzCO,EA0CP,IA1CO,EA2CP,KA3CO,EA4CP,KA5CO,EA6CP,KA7CO,EA8CP,KA9CO,EA+CP,KA/CO,EAgDP,KAhDO,EAiDP,KAjDO,EAkDP,KAlDO,EAmDP,KAnDO,EAoDP,KApDO,EAqDP,IArDO,EAsDP,KAtDO,EAuDP,KAvDO,EAwDP,KAxDO,EAyDP,KAzDO,EA0DP,MA1DO,EA2DP,MA3DO,EA4DP,MA5DO,EA6DP,MA7DO,EA8DP,KA9DO,EA+DP,KA/DO,EAgEP,KAhEO,EAiEP,MAjEO,EAkEP,MAlEO,EAmEP,MAnEO,EAoEP,QApEO,EAqEP,SArEO,EAsEP,KAtEO,EAuEP,KAvEO,EAwEP,KAxEO,EAyEP,MAzEO,EA0EP,MA1EO,EA2EP,IA3EO;AALM,CAAjB","sourcesContent":["module.exports = {\n \"jidousi_tadousi\": [\n \"開け\",\n \"あけ\",\n ],\n \"zyosi\": [\n \"こそは\",\n \"こそを\",\n \"からが\",\n \"からは\",\n \"をこそ\",\n \"とやら\",\n \"やらが\",\n \"までも\",\n \"までに\",\n \"までは\",\n \"までもが\",\n \"ばかりか\",\n \"ばかりが\",\n \"ばかりは\",\n \"ばかりを\",\n \"ばっかりか\",\n \"ばっかりが\",\n \"ばっかりは\",\n \"ばっかりを\",\n \"などばかり\",\n \"などばっかり\",\n \"などが\",\n \"なども\",\n \"などは\",\n \"などを\",\n \"とかが\",\n \"とかも\",\n \"とかは\",\n \"とかを\",\n \"とかばかり\",\n \"とかばっかり\",\n \"には\",\n \"にも\",\n \"ばかりに\",\n \"にだって\",\n \"とかだって\",\n \"などだって\",\n \"のかも\",\n \"にかも\",\n \"とが\",\n \"とも\",\n \"とは\",\n \"さえも\",\n \"にさえ\",\n \"とさえ\",\n \"すらも\",\n \"にすら\",\n \"とすら\",\n \"だけが\",\n \"だけを\",\n \"ほども\",\n \"ほどを\",\n \"でも\",\n \"てでも\",\n \"たりも\",\n \"たりが\",\n \"たりは\",\n \"たりさえ\",\n \"たりすら\",\n \"たりなど\",\n \"ながらも\",\n \"つつも\",\n \"なりが\",\n \"なりを\",\n \"てなんて\",\n \"になんて\",\n \"もなんて\",\n \"ばかりなんて\",\n \"ばっかりなんて\",\n \"だけを\",\n \"だけが\",\n \"だけは\",\n \"だけかも\",\n \"だけかも\",\n \"なと\",\n ]\n};"],"file":"arrow.js"}
|
package/lib/enhanced-engine.js
CHANGED
@@ -35,17 +35,31 @@ class EnhancedEngine {
|
|
35
35
|
})();
|
36
36
|
}
|
37
37
|
|
38
|
-
checkZyosi(tokenizer,
|
38
|
+
checkZyosi(tokenizer, result, fulltext) {
|
39
39
|
return _asyncToGenerator(function* () {
|
40
|
-
|
40
|
+
if (arrow.zyosi.includes(fulltext.slice(result.range[0], result.range[1]))) {
|
41
|
+
return false;
|
42
|
+
}
|
41
43
|
|
42
|
-
|
43
|
-
|
44
|
-
|
44
|
+
var fulltokens = yield tokenizer(fulltext);
|
45
|
+
var tokens = [];
|
46
|
+
fulltokens.reduce((prev, current) => {
|
47
|
+
if (prev.pos == "助詞" && current.pos == "助詞" && (current.pos_detail_2 == "一般" || current.pos_detail_2 == "*")) {
|
48
|
+
tokens = [prev, current];
|
45
49
|
}
|
50
|
+
|
51
|
+
return current;
|
52
|
+
});
|
53
|
+
|
54
|
+
if (new RegExp(tokens[0].surface_form.repeat(3) + "|" + tokens[0].surface_form.repeat(2) + "[~〜ー!!]").test(fulltext)) {
|
55
|
+
return false;
|
46
56
|
}
|
47
57
|
|
48
|
-
|
58
|
+
if (/終助詞/.test(tokens[0].pos_detail_1) || /終助詞/.test(tokens[1].pos_detail_1) || tokens[0].surface_form == "のみ" && /格助詞/.test(tokens[1].pos_detail_1) || /連体化/.test(tokens[1].pos_detail_1)) {
|
59
|
+
return false;
|
60
|
+
}
|
61
|
+
|
62
|
+
return true;
|
49
63
|
})();
|
50
64
|
}
|
51
65
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/enhanced-engine.js"],"names":["arrow","require","EnhancedEngine","constructor","checkRetasu","tokenizer","text","test","tokens","meirei","surface_form","conjugated_form","conjugated_type","jidousi_tadousi","includes","checkZyosi","
|
1
|
+
{"version":3,"sources":["../src/enhanced-engine.js"],"names":["arrow","require","EnhancedEngine","constructor","checkRetasu","tokenizer","text","test","tokens","meirei","surface_form","conjugated_form","conjugated_type","jidousi_tadousi","includes","checkZyosi","result","fulltext","zyosi","slice","range","fulltokens","reduce","prev","current","pos","pos_detail_2","RegExp","repeat","pos_detail_1"],"mappings":";;;;;;;;;;;AAAA,IAAMA,KAAK,GAAGC,OAAO,CAAC,cAAD,CAArB;;AAEA,MAAMC,cAAN,CAAqB;AAEnBC,EAAAA,WAAW,GAAG,CACb;;AAEKC,EAAAA,WAAW,CAACC,SAAD,EAAYC,IAAZ,EAAiB;AAAA;AAChC,UAAG,KAAKC,IAAL,CAAUD,IAAV,CAAH,EAAmB;AACjBA,QAAAA,IAAI,IAAI,GAAR;AACD;;AACD,UAAIE,MAAM,SAASH,SAAS,CAACC,IAAD,CAA5B;AACA,UAAIG,MAAM,SAASJ,SAAS,CAACG,MAAM,CAAC,CAAD,CAAN,CAAUE,YAAV,GAAyB,GAA1B,CAA5B;;AACA,UAAGD,MAAM,CAAC,CAAD,CAAN,CAAUE,eAAV,IAA6B,KAA7B,IAAsC,KAAKJ,IAAL,CAAUE,MAAM,CAAC,CAAD,CAAN,CAAUG,eAApB,CAAzC,EAA8E;AAC5E;AACA,YAAG,CAACZ,KAAK,CAACa,eAAN,CAAsBC,QAAtB,CAA+BL,MAAM,CAAC,CAAD,CAAN,CAAUC,YAAzC,CAAJ,EAA2D;AACzD;AACA,iBAAO,IAAP;AACD;AACF;;AACD,aAAO,KAAP;AAbgC;AAcjC;;AAEKK,EAAAA,UAAU,CAACV,SAAD,EAAYW,MAAZ,EAAoBC,QAApB,EAA6B;AAAA;AAC3C,UAAGjB,KAAK,CAACkB,KAAN,CAAYJ,QAAZ,CAAqBG,QAAQ,CAACE,KAAT,CAAeH,MAAM,CAACI,KAAP,CAAa,CAAb,CAAf,EAA+BJ,MAAM,CAACI,KAAP,CAAa,CAAb,CAA/B,CAArB,CAAH,EAAyE;AACvE,eAAO,KAAP;AACD;;AACD,UAAIC,UAAU,SAAShB,SAAS,CAACY,QAAD,CAAhC;AACA,UAAIT,MAAM,GAAG,EAAb;AACAa,MAAAA,UAAU,CAACC,MAAX,CAAkB,CAACC,IAAD,EAAOC,OAAP,KAAmB;AACnC,YAAID,IAAI,CAACE,GAAL,IAAY,IAAZ,IAAoBD,OAAO,CAACC,GAAR,IAAe,IAAnC,KAA4CD,OAAO,CAACE,YAAR,IAAwB,IAAxB,IAAgCF,OAAO,CAACE,YAAR,IAAwB,GAApG,CAAJ,EAA8G;AAC5GlB,UAAAA,MAAM,GAAG,CAACe,IAAD,EAAOC,OAAP,CAAT;AACD;;AACD,eAAOA,OAAP;AACD,OALD;;AAMA,UAAG,IAAIG,MAAJ,CAAWnB,MAAM,CAAC,CAAD,CAAN,CAAUE,YAAV,CAAuBkB,MAAvB,CAA8B,CAA9B,IAAmC,GAAnC,GAAyCpB,MAAM,CAAC,CAAD,CAAN,CAAUE,YAAV,CAAuBkB,MAAvB,CAA8B,CAA9B,CAAzC,GAA4E,SAAvF,EAAkGrB,IAAlG,CAAuGU,QAAvG,CAAH,EAAoH;AAClH,eAAO,KAAP;AACD;;AACD,UAAI,MAAMV,IAAN,CAAWC,MAAM,CAAC,CAAD,CAAN,CAAUqB,YAArB,KAAsC,MAAMtB,IAAN,CAAWC,MAAM,CAAC,CAAD,CAAN,CAAUqB,YAArB,CAAvC,IACGrB,MAAM,CAAC,CAAD,CAAN,CAAUE,YAAV,IAA0B,IAA1B,IAAkC,MAAMH,IAAN,CAAWC,MAAM,CAAC,CAAD,CAAN,CAAUqB,YAArB,CADrC,IAEE,MAAMtB,IAAN,CAAWC,MAAM,CAAC,CAAD,CAAN,CAAUqB,YAArB,CAFL,EAGG;AACD,eAAO,KAAP;AACD;;AACD,aAAO,IAAP;AArB2C;AAsB5C;;AA3CkB;;eA+CN,IAAI3B,cAAJ,E","sourcesContent":["const arrow = require('./dict/arrow');\n\nclass EnhancedEngine {\n\n constructor() {\n }\n\n async checkRetasu(tokenizer, text){\n if(/れ$/.test(text)){\n text += \"る\";\n }\n let tokens = await tokenizer(text);\n let meirei = await tokenizer(tokens[0].surface_form + \"。\");\n if(meirei[0].conjugated_form == \"命令e\" || /五段/.test(meirei[0].conjugated_type)){\n // 「れる」を抜いても命令形で意味が通じるか、最初の文字が五段活用動詞になると多分れ足す言葉\n if(!arrow.jidousi_tadousi.includes(meirei[0].surface_form)){\n // 許可リストにもない\n return true;\n }\n }\n return false;\n }\n\n async checkZyosi(tokenizer, result, fulltext){\n if(arrow.zyosi.includes(fulltext.slice(result.range[0],result.range[1]))){\n return false;\n }\n let fulltokens = await tokenizer(fulltext);\n let tokens = [];\n fulltokens.reduce((prev, current) => {\n if (prev.pos == \"助詞\" && current.pos == \"助詞\" && (current.pos_detail_2 == \"一般\" || current.pos_detail_2 == \"*\")) {\n tokens = [prev, current];\n }\n return current;\n });\n if(new RegExp(tokens[0].surface_form.repeat(3) + \"|\" + tokens[0].surface_form.repeat(2) + \"[~〜ー!!]\").test(fulltext)){\n return false;\n }\n if((/終助詞/.test(tokens[0].pos_detail_1) || /終助詞/.test(tokens[1].pos_detail_1))\n || (tokens[0].surface_form == \"のみ\" && /格助詞/.test(tokens[1].pos_detail_1))\n || /連体化/.test(tokens[1].pos_detail_1)\n ){\n return false;\n }\n return true;\n }\n\n}\n\nexport default new EnhancedEngine();"],"file":"enhanced-engine.js"}
|
@@ -58,7 +58,7 @@ var reporter = context => {
|
|
58
58
|
continue;
|
59
59
|
}
|
60
60
|
} else if (result.message == "助詞の連続") {
|
61
|
-
if (!(yield engine.checkZyosi(_kuromojin.tokenize, text
|
61
|
+
if (!(yield engine.checkZyosi(_kuromojin.tokenize, result, text))) {
|
62
62
|
continue;
|
63
63
|
}
|
64
64
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/textlint-rule-for-creation.js"],"names":["loadDictionaries","dict1","require","dict2","dict3","dict4","dict5","concat","reporter","context","Syntax","RuleError","fixer","report","getSource","matchAll","tokenize","dictionaries","engine","EnhancedEngine","Str","node","Promise","resolve","reject","text","results","result","message","checkRetasu","slice","range","checkZyosi","expected","index","fix","replaceTextRange","linter"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,gBAAgB,GAAG,MAAM;AAC7B;AACA,MAAIC,KAAK,GAAGC,OAAO,CAAC,cAAD,CAAnB;;AACA,MAAIC,KAAK,GAAGD,OAAO,CAAC,mBAAD,CAAnB;;AACA,MAAIE,KAAK,GAAGF,OAAO,CAAC,eAAD,CAAnB;;AACA,MAAIG,KAAK,GAAGH,OAAO,CAAC,eAAD,CAAnB;;AACA,MAAII,KAAK,GAAGJ,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAOD,KAAK,CAACM,MAAN,CAAaJ,KAAb,EAAoBC,KAApB,EAA2BC,KAA3B,EAAkCC,KAAlC,CAAP;AACD,CARD;;AAUA,IAAME,QAAQ,GAAIC,OAAD,IAAa;AAC5B,MAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA,SAAV;AAAqBC,IAAAA,KAArB;AAA4BC,IAAAA,MAA5B;AAAoCC,IAAAA;AAApC,MAAkDL,OAAxD;AACA,MAAMM,QAAQ,GAAG,kDAAsB;AACrCC,IAAAA,QAAQ,EAAEA,mBAD2B;AAErCC,IAAAA,YAAY,EAAEjB,gBAAgB;AAFO,GAAtB,CAAjB;AAIA,MAAMkB,MAAM,GAAGC,uBAAf;AACA,SAAO;AACL,KAACT,MAAM,CAACU,GAAR,EAAaC,IAAb,EAAmB;AACjB,aAAO,IAAIC,OAAJ;AAAA,qCAAY,WAAOC,OAAP,EAAgBC,MAAhB,EAA2B;AAC5C,cAAMC,IAAI,GAAGX,SAAS,CAACO,IAAD,CAAtB;AACA,cAAIK,OAAO,SAASX,QAAQ,CAACU,IAAD,CAA5B;;AACA,eAAK,IAAME,MAAX,IAAqBD,OAArB,EAA8B;AAC5B,gBAAGC,MAAM,CAACC,OAAP,IAAkB,gBAArB,EAAsC;AACpC,kBAAG,QAAQV,MAAM,CAACW,WAAP,CAAmBb,mBAAnB,EAA6BS,IAAI,CAACK,KAAL,CAAWH,MAAM,CAACI,KAAP,CAAa,CAAb,CAAX,EAA2BJ,MAAM,CAACI,KAAP,CAAa,CAAb,CAA3B,CAA7B,CAAR,CAAH,EAAsF;AACpF;AACD;AACF,aAJD,MAIM,IAAGJ,MAAM,CAACC,OAAP,IAAkB,OAArB,EAA6B;AACjC,kBAAG,QAAQV,MAAM,CAACc,UAAP,CAAkBhB,mBAAlB,
|
1
|
+
{"version":3,"sources":["../src/textlint-rule-for-creation.js"],"names":["loadDictionaries","dict1","require","dict2","dict3","dict4","dict5","concat","reporter","context","Syntax","RuleError","fixer","report","getSource","matchAll","tokenize","dictionaries","engine","EnhancedEngine","Str","node","Promise","resolve","reject","text","results","result","message","checkRetasu","slice","range","checkZyosi","expected","index","fix","replaceTextRange","linter"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,gBAAgB,GAAG,MAAM;AAC7B;AACA,MAAIC,KAAK,GAAGC,OAAO,CAAC,cAAD,CAAnB;;AACA,MAAIC,KAAK,GAAGD,OAAO,CAAC,mBAAD,CAAnB;;AACA,MAAIE,KAAK,GAAGF,OAAO,CAAC,eAAD,CAAnB;;AACA,MAAIG,KAAK,GAAGH,OAAO,CAAC,eAAD,CAAnB;;AACA,MAAII,KAAK,GAAGJ,OAAO,CAAC,cAAD,CAAnB;;AACA,SAAOD,KAAK,CAACM,MAAN,CAAaJ,KAAb,EAAoBC,KAApB,EAA2BC,KAA3B,EAAkCC,KAAlC,CAAP;AACD,CARD;;AAUA,IAAME,QAAQ,GAAIC,OAAD,IAAa;AAC5B,MAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA,SAAV;AAAqBC,IAAAA,KAArB;AAA4BC,IAAAA,MAA5B;AAAoCC,IAAAA;AAApC,MAAkDL,OAAxD;AACA,MAAMM,QAAQ,GAAG,kDAAsB;AACrCC,IAAAA,QAAQ,EAAEA,mBAD2B;AAErCC,IAAAA,YAAY,EAAEjB,gBAAgB;AAFO,GAAtB,CAAjB;AAIA,MAAMkB,MAAM,GAAGC,uBAAf;AACA,SAAO;AACL,KAACT,MAAM,CAACU,GAAR,EAAaC,IAAb,EAAmB;AACjB,aAAO,IAAIC,OAAJ;AAAA,qCAAY,WAAOC,OAAP,EAAgBC,MAAhB,EAA2B;AAC5C,cAAMC,IAAI,GAAGX,SAAS,CAACO,IAAD,CAAtB;AACA,cAAIK,OAAO,SAASX,QAAQ,CAACU,IAAD,CAA5B;;AACA,eAAK,IAAME,MAAX,IAAqBD,OAArB,EAA8B;AAC5B,gBAAGC,MAAM,CAACC,OAAP,IAAkB,gBAArB,EAAsC;AACpC,kBAAG,QAAQV,MAAM,CAACW,WAAP,CAAmBb,mBAAnB,EAA6BS,IAAI,CAACK,KAAL,CAAWH,MAAM,CAACI,KAAP,CAAa,CAAb,CAAX,EAA2BJ,MAAM,CAACI,KAAP,CAAa,CAAb,CAA3B,CAA7B,CAAR,CAAH,EAAsF;AACpF;AACD;AACF,aAJD,MAIM,IAAGJ,MAAM,CAACC,OAAP,IAAkB,OAArB,EAA6B;AACjC,kBAAG,QAAQV,MAAM,CAACc,UAAP,CAAkBhB,mBAAlB,EAA4BW,MAA5B,EAAoCF,IAApC,CAAR,CAAH,EAAsD;AACpD;AACD;AACF;;AACD,gBAAIE,MAAM,CAACM,QAAX,EAAqB;AACnBpB,cAAAA,MAAM,CAACQ,IAAD,EAAO,IAAIV,SAAJ,CAAcgB,MAAM,CAACC,OAArB,EAA8B;AACzCM,gBAAAA,KAAK,EAAEP,MAAM,CAACO,KAD2B;AAEzCC,gBAAAA,GAAG,EAAEvB,KAAK,CAACwB,gBAAN,CAAuBT,MAAM,CAACI,KAA9B,EAAqCJ,MAAM,CAACM,QAA5C;AAFoC,eAA9B,CAAP,CAAN;AAID,aALD,MAKO;AACLpB,cAAAA,MAAM,CAACQ,IAAD,EAAO,IAAIV,SAAJ,CAAcgB,MAAM,CAACC,OAArB,EAA8B;AACzCM,gBAAAA,KAAK,EAAEP,MAAM,CAACO;AAD2B,eAA9B,CAAP,CAAN;AAGD;AACF;;AACDX,UAAAA,OAAO;AACR,SAzBM;;AAAA;AAAA;AAAA;AAAA,UAAP;AA0BD;;AA5BI,GAAP;AA8BD,CArCD;;eAuCe;AACbc,EAAAA,MAAM,EAAE7B,QADK;AAEbI,EAAAA,KAAK,EAAEJ;AAFM,C","sourcesContent":["import { createTextlintMatcher } from \"morpheme-match-textlint\";\nimport { tokenize } from \"kuromojin\";\nimport EnhancedEngine from \"./enhanced-engine\";\n\nconst loadDictionaries = () => {\n // unavoidable\n let dict1 = require('./dict/zyosi');\n let dict2 = require('./dict/gozidatuzi');\n let dict3 = require('./dict/retasu');\n let dict4 = require('./dict/sanuki');\n let dict5 = require('./dict/saire');\n return dict1.concat(dict2, dict3, dict4, dict5);\n}\n\nconst reporter = (context) => {\n const { Syntax, RuleError, fixer, report, getSource } = context;\n const matchAll = createTextlintMatcher({\n tokenize: tokenize,\n dictionaries: loadDictionaries()\n });\n const engine = EnhancedEngine\n return {\n [Syntax.Str](node) {\n return new Promise(async (resolve, reject) => {\n const text = getSource(node);\n let results = await matchAll(text);\n for (const result of results) {\n if(result.message == \"れ足す言葉の可能性があります\"){\n if(!(await engine.checkRetasu(tokenize, text.slice(result.range[0],result.range[1])))){\n continue;\n }\n }else if(result.message == \"助詞の連続\"){\n if(!(await engine.checkZyosi(tokenize, result, text))){\n continue;\n }\n }\n if (result.expected) {\n report(node, new RuleError(result.message, {\n index: result.index,\n fix: fixer.replaceTextRange(result.range, result.expected)\n }));\n } else {\n report(node, new RuleError(result.message, {\n index: result.index\n }));\n }\n }\n resolve();\n });\n }\n };\n};\n\nexport default {\n linter: reporter,\n fixer: reporter\n};"],"file":"textlint-rule-for-creation.js"}
|
package/package.json
CHANGED
package/src/dict/arrow.js
CHANGED
@@ -12,6 +12,8 @@ module.exports = {
|
|
12
12
|
"とやら",
|
13
13
|
"やらが",
|
14
14
|
"までも",
|
15
|
+
"までに",
|
16
|
+
"までは",
|
15
17
|
"までもが",
|
16
18
|
"ばかりか",
|
17
19
|
"ばかりが",
|
@@ -33,12 +35,12 @@ module.exports = {
|
|
33
35
|
"とかを",
|
34
36
|
"とかばかり",
|
35
37
|
"とかばっかり",
|
38
|
+
"には",
|
36
39
|
"にも",
|
37
40
|
"ばかりに",
|
38
41
|
"にだって",
|
39
42
|
"とかだって",
|
40
43
|
"などだって",
|
41
|
-
"にも",
|
42
44
|
"のかも",
|
43
45
|
"にかも",
|
44
46
|
"とが",
|
@@ -66,6 +68,7 @@ module.exports = {
|
|
66
68
|
"つつも",
|
67
69
|
"なりが",
|
68
70
|
"なりを",
|
71
|
+
"てなんて",
|
69
72
|
"になんて",
|
70
73
|
"もなんて",
|
71
74
|
"ばかりなんて",
|
@@ -75,5 +78,6 @@ module.exports = {
|
|
75
78
|
"だけは",
|
76
79
|
"だけかも",
|
77
80
|
"だけかも",
|
81
|
+
"なと",
|
78
82
|
]
|
79
83
|
};
|
package/src/enhanced-engine.js
CHANGED
@@ -21,17 +21,28 @@ class EnhancedEngine {
|
|
21
21
|
return false;
|
22
22
|
}
|
23
23
|
|
24
|
-
async checkZyosi(tokenizer,
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
24
|
+
async checkZyosi(tokenizer, result, fulltext){
|
25
|
+
if(arrow.zyosi.includes(fulltext.slice(result.range[0],result.range[1]))){
|
26
|
+
return false;
|
27
|
+
}
|
28
|
+
let fulltokens = await tokenizer(fulltext);
|
29
|
+
let tokens = [];
|
30
|
+
fulltokens.reduce((prev, current) => {
|
31
|
+
if (prev.pos == "助詞" && current.pos == "助詞" && (current.pos_detail_2 == "一般" || current.pos_detail_2 == "*")) {
|
32
|
+
tokens = [prev, current];
|
32
33
|
}
|
34
|
+
return current;
|
35
|
+
});
|
36
|
+
if(new RegExp(tokens[0].surface_form.repeat(3) + "|" + tokens[0].surface_form.repeat(2) + "[~〜ー!!]").test(fulltext)){
|
37
|
+
return false;
|
33
38
|
}
|
34
|
-
|
39
|
+
if((/終助詞/.test(tokens[0].pos_detail_1) || /終助詞/.test(tokens[1].pos_detail_1))
|
40
|
+
|| (tokens[0].surface_form == "のみ" && /格助詞/.test(tokens[1].pos_detail_1))
|
41
|
+
|| /連体化/.test(tokens[1].pos_detail_1)
|
42
|
+
){
|
43
|
+
return false;
|
44
|
+
}
|
45
|
+
return true;
|
35
46
|
}
|
36
47
|
|
37
48
|
}
|