diff --git a/.textlintrc.js b/.textlintrc.js index 9fc1195..e956f46 100644 --- a/.textlintrc.js +++ b/.textlintrc.js @@ -23,6 +23,7 @@ module.exports = { 'period-in-list-item': true, '@textlint-rule/no-unmatched-pair': true, 'no-zero-width-spaces': true, + 'doubled-spaces': true, }, filters: { comments: true, diff --git a/package-lock.json b/package-lock.json index 82faba9..42fa3ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@textlint-rule/textlint-rule-no-unmatched-pair": "^1.0.9", "textlint": "^12.4.0", "textlint-filter-rule-comments": "^1.2.2", + "textlint-rule-doubled-spaces": "^1.0.0", "textlint-rule-max-comma": "^2.0.2", "textlint-rule-no-dead-link": "^5.1.2", "textlint-rule-no-empty-element": "^0.3.1", @@ -2139,6 +2140,29 @@ "integrity": "sha512-Qc7yamUIagaN8XW9cToIrtxOD2dqZeJBCf/Y/P+16aPYU+z186EQ4JNNWPXGss5XNtHNFA5Ztjh17NXpmowk2w==", "dev": true }, + "node_modules/@textlint/regexp-string-matcher": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@textlint/regexp-string-matcher/-/regexp-string-matcher-1.1.1.tgz", + "integrity": "sha512-rrNUCKGKYBrZALotSF8D5A8xD05VHX6kxv0BP805Ig2M73Ha6LK+de31+ZocGm4CO+sikVFYyMCPPJhp7bCXcw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0", + "execall": "^2.0.0", + "lodash.sortby": "^4.7.0", + "lodash.uniq": "^4.5.0", + "lodash.uniqwith": "^4.5.0", + "to-regex": "^3.0.2" + } + }, + "node_modules/@textlint/regexp-string-matcher/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@textlint/source-code-fixer": { "version": "12.3.0", "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.3.0.tgz", @@ -4876,6 +4900,18 @@ "node": ">=6" } }, + "node_modules/clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "dependencies": { + "is-regexp": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -6900,6 +6936,18 @@ "node": ">=6" } }, + "node_modules/execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "dependencies": { + "clone-regexp": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -9185,6 +9233,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -9620,6 +9677,12 @@ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, "node_modules/lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -9651,6 +9714,12 @@ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, + "node_modules/lodash.uniqwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqwith/-/lodash.uniqwith-4.5.0.tgz", + "integrity": "sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==", + "dev": true + }, "node_modules/loglevel": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", @@ -15032,6 +15101,15 @@ "textlint": ">=6.8.0" } }, + "node_modules/textlint-rule-doubled-spaces": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/textlint-rule-doubled-spaces/-/textlint-rule-doubled-spaces-1.0.0.tgz", + "integrity": "sha512-VEbmh4IzADMZKW7pJhcL4aEXxI8Dk7UIah6cVNpAPjIVcMXrJxnDYJhtaXPXF2TDtj9Sgikor8i9VKbkTvEpeQ==", + "dev": true, + "dependencies": { + "@textlint/regexp-string-matcher": "^1.1.0" + } + }, "node_modules/textlint-rule-helper": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-2.2.3.tgz", @@ -18929,6 +19007,28 @@ "integrity": "sha512-Qc7yamUIagaN8XW9cToIrtxOD2dqZeJBCf/Y/P+16aPYU+z186EQ4JNNWPXGss5XNtHNFA5Ztjh17NXpmowk2w==", "dev": true }, + "@textlint/regexp-string-matcher": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@textlint/regexp-string-matcher/-/regexp-string-matcher-1.1.1.tgz", + "integrity": "sha512-rrNUCKGKYBrZALotSF8D5A8xD05VHX6kxv0BP805Ig2M73Ha6LK+de31+ZocGm4CO+sikVFYyMCPPJhp7bCXcw==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0", + "execall": "^2.0.0", + "lodash.sortby": "^4.7.0", + "lodash.uniq": "^4.5.0", + "lodash.uniqwith": "^4.5.0", + "to-regex": "^3.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, "@textlint/source-code-fixer": { "version": "12.3.0", "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.3.0.tgz", @@ -21247,6 +21347,15 @@ } } }, + "clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "requires": { + "is-regexp": "^2.0.0" + } + }, "clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -22833,6 +22942,15 @@ "strip-eof": "^1.0.0" } }, + "execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "requires": { + "clone-regexp": "^2.1.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -24576,6 +24694,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -24937,6 +25061,12 @@ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", @@ -24968,6 +25098,12 @@ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, + "lodash.uniqwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniqwith/-/lodash.uniqwith-4.5.0.tgz", + "integrity": "sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==", + "dev": true + }, "loglevel": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", @@ -29337,6 +29473,15 @@ "dev": true, "requires": {} }, + "textlint-rule-doubled-spaces": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/textlint-rule-doubled-spaces/-/textlint-rule-doubled-spaces-1.0.0.tgz", + "integrity": "sha512-VEbmh4IzADMZKW7pJhcL4aEXxI8Dk7UIah6cVNpAPjIVcMXrJxnDYJhtaXPXF2TDtj9Sgikor8i9VKbkTvEpeQ==", + "dev": true, + "requires": { + "@textlint/regexp-string-matcher": "^1.1.0" + } + }, "textlint-rule-helper": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-2.2.3.tgz", diff --git a/package.json b/package.json index 76a69d7..673c334 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@textlint-rule/textlint-rule-no-unmatched-pair": "^1.0.9", "textlint": "^12.4.0", "textlint-filter-rule-comments": "^1.2.2", + "textlint-rule-doubled-spaces": "^1.0.0", "textlint-rule-max-comma": "^2.0.2", "textlint-rule-no-dead-link": "^5.1.2", "textlint-rule-no-empty-element": "^0.3.1",