From 6621b01b5bb43cb1da375a4dcb8199c6321c0dee Mon Sep 17 00:00:00 2001 From: iChenLei Date: Thu, 18 Nov 2021 15:18:18 +0800 Subject: [PATCH 1/3] fix: change the and regexp match --- packages/less/src/less/parser/parser.js | 4 ++-- packages/test-data/errors/parse/impor-type.txt | 0 packages/test-data/errors/parse/impor-typo.less | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 packages/test-data/errors/parse/impor-type.txt create mode 100644 packages/test-data/errors/parse/impor-typo.less diff --git a/packages/less/src/less/parser/parser.js b/packages/less/src/less/parser/parser.js index d9b1e8137..41b7d01a5 100644 --- a/packages/less/src/less/parser/parser.js +++ b/packages/less/src/less/parser/parser.js @@ -1684,7 +1684,7 @@ const Parser = function Parser(context, imports, fileInfo) { let features; const index = parserInput.i; - const dir = parserInput.$re(/^@import?\s+/); + const dir = parserInput.$re(/^@import\s+/); if (dir) { const options = (dir ? this.importOptions() : null) || {}; @@ -1844,7 +1844,7 @@ const Parser = function Parser(context, imports, fileInfo) { let args; let options; const index = parserInput.i; - const dir = parserInput.$re(/^@plugin?\s+/); + const dir = parserInput.$re(/^@plugin\s+/); if (dir) { args = this.pluginArgs(); diff --git a/packages/test-data/errors/parse/impor-type.txt b/packages/test-data/errors/parse/impor-type.txt new file mode 100644 index 000000000..e69de29bb diff --git a/packages/test-data/errors/parse/impor-typo.less b/packages/test-data/errors/parse/impor-typo.less new file mode 100644 index 000000000..3174eb208 --- /dev/null +++ b/packages/test-data/errors/parse/impor-typo.less @@ -0,0 +1 @@ +@impor "this-impor-is-invalid.less" \ No newline at end of file From 1142bd659f35de5f673e3f4cc15a5e8fa5bafa14 Mon Sep 17 00:00:00 2001 From: iChenLei Date: Thu, 18 Nov 2021 16:03:03 +0800 Subject: [PATCH 2/3] feat: change unit test --- .gitignore | 1 + packages/test-data/css/_main/impor.css | 1 + packages/test-data/css/_main/plugi.css | 1 + packages/test-data/errors/parse/impor-type.txt | 0 packages/test-data/errors/parse/impor-typo.less | 1 - packages/test-data/less/_main/impor.less | 5 +++++ packages/test-data/less/_main/plugi.less | 5 +++++ 7 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 packages/test-data/css/_main/impor.css create mode 100644 packages/test-data/css/_main/plugi.css delete mode 100644 packages/test-data/errors/parse/impor-type.txt delete mode 100644 packages/test-data/errors/parse/impor-typo.less create mode 100644 packages/test-data/less/_main/impor.less create mode 100644 packages/test-data/less/_main/plugi.less diff --git a/.gitignore b/.gitignore index 518329ca0..8e57ffcf7 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ .idea *.iml *.sublime-* +.DS_Store # npm node_modules diff --git a/packages/test-data/css/_main/impor.css b/packages/test-data/css/_main/impor.css new file mode 100644 index 000000000..695081c9a --- /dev/null +++ b/packages/test-data/css/_main/impor.css @@ -0,0 +1 @@ +@impor "impor-type-dont-parse-as-import.less"; diff --git a/packages/test-data/css/_main/plugi.css b/packages/test-data/css/_main/plugi.css new file mode 100644 index 000000000..ed46d9920 --- /dev/null +++ b/packages/test-data/css/_main/plugi.css @@ -0,0 +1 @@ +@plugi "clean-css"; diff --git a/packages/test-data/errors/parse/impor-type.txt b/packages/test-data/errors/parse/impor-type.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/test-data/errors/parse/impor-typo.less b/packages/test-data/errors/parse/impor-typo.less deleted file mode 100644 index 3174eb208..000000000 --- a/packages/test-data/errors/parse/impor-typo.less +++ /dev/null @@ -1 +0,0 @@ -@impor "this-impor-is-invalid.less" \ No newline at end of file diff --git a/packages/test-data/less/_main/impor.less b/packages/test-data/less/_main/impor.less new file mode 100644 index 000000000..d5fb3700d --- /dev/null +++ b/packages/test-data/less/_main/impor.less @@ -0,0 +1,5 @@ +// https://github.com/less/less.js/issues/3660 +// const dir = parserInput.$re(/^@import?\s+/); +// correct regexp is /^@import\s+/ +// so follow code will change nothing, parse result is same with raw less code +@impor "impor-type-dont-parse-as-import.less"; diff --git a/packages/test-data/less/_main/plugi.less b/packages/test-data/less/_main/plugi.less new file mode 100644 index 000000000..9b923d022 --- /dev/null +++ b/packages/test-data/less/_main/plugi.less @@ -0,0 +1,5 @@ +// https://github.com/less/less.js/issues/3660 +// const dir = parserInput.$re(/^@plugin?\s+/); +// correct regexp is /^@plugin\s+/ +// so follow code will change nothing, parse result is same with raw less code +@plugi "clean-css"; From e65fbbf96db7326e70d0d8ff445845f66e47eff8 Mon Sep 17 00:00:00 2001 From: iChenLei Date: Thu, 18 Nov 2021 16:20:00 +0800 Subject: [PATCH 3/3] chore: change desc --- packages/test-data/css/_main/impor.css | 2 +- packages/test-data/css/_main/plugi.css | 2 +- packages/test-data/less/_main/impor.less | 2 +- packages/test-data/less/_main/plugi.less | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/test-data/css/_main/impor.css b/packages/test-data/css/_main/impor.css index 695081c9a..7345719e9 100644 --- a/packages/test-data/css/_main/impor.css +++ b/packages/test-data/css/_main/impor.css @@ -1 +1 @@ -@impor "impor-type-dont-parse-as-import.less"; +@impor "impor-typo-dont-parse-as-@import.less"; diff --git a/packages/test-data/css/_main/plugi.css b/packages/test-data/css/_main/plugi.css index ed46d9920..de4c6a02c 100644 --- a/packages/test-data/css/_main/plugi.css +++ b/packages/test-data/css/_main/plugi.css @@ -1 +1 @@ -@plugi "clean-css"; +@plugi "plugi-typo-dont-parse-as-@plugin"; diff --git a/packages/test-data/less/_main/impor.less b/packages/test-data/less/_main/impor.less index d5fb3700d..bb5e36b0a 100644 --- a/packages/test-data/less/_main/impor.less +++ b/packages/test-data/less/_main/impor.less @@ -2,4 +2,4 @@ // const dir = parserInput.$re(/^@import?\s+/); // correct regexp is /^@import\s+/ // so follow code will change nothing, parse result is same with raw less code -@impor "impor-type-dont-parse-as-import.less"; +@impor "impor-typo-dont-parse-as-@import.less"; diff --git a/packages/test-data/less/_main/plugi.less b/packages/test-data/less/_main/plugi.less index 9b923d022..e200eb9f5 100644 --- a/packages/test-data/less/_main/plugi.less +++ b/packages/test-data/less/_main/plugi.less @@ -2,4 +2,4 @@ // const dir = parserInput.$re(/^@plugin?\s+/); // correct regexp is /^@plugin\s+/ // so follow code will change nothing, parse result is same with raw less code -@plugi "clean-css"; +@plugi "plugi-typo-dont-parse-as-@plugin";