Replace `multi-regexp2` with `becke-ch--regex--s0-0-v1--base--pl--lib` (#590)

master
Brad Cornes 2022-08-05 16:58:50 +01:00 committed by GitHub
parent 0efcdd773e
commit 112fae6a6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 121 additions and 172 deletions

142
package-lock.json generated
View File

@ -16,6 +16,7 @@
"@types/node": "14.14.34", "@types/node": "14.14.34",
"@types/semver": "7.3.10", "@types/semver": "7.3.10",
"@types/vscode": "1.60.0", "@types/vscode": "1.60.0",
"becke-ch--regex--s0-0-v1--base--pl--lib": "1.4.0",
"builtin-modules": "3.2.0", "builtin-modules": "3.2.0",
"chokidar": "3.5.1", "chokidar": "3.5.1",
"color-name": "1.1.4", "color-name": "1.1.4",
@ -35,7 +36,6 @@
"license-checker": "25.0.1", "license-checker": "25.0.1",
"line-column": "1.0.2", "line-column": "1.0.2",
"moo": "0.5.1", "moo": "0.5.1",
"multi-regexp2": "1.0.3",
"normalize-path": "3.0.0", "normalize-path": "3.0.0",
"pkg-up": "3.1.0", "pkg-up": "3.1.0",
"postcss": "8.3.9", "postcss": "8.3.9",
@ -245,14 +245,12 @@
} }
}, },
"node_modules/@babel/helper-define-polyfill-provider": { "node_modules/@babel/helper-define-polyfill-provider": {
"version": "0.3.1", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz",
"integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==",
"dependencies": { "dependencies": {
"@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-compilation-targets": "^7.17.7",
"@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.16.7",
"@babel/helper-plugin-utils": "^7.13.0",
"@babel/traverse": "^7.13.0",
"debug": "^4.1.1", "debug": "^4.1.1",
"lodash.debounce": "^4.0.8", "lodash.debounce": "^4.0.8",
"resolve": "^1.14.2", "resolve": "^1.14.2",
@ -5657,12 +5655,12 @@
} }
}, },
"node_modules/babel-plugin-polyfill-corejs2": { "node_modules/babel-plugin-polyfill-corejs2": {
"version": "0.3.1", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz",
"integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==",
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.13.11", "@babel/compat-data": "^7.17.7",
"@babel/helper-define-polyfill-provider": "^0.3.1", "@babel/helper-define-polyfill-provider": "^0.3.2",
"semver": "^6.1.1" "semver": "^6.1.1"
}, },
"peerDependencies": { "peerDependencies": {
@ -5678,11 +5676,11 @@
} }
}, },
"node_modules/babel-plugin-polyfill-corejs3": { "node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.5.2", "version": "0.5.3",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
"integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
"dependencies": { "dependencies": {
"@babel/helper-define-polyfill-provider": "^0.3.1", "@babel/helper-define-polyfill-provider": "^0.3.2",
"core-js-compat": "^3.21.0" "core-js-compat": "^3.21.0"
}, },
"peerDependencies": { "peerDependencies": {
@ -5816,6 +5814,11 @@
"tweetnacl": "^0.14.3" "tweetnacl": "^0.14.3"
} }
}, },
"node_modules/becke-ch--regex--s0-0-v1--base--pl--lib": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz",
"integrity": "sha512-FnWonOyaw7Vivg5nIkrUll9HSS5TjFbyuURAiDssuL6VxrBe3ERzudRxOcWRhZYlP89UArMDikz7SapRPQpmZQ=="
},
"node_modules/before-after-hook": { "node_modules/before-after-hook": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz",
@ -6134,9 +6137,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001368", "version": "1.0.30001370",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001368.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001370.tgz",
"integrity": "sha512-wgfRYa9DenEomLG/SdWgQxpIyvdtH3NW8Vq+tB6AwR9e56iOIcu1im5F/wNdDf04XlKHXqIx4N8Jo0PemeBenQ==", "integrity": "sha512-3PDmaP56wz/qz7G508xzjx8C+MC2qEm4SYhSEzC9IBROo+dGXFWRuaXkWti0A9tuI00g+toiriVqxtWMgl350g==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -6383,9 +6386,9 @@
} }
}, },
"node_modules/cli-spinners": { "node_modules/cli-spinners": {
"version": "2.6.1", "version": "2.7.0",
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz",
"integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==",
"engines": { "engines": {
"node": ">=6" "node": ">=6"
}, },
@ -7171,9 +7174,9 @@
} }
}, },
"node_modules/core-js-compat": { "node_modules/core-js-compat": {
"version": "3.23.5", "version": "3.24.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.5.tgz", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.0.tgz",
"integrity": "sha512-fHYozIFIxd+91IIbXJgWd/igXIc8Mf9is0fusswjnGIWVG96y2cwyUdlCkGOw6rMLHKAxg7xtCIVaHsyOUnJIg==", "integrity": "sha512-F+2E63X3ff/nj8uIrf8Rf24UDGIz7p838+xjEp+Bx3y8OWXj+VTPPZNCtdqovPaS9o7Tka5mCH01Zn5vOd6UQg==",
"dependencies": { "dependencies": {
"browserslist": "^4.21.2", "browserslist": "^4.21.2",
"semver": "7.0.0" "semver": "7.0.0"
@ -7192,9 +7195,9 @@
} }
}, },
"node_modules/core-js-pure": { "node_modules/core-js-pure": {
"version": "3.23.5", "version": "3.24.0",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.5.tgz", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.24.0.tgz",
"integrity": "sha512-8t78LdpKSuCq4pJYCYk8hl7XEkAX+BP16yRIwL3AanTksxuEf7CM83vRyctmiEL8NDZ3jpUcv56fk9/zG3aIuw==", "integrity": "sha512-uzMmW8cRh7uYw4JQtzqvGWRyC2T5+4zipQLQdi2FmiRqP83k3d6F3stv2iAlNhOs6cXN401FCD5TL0vvleuHgA==",
"hasInstallScript": true, "hasInstallScript": true,
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@ -7751,9 +7754,9 @@
} }
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.198", "version": "1.4.199",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.198.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.199.tgz",
"integrity": "sha512-jwqQPdKGeAslcq8L+1SZZgL6uDiIDmTe9Gq4brsdWAH27y7MJ2g9Ue6MyST3ogmSM49EAQP7bype1V5hsuNrmQ==" "integrity": "sha512-WIGME0Cs7oob3mxsJwHbeWkH0tYkIE/sjkJ8ML2BYmuRcjhRl/q5kVDXG7W9LOOKwzPU5M0LBlXRq9rlSgnNlg=="
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
"version": "9.2.2", "version": "9.2.2",
@ -14673,11 +14676,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}, },
"node_modules/multi-regexp2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/multi-regexp2/-/multi-regexp2-1.0.3.tgz",
"integrity": "sha512-yYrsPk+8TW+r4HK8/7/BIqc7QzcMSIwUGwGouiwIC/anHpjCfKO/PNACGiPYn0WzEMiq+LuEAmZ80NRiCCykiw=="
},
"node_modules/multimatch": { "node_modules/multimatch": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz", "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz",
@ -21100,14 +21098,12 @@
} }
}, },
"@babel/helper-define-polyfill-provider": { "@babel/helper-define-polyfill-provider": {
"version": "0.3.1", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz",
"integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==",
"requires": { "requires": {
"@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-compilation-targets": "^7.17.7",
"@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.16.7",
"@babel/helper-plugin-utils": "^7.13.0",
"@babel/traverse": "^7.13.0",
"debug": "^4.1.1", "debug": "^4.1.1",
"lodash.debounce": "^4.0.8", "lodash.debounce": "^4.0.8",
"resolve": "^1.14.2", "resolve": "^1.14.2",
@ -25292,12 +25288,12 @@
} }
}, },
"babel-plugin-polyfill-corejs2": { "babel-plugin-polyfill-corejs2": {
"version": "0.3.1", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz",
"integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==",
"requires": { "requires": {
"@babel/compat-data": "^7.13.11", "@babel/compat-data": "^7.17.7",
"@babel/helper-define-polyfill-provider": "^0.3.1", "@babel/helper-define-polyfill-provider": "^0.3.2",
"semver": "^6.1.1" "semver": "^6.1.1"
}, },
"dependencies": { "dependencies": {
@ -25309,11 +25305,11 @@
} }
}, },
"babel-plugin-polyfill-corejs3": { "babel-plugin-polyfill-corejs3": {
"version": "0.5.2", "version": "0.5.3",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
"integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
"requires": { "requires": {
"@babel/helper-define-polyfill-provider": "^0.3.1", "@babel/helper-define-polyfill-provider": "^0.3.2",
"core-js-compat": "^3.21.0" "core-js-compat": "^3.21.0"
} }
}, },
@ -25421,6 +25417,11 @@
"tweetnacl": "^0.14.3" "tweetnacl": "^0.14.3"
} }
}, },
"becke-ch--regex--s0-0-v1--base--pl--lib": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz",
"integrity": "sha512-FnWonOyaw7Vivg5nIkrUll9HSS5TjFbyuURAiDssuL6VxrBe3ERzudRxOcWRhZYlP89UArMDikz7SapRPQpmZQ=="
},
"before-after-hook": { "before-after-hook": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz",
@ -25671,9 +25672,9 @@
} }
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001368", "version": "1.0.30001370",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001368.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001370.tgz",
"integrity": "sha512-wgfRYa9DenEomLG/SdWgQxpIyvdtH3NW8Vq+tB6AwR9e56iOIcu1im5F/wNdDf04XlKHXqIx4N8Jo0PemeBenQ==" "integrity": "sha512-3PDmaP56wz/qz7G508xzjx8C+MC2qEm4SYhSEzC9IBROo+dGXFWRuaXkWti0A9tuI00g+toiriVqxtWMgl350g=="
}, },
"capture-exit": { "capture-exit": {
"version": "2.0.0", "version": "2.0.0",
@ -25861,9 +25862,9 @@
} }
}, },
"cli-spinners": { "cli-spinners": {
"version": "2.6.1", "version": "2.7.0",
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz",
"integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw=="
}, },
"cli-width": { "cli-width": {
"version": "2.2.1", "version": "2.2.1",
@ -26489,9 +26490,9 @@
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
}, },
"core-js-compat": { "core-js-compat": {
"version": "3.23.5", "version": "3.24.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.5.tgz", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.0.tgz",
"integrity": "sha512-fHYozIFIxd+91IIbXJgWd/igXIc8Mf9is0fusswjnGIWVG96y2cwyUdlCkGOw6rMLHKAxg7xtCIVaHsyOUnJIg==", "integrity": "sha512-F+2E63X3ff/nj8uIrf8Rf24UDGIz7p838+xjEp+Bx3y8OWXj+VTPPZNCtdqovPaS9o7Tka5mCH01Zn5vOd6UQg==",
"requires": { "requires": {
"browserslist": "^4.21.2", "browserslist": "^4.21.2",
"semver": "7.0.0" "semver": "7.0.0"
@ -26505,9 +26506,9 @@
} }
}, },
"core-js-pure": { "core-js-pure": {
"version": "3.23.5", "version": "3.24.0",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.5.tgz", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.24.0.tgz",
"integrity": "sha512-8t78LdpKSuCq4pJYCYk8hl7XEkAX+BP16yRIwL3AanTksxuEf7CM83vRyctmiEL8NDZ3jpUcv56fk9/zG3aIuw==" "integrity": "sha512-uzMmW8cRh7uYw4JQtzqvGWRyC2T5+4zipQLQdi2FmiRqP83k3d6F3stv2iAlNhOs6cXN401FCD5TL0vvleuHgA=="
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@ -26938,9 +26939,9 @@
} }
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.4.198", "version": "1.4.199",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.198.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.199.tgz",
"integrity": "sha512-jwqQPdKGeAslcq8L+1SZZgL6uDiIDmTe9Gq4brsdWAH27y7MJ2g9Ue6MyST3ogmSM49EAQP7bype1V5hsuNrmQ==" "integrity": "sha512-WIGME0Cs7oob3mxsJwHbeWkH0tYkIE/sjkJ8ML2BYmuRcjhRl/q5kVDXG7W9LOOKwzPU5M0LBlXRq9rlSgnNlg=="
}, },
"emoji-regex": { "emoji-regex": {
"version": "9.2.2", "version": "9.2.2",
@ -32302,11 +32303,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}, },
"multi-regexp2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/multi-regexp2/-/multi-regexp2-1.0.3.tgz",
"integrity": "sha512-yYrsPk+8TW+r4HK8/7/BIqc7QzcMSIwUGwGouiwIC/anHpjCfKO/PNACGiPYn0WzEMiq+LuEAmZ80NRiCCykiw=="
},
"multimatch": { "multimatch": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz", "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz",

View File

@ -10,6 +10,7 @@
"dependencies": { "dependencies": {
"@types/moo": "0.5.3", "@types/moo": "0.5.3",
"@types/semver": "7.3.10", "@types/semver": "7.3.10",
"becke-ch--regex--s0-0-v1--base--pl--lib": "1.4.0",
"color-name": "1.1.4", "color-name": "1.1.4",
"css.escape": "1.5.1", "css.escape": "1.5.1",
"culori": "0.20.1", "culori": "0.20.1",
@ -18,7 +19,6 @@
"dset": "3.1.2", "dset": "3.1.2",
"line-column": "1.0.2", "line-column": "1.0.2",
"moo": "0.5.1", "moo": "0.5.1",
"multi-regexp2": "1.0.3",
"postcss": "8.3.9", "postcss": "8.3.9",
"postcss-selector-parser": "6.0.2", "postcss-selector-parser": "6.0.2",
"semver": "7.3.7", "semver": "7.3.7",
@ -3026,6 +3026,11 @@
"tweetnacl": "^0.14.3" "tweetnacl": "^0.14.3"
} }
}, },
"node_modules/becke-ch--regex--s0-0-v1--base--pl--lib": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz",
"integrity": "sha512-FnWonOyaw7Vivg5nIkrUll9HSS5TjFbyuURAiDssuL6VxrBe3ERzudRxOcWRhZYlP89UArMDikz7SapRPQpmZQ=="
},
"node_modules/brace-expansion": { "node_modules/brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@ -8502,11 +8507,6 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true "dev": true
}, },
"node_modules/multi-regexp2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/multi-regexp2/-/multi-regexp2-1.0.3.tgz",
"integrity": "sha512-yYrsPk+8TW+r4HK8/7/BIqc7QzcMSIwUGwGouiwIC/anHpjCfKO/PNACGiPYn0WzEMiq+LuEAmZ80NRiCCykiw=="
},
"node_modules/mute-stream": { "node_modules/mute-stream": {
"version": "0.0.8", "version": "0.0.8",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
@ -14888,6 +14888,11 @@
"tweetnacl": "^0.14.3" "tweetnacl": "^0.14.3"
} }
}, },
"becke-ch--regex--s0-0-v1--base--pl--lib": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz",
"integrity": "sha512-FnWonOyaw7Vivg5nIkrUll9HSS5TjFbyuURAiDssuL6VxrBe3ERzudRxOcWRhZYlP89UArMDikz7SapRPQpmZQ=="
},
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@ -19137,11 +19142,6 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true "dev": true
}, },
"multi-regexp2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/multi-regexp2/-/multi-regexp2-1.0.3.tgz",
"integrity": "sha512-yYrsPk+8TW+r4HK8/7/BIqc7QzcMSIwUGwGouiwIC/anHpjCfKO/PNACGiPYn0WzEMiq+LuEAmZ80NRiCCykiw=="
},
"mute-stream": { "mute-stream": {
"version": "0.0.8", "version": "0.0.8",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",

View File

@ -16,6 +16,7 @@
"dependencies": { "dependencies": {
"@types/moo": "0.5.3", "@types/moo": "0.5.3",
"@types/semver": "7.3.10", "@types/semver": "7.3.10",
"becke-ch--regex--s0-0-v1--base--pl--lib": "1.4.0",
"color-name": "1.1.4", "color-name": "1.1.4",
"css.escape": "1.5.1", "css.escape": "1.5.1",
"culori": "0.20.1", "culori": "0.20.1",
@ -24,7 +25,6 @@
"dset": "3.1.2", "dset": "3.1.2",
"line-column": "1.0.2", "line-column": "1.0.2",
"moo": "0.5.1", "moo": "0.5.1",
"multi-regexp2": "1.0.3",
"postcss": "8.3.9", "postcss": "8.3.9",
"postcss-selector-parser": "6.0.2", "postcss-selector-parser": "6.0.2",
"semver": "7.3.7", "semver": "7.3.7",

View File

@ -29,10 +29,10 @@ import { getClassAttributeLexer, getComputedClassAttributeLexer } from './util/l
import { validateApply } from './util/validateApply' import { validateApply } from './util/validateApply'
import { flagEnabled } from './util/flagEnabled' import { flagEnabled } from './util/flagEnabled'
import { remToPx } from './util/remToPx' import { remToPx } from './util/remToPx'
import { createMultiRegexp } from './util/createMultiRegexp'
import * as jit from './util/jit' import * as jit from './util/jit'
import { getVariantsFromClassName } from './util/getVariantsFromClassName' import { getVariantsFromClassName } from './util/getVariantsFromClassName'
import * as culori from 'culori' import * as culori from 'culori'
import Regex from 'becke-ch--regex--s0-0-v1--base--pl--lib'
let isUtil = (className) => let isUtil = (className) =>
Array.isArray(className.__info) Array.isArray(className.__info)
@ -414,28 +414,30 @@ async function provideCustomClassNameCompletions(
for (let i = 0; i < regexes.length; i++) { for (let i = 0; i < regexes.length; i++) {
try { try {
let [containerRegex, classRegex] = Array.isArray(regexes[i]) ? regexes[i] : [regexes[i]] let [containerRegexString, classRegexString] = Array.isArray(regexes[i])
? regexes[i]
: [regexes[i]]
containerRegex = createMultiRegexp(containerRegex) let containerRegex = new Regex(containerRegexString, 'g')
let containerMatch let containerMatch: ReturnType<Regex['exec']>
while ((containerMatch = containerRegex.exec(str)) !== null) { while ((containerMatch = containerRegex.exec(str)) !== null) {
const searchStart = document.offsetAt(searchRange.start) const searchStart = document.offsetAt(searchRange.start)
const matchStart = searchStart + containerMatch.start const matchStart = searchStart + containerMatch.index[1]
const matchEnd = searchStart + containerMatch.end const matchEnd = matchStart + containerMatch[1].length
const cursor = document.offsetAt(position) const cursor = document.offsetAt(position)
if (cursor >= matchStart && cursor <= matchEnd) { if (cursor >= matchStart && cursor <= matchEnd) {
let classList let classList: string
if (classRegex) { if (classRegexString) {
classRegex = createMultiRegexp(classRegex) let classRegex = new Regex(classRegexString, 'g')
let classMatch let classMatch: ReturnType<Regex['exec']>
while ((classMatch = classRegex.exec(containerMatch.match)) !== null) { while ((classMatch = classRegex.exec(containerMatch[1])) !== null) {
const classMatchStart = matchStart + classMatch.start const classMatchStart = matchStart + classMatch.index[1]
const classMatchEnd = matchStart + classMatch.end const classMatchEnd = classMatchStart + classMatch[1].length
if (cursor >= classMatchStart && cursor <= classMatchEnd) { if (cursor >= classMatchStart && cursor <= classMatchEnd) {
classList = classMatch.match.substr(0, cursor - classMatchStart) classList = classMatch[1].substr(0, cursor - classMatchStart)
} }
} }
@ -443,7 +445,7 @@ async function provideCustomClassNameCompletions(
throw Error() throw Error()
} }
} else { } else {
classList = containerMatch.match.substr(0, cursor - matchStart) classList = containerMatch[1].substr(0, cursor - matchStart)
} }
return completionsFromClassList(state, classList, { return completionsFromClassList(state, classList, {

View File

@ -1,57 +0,0 @@
import MultiRegexp from 'multi-regexp2'
export function createMultiRegexp(regexString: string) {
let insideCharClass = false
let captureGroupIndex = -1
for (let i = 0; i < regexString.length; i++) {
if (
!insideCharClass &&
regexString[i] === '[' &&
regexString[i - 1] !== '\\'
) {
insideCharClass = true
} else if (
insideCharClass &&
regexString[i] === ']' &&
regexString[i - 1] !== '\\'
) {
insideCharClass = false
} else if (
!insideCharClass &&
regexString[i] === '(' &&
regexString.substr(i + 1, 2) !== '?:'
) {
captureGroupIndex = i
break
}
}
const re = /(?:[^\\]|^)\(\?:/g
let match: RegExpExecArray
let nonCaptureGroupIndexes: number[] = []
while ((match = re.exec(regexString)) !== null) {
if (match[0].startsWith('(')) {
nonCaptureGroupIndexes.push(match.index)
} else {
nonCaptureGroupIndexes.push(match.index + 1)
}
}
const regex = new MultiRegexp(
new RegExp(
regexString.replace(re, (m) => m.substr(0, m.length - 2)),
'g'
)
)
let groupIndex =
1 + nonCaptureGroupIndexes.filter((i) => i < captureGroupIndex).length
return {
exec: (str: string) => {
return regex.execForGroup(str, groupIndex)
},
}
}

View File

@ -10,8 +10,8 @@ import { getClassAttributeLexer, getComputedClassAttributeLexer } from './lexers
import { getLanguageBoundaries } from './getLanguageBoundaries' import { getLanguageBoundaries } from './getLanguageBoundaries'
import { resolveRange } from './resolveRange' import { resolveRange } from './resolveRange'
import dlv from 'dlv' import dlv from 'dlv'
import { createMultiRegexp } from './createMultiRegexp'
import { rangesEqual } from './rangesEqual' import { rangesEqual } from './rangesEqual'
import Regex from 'becke-ch--regex--s0-0-v1--base--pl--lib'
export function findAll(re: RegExp, str: string): RegExpMatchArray[] { export function findAll(re: RegExp, str: string): RegExpMatchArray[] {
let match: RegExpMatchArray let match: RegExpMatchArray
@ -132,25 +132,27 @@ async function findCustomClassLists(
for (let i = 0; i < regexes.length; i++) { for (let i = 0; i < regexes.length; i++) {
try { try {
let [containerRegex, classRegex] = Array.isArray(regexes[i]) ? regexes[i] : [regexes[i]] let [containerRegexString, classRegexString] = Array.isArray(regexes[i])
? regexes[i]
: [regexes[i]]
let containerRegex2 = createMultiRegexp(containerRegex) let containerRegex = new Regex(containerRegexString, 'g')
let containerMatch let containerMatch: ReturnType<Regex['exec']>
while ((containerMatch = containerRegex2.exec(text)) !== null) { while ((containerMatch = containerRegex.exec(text)) !== null) {
const searchStart = doc.offsetAt(range?.start || { line: 0, character: 0 }) const searchStart = doc.offsetAt(range?.start || { line: 0, character: 0 })
const matchStart = searchStart + containerMatch.start const matchStart = searchStart + containerMatch.index[1]
const matchEnd = searchStart + containerMatch.end const matchEnd = matchStart + containerMatch[1].length
if (classRegex) { if (classRegexString) {
let classRegex2 = createMultiRegexp(classRegex) let classRegex = new Regex(classRegexString, 'g')
let classMatch let classMatch: ReturnType<Regex['exec']>
while ((classMatch = classRegex2.exec(containerMatch.match)) !== null) { while ((classMatch = classRegex.exec(containerMatch[1])) !== null) {
const classMatchStart = matchStart + classMatch.start const classMatchStart = matchStart + classMatch.index[1]
const classMatchEnd = matchStart + classMatch.end const classMatchEnd = classMatchStart + classMatch[1].length
result.push({ result.push({
classList: classMatch.match, classList: classMatch[1],
range: { range: {
start: doc.positionAt(classMatchStart), start: doc.positionAt(classMatchStart),
end: doc.positionAt(classMatchEnd), end: doc.positionAt(classMatchEnd),
@ -159,7 +161,7 @@ async function findCustomClassLists(
} }
} else { } else {
result.push({ result.push({
classList: containerMatch.match, classList: containerMatch[1],
range: { range: {
start: doc.positionAt(matchStart), start: doc.positionAt(matchStart),
end: doc.positionAt(matchEnd), end: doc.positionAt(matchEnd),

View File

@ -0,0 +1,6 @@
declare module 'becke-ch--regex--s0-0-v1--base--pl--lib' {
export default class Regex {
constructor(regex: string, modifiers?: string)
exec(str: string): null | (string[] & { index: number[] })
}
}