From bd14f14709d986920ec08bb997e623ec6f24654f Mon Sep 17 00:00:00 2001 From: Matthew Dean Date: Fri, 24 Jun 2016 20:36:00 -0700 Subject: [PATCH] Rename @plugin to @use extensions --- .../importer.js} | 13 ++++++------ lib/less/import-manager.js | 8 ++++---- lib/less/index.js | 2 +- lib/less/parser/parser.js | 20 +++++++++++-------- lib/less/tree/import.js | 4 ++-- lib/less/visitors/import-visitor.js | 4 ++-- package.json | 2 +- test/less/errors/functions-1.less | 2 +- test/less/errors/functions-1.txt | 2 +- test/less/errors/functions-10-keyword.less | 2 +- test/less/errors/functions-10-keyword.txt | 2 +- test/less/errors/functions-11-operation.less | 2 +- test/less/errors/functions-11-operation.txt | 2 +- test/less/errors/functions-12-quoted.less | 2 +- test/less/errors/functions-12-quoted.txt | 2 +- test/less/errors/functions-13-selector.less | 2 +- test/less/errors/functions-13-selector.txt | 2 +- test/less/errors/functions-14-url.less | 2 +- test/less/errors/functions-14-url.txt | 2 +- test/less/errors/functions-15-value.less | 2 +- test/less/errors/functions-15-value.txt | 2 +- test/less/errors/functions-16-old-syntax.less | 1 + test/less/errors/functions-16-old-syntax.txt | 2 ++ test/less/errors/functions-2-alpha.less | 2 +- test/less/errors/functions-2-alpha.txt | 2 +- test/less/errors/functions-3-assignment.less | 2 +- test/less/errors/functions-3-assignment.txt | 2 +- test/less/errors/functions-4-call.less | 2 +- test/less/errors/functions-4-call.txt | 2 +- test/less/errors/functions-5-color.less | 2 +- test/less/errors/functions-5-color.txt | 2 +- test/less/errors/functions-6-condition.less | 2 +- test/less/errors/functions-6-condition.txt | 2 +- test/less/errors/functions-7-dimension.less | 2 +- test/less/errors/functions-7-dimension.txt | 2 +- test/less/errors/functions-8-element.less | 2 +- test/less/errors/functions-8-element.txt | 2 +- test/less/errors/functions-9-expression.less | 2 +- test/less/errors/functions-9-expression.txt | 2 +- test/less/errors/root-func-undefined-2.less | 2 +- test/less/errors/root-func-undefined-2.txt | 2 +- .../extension-global.js} | 0 .../extension-local.js} | 0 .../extension-transitive.js} | 0 .../extension-transitive.less} | 2 +- .../extension-tree-nodes.js} | 0 test/less/plugin.less | 16 +++++++-------- 47 files changed, 73 insertions(+), 65 deletions(-) rename lib/less/{plugins/function-importer.js => extension/importer.js} (56%) create mode 100644 test/less/errors/functions-16-old-syntax.less create mode 100644 test/less/errors/functions-16-old-syntax.txt rename test/less/{plugin/plugin-global.js => extension/extension-global.js} (100%) rename test/less/{plugin/plugin-local.js => extension/extension-local.js} (100%) rename test/less/{plugin/plugin-transitive.js => extension/extension-transitive.js} (100%) rename test/less/{plugin/plugin-transitive.less => extension/extension-transitive.less} (57%) rename test/less/{plugin/plugin-tree-nodes.js => extension/extension-tree-nodes.js} (100%) diff --git a/lib/less/plugins/function-importer.js b/lib/less/extension/importer.js similarity index 56% rename from lib/less/plugins/function-importer.js rename to lib/less/extension/importer.js index b863998b..aba57f59 100644 --- a/lib/less/plugins/function-importer.js +++ b/lib/less/extension/importer.js @@ -1,11 +1,12 @@ var LessError = require('../less-error'), - tree = require("../tree"); + tree = require("../tree"), + less = require("../."); -var FunctionImporter = module.exports = function FunctionImporter(context, fileInfo) { +var ExtensionImporter = module.exports = function ExtensionImporter(context, fileInfo) { this.fileInfo = fileInfo; }; -FunctionImporter.prototype.eval = function(contents, callback) { +ExtensionImporter.prototype.eval = function(contents, callback) { var loaded = {}, loader, registry; @@ -22,11 +23,11 @@ FunctionImporter.prototype.eval = function(contents, callback) { }; try { - loader = new Function("functions", "tree", "fileInfo", contents); - loader(registry, tree, this.fileInfo); + loader = new Function("functions", "tree", "fileInfo", "less", contents); + loader(registry, tree, this.fileInfo, less); } catch(e) { callback(new LessError({ - message: "Plugin evaluation error: '" + e.name + ': ' + e.message.replace(/["]/g, "'") + "'" , + message: "Extension evaluation error: '" + e.name + ': ' + e.message.replace(/["]/g, "'") + "'" , filename: this.fileInfo.filename }), null ); } diff --git a/lib/less/import-manager.js b/lib/less/import-manager.js index 79d2f3fe..b758a0d4 100644 --- a/lib/less/import-manager.js +++ b/lib/less/import-manager.js @@ -1,6 +1,6 @@ var contexts = require("./contexts"), Parser = require('./parser/parser'), - FunctionImporter = require('./plugins/function-importer'); + ExtensionImporter = require('./extension/importer'); module.exports = function(environment) { @@ -66,7 +66,7 @@ module.exports = function(environment) { } if (tryAppendLessExtension) { - path = fileManager.tryAppendExtension(path, importOptions.plugin ? ".js" : ".less"); + path = fileManager.tryAppendExtension(path, importOptions.isExtension ? ".js" : ".less"); } var loadFileCallback = function(loadedFile) { @@ -102,8 +102,8 @@ module.exports = function(environment) { newFileInfo.reference = true; } - if (importOptions.plugin) { - new FunctionImporter(newEnv, newFileInfo).eval(contents, function (e, root) { + if (importOptions.isExtension) { + new ExtensionImporter(newEnv, newFileInfo).eval(contents, function (e, root) { fileParsedFunc(e, root, resolvedFilename); }); } else if (importOptions.inline) { diff --git a/lib/less/index.js b/lib/less/index.js index b9574cab..1ea56331 100644 --- a/lib/less/index.js +++ b/lib/less/index.js @@ -2,7 +2,7 @@ module.exports = function(environment, fileManagers) { var SourceMapOutput, SourceMapBuilder, ParseTree, ImportManager, Environment; var less = { - version: [2, 7, 1], + version: [2, 8, 0], data: require('./data'), tree: require('./tree'), Environment: (Environment = require("./environment/environment")), diff --git a/lib/less/parser/parser.js b/lib/less/parser/parser.js index 02618d36..e84f5fc6 100644 --- a/lib/less/parser/parser.js +++ b/lib/less/parser/parser.js @@ -1384,35 +1384,39 @@ var Parser = function Parser(context, imports, fileInfo) { }, // - // A @plugin directive, used to import compiler extensions dynamically. + // A @use directive, used to import scoped extensions dynamically. // - // @plugin "lib"; + // @use "lib"; // // Depending on our environment, importing is done differently: // In the browser, it's an XHR request, in Node, it would be a // file-system operation. The function used for importing is // stored in `import`, which we pass to the Import constructor. // - plugin: function () { + extension: function () { var path, index = parserInput.i, - dir = parserInput.$re(/^@plugin?\s+/); + dir = parserInput.$re(/^@use?|@plugin?\s+/); + if (dir && dir.indexOf("@p") > -1) { + parserInput.i -= dir.length; + return error('@plugin is deprecated. Use @use'); + } if (dir) { - var options = { plugin : true }; + var options = { isExtension : true }; if ((path = this.entities.quoted() || this.entities.url())) { if (!parserInput.$char(';')) { parserInput.i = index; - error("missing semi-colon on plugin"); + error("missing semi-colon on @use"); } return new(tree.Import)(path, null, options, index, fileInfo); } else { parserInput.i = index; - error("malformed plugin statement"); + error("malformed @use statement"); } } }, @@ -1428,7 +1432,7 @@ var Parser = function Parser(context, imports, fileInfo) { if (parserInput.currentChar() !== '@') { return; } - value = this['import']() || this.plugin() || this.media(); + value = this['import']() || this.extension() || this.media(); if (value) { return value; } diff --git a/lib/less/tree/import.js b/lib/less/tree/import.js index 3787b052..4b53e61c 100644 --- a/lib/less/tree/import.js +++ b/lib/less/tree/import.js @@ -52,7 +52,7 @@ Import.prototype.accept = function (visitor) { this.features = visitor.visit(this.features); } this.path = visitor.visit(this.path); - if (!this.options.plugin && !this.options.inline && this.root) { + if (!this.options.isExtension && !this.options.inline && this.root) { this.root = visitor.visit(this.root); } }; @@ -126,7 +126,7 @@ Import.prototype.doEval = function (context) { var ruleset, registry, features = this.features && this.features.eval(context); - if (this.options.plugin) { + if (this.options.isExtension) { registry = context.frames[0] && context.frames[0].functionRegistry; if ( registry && this.root && this.root.functions ) { registry.addMultiple( this.root.functions ); diff --git a/lib/less/visitors/import-visitor.js b/lib/less/visitors/import-visitor.js index 8af0b892..99464522 100644 --- a/lib/less/visitors/import-visitor.js +++ b/lib/less/visitors/import-visitor.js @@ -103,7 +103,7 @@ ImportVisitor.prototype = { var importVisitor = this, inlineCSS = importNode.options.inline, - isPlugin = importNode.options.plugin, + isExtension = importNode.options.isExtension, isOptional = importNode.options.optional, duplicateImport = importedAtRoot || fullPath in importVisitor.recursionDetector; @@ -129,7 +129,7 @@ ImportVisitor.prototype = { importNode.root = root; importNode.importedFilename = fullPath; - if (!inlineCSS && !isPlugin && (context.importMultiple || !duplicateImport)) { + if (!inlineCSS && !isExtension && (context.importMultiple || !duplicateImport)) { importVisitor.recursionDetector[fullPath] = true; var oldContext = this.context; diff --git a/package.json b/package.json index 871a4474..b44a9993 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "less", - "version": "2.7.1", + "version": "2.8.0", "description": "Leaner CSS", "homepage": "http://lesscss.org", "author": { diff --git a/test/less/errors/functions-1.less b/test/less/errors/functions-1.less index f502aa27..942be1d0 100644 --- a/test/less/errors/functions-1.less +++ b/test/less/errors/functions-1.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-undefined(); \ No newline at end of file diff --git a/test/less/errors/functions-1.txt b/test/less/errors/functions-1.txt index abeb4bda..61227a2b 100644 --- a/test/less/errors/functions-1.txt +++ b/test/less/errors/functions-1.txt @@ -1,3 +1,3 @@ SyntaxError: Function 'test-undefined' is undefined in {path}functions-1.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-undefined(); diff --git a/test/less/errors/functions-10-keyword.less b/test/less/errors/functions-10-keyword.less index 16d0b985..e85a35e1 100644 --- a/test/less/errors/functions-10-keyword.less +++ b/test/less/errors/functions-10-keyword.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-keyword(); \ No newline at end of file diff --git a/test/less/errors/functions-10-keyword.txt b/test/less/errors/functions-10-keyword.txt index dabe839d..efadbeb0 100644 --- a/test/less/errors/functions-10-keyword.txt +++ b/test/less/errors/functions-10-keyword.txt @@ -1,3 +1,3 @@ SyntaxError: Keyword node returned by a function is not valid here in {path}functions-10-keyword.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-keyword(); diff --git a/test/less/errors/functions-11-operation.less b/test/less/errors/functions-11-operation.less index 5695bdb9..e370c54a 100644 --- a/test/less/errors/functions-11-operation.less +++ b/test/less/errors/functions-11-operation.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-operation(); \ No newline at end of file diff --git a/test/less/errors/functions-11-operation.txt b/test/less/errors/functions-11-operation.txt index 27287179..c8cba0cb 100644 --- a/test/less/errors/functions-11-operation.txt +++ b/test/less/errors/functions-11-operation.txt @@ -1,3 +1,3 @@ SyntaxError: Operation node returned by a function is not valid here in {path}functions-11-operation.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-operation(); diff --git a/test/less/errors/functions-12-quoted.less b/test/less/errors/functions-12-quoted.less index d35be871..8ea74bb3 100644 --- a/test/less/errors/functions-12-quoted.less +++ b/test/less/errors/functions-12-quoted.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-quoted(); \ No newline at end of file diff --git a/test/less/errors/functions-12-quoted.txt b/test/less/errors/functions-12-quoted.txt index 45c62ea6..6be7951a 100644 --- a/test/less/errors/functions-12-quoted.txt +++ b/test/less/errors/functions-12-quoted.txt @@ -1,3 +1,3 @@ SyntaxError: Quoted node returned by a function is not valid here in {path}functions-12-quoted.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-quoted(); diff --git a/test/less/errors/functions-13-selector.less b/test/less/errors/functions-13-selector.less index 2fd879c6..b830054b 100644 --- a/test/less/errors/functions-13-selector.less +++ b/test/less/errors/functions-13-selector.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-selector(); \ No newline at end of file diff --git a/test/less/errors/functions-13-selector.txt b/test/less/errors/functions-13-selector.txt index 2f4b097f..987868b6 100644 --- a/test/less/errors/functions-13-selector.txt +++ b/test/less/errors/functions-13-selector.txt @@ -1,3 +1,3 @@ SyntaxError: Selector node returned by a function is not valid here in {path}functions-13-selector.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-selector(); diff --git a/test/less/errors/functions-14-url.less b/test/less/errors/functions-14-url.less index bed6dabf..b40af7dd 100644 --- a/test/less/errors/functions-14-url.less +++ b/test/less/errors/functions-14-url.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-url(); \ No newline at end of file diff --git a/test/less/errors/functions-14-url.txt b/test/less/errors/functions-14-url.txt index aeb275ca..11283de0 100644 --- a/test/less/errors/functions-14-url.txt +++ b/test/less/errors/functions-14-url.txt @@ -1,3 +1,3 @@ SyntaxError: Url node returned by a function is not valid here in {path}functions-14-url.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-url(); diff --git a/test/less/errors/functions-15-value.less b/test/less/errors/functions-15-value.less index 189ce196..6ec4a1ec 100644 --- a/test/less/errors/functions-15-value.less +++ b/test/less/errors/functions-15-value.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-value(); \ No newline at end of file diff --git a/test/less/errors/functions-15-value.txt b/test/less/errors/functions-15-value.txt index 41f6e6a1..8dee3692 100644 --- a/test/less/errors/functions-15-value.txt +++ b/test/less/errors/functions-15-value.txt @@ -1,3 +1,3 @@ SyntaxError: Value node returned by a function is not valid here in {path}functions-15-value.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-value(); diff --git a/test/less/errors/functions-16-old-syntax.less b/test/less/errors/functions-16-old-syntax.less new file mode 100644 index 00000000..2d05b37e --- /dev/null +++ b/test/less/errors/functions-16-old-syntax.less @@ -0,0 +1 @@ +@plugin "../extension/extension-tree-nodes"; \ No newline at end of file diff --git a/test/less/errors/functions-16-old-syntax.txt b/test/less/errors/functions-16-old-syntax.txt new file mode 100644 index 00000000..d548c82b --- /dev/null +++ b/test/less/errors/functions-16-old-syntax.txt @@ -0,0 +1,2 @@ +SyntaxError: @plugin is deprecated. Use @use in {path}functions-16-old-syntax.less on line 1, column 1: +1 @plugin "../extension/extension-tree-nodes"; diff --git a/test/less/errors/functions-2-alpha.less b/test/less/errors/functions-2-alpha.less index f00da078..5f4271da 100644 --- a/test/less/errors/functions-2-alpha.less +++ b/test/less/errors/functions-2-alpha.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-alpha(); \ No newline at end of file diff --git a/test/less/errors/functions-2-alpha.txt b/test/less/errors/functions-2-alpha.txt index 38a17273..3e093511 100644 --- a/test/less/errors/functions-2-alpha.txt +++ b/test/less/errors/functions-2-alpha.txt @@ -1,3 +1,3 @@ SyntaxError: Alpha node returned by a function is not valid here in {path}functions-2-alpha.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-alpha(); diff --git a/test/less/errors/functions-3-assignment.less b/test/less/errors/functions-3-assignment.less index fe7f5ade..b65dfc48 100644 --- a/test/less/errors/functions-3-assignment.less +++ b/test/less/errors/functions-3-assignment.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-assignment(); \ No newline at end of file diff --git a/test/less/errors/functions-3-assignment.txt b/test/less/errors/functions-3-assignment.txt index 35c19926..eb1c6591 100644 --- a/test/less/errors/functions-3-assignment.txt +++ b/test/less/errors/functions-3-assignment.txt @@ -1,3 +1,3 @@ SyntaxError: Assignment node returned by a function is not valid here in {path}functions-3-assignment.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-assignment(); diff --git a/test/less/errors/functions-4-call.less b/test/less/errors/functions-4-call.less index 6b55c88a..071b8e6e 100644 --- a/test/less/errors/functions-4-call.less +++ b/test/less/errors/functions-4-call.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-call(); \ No newline at end of file diff --git a/test/less/errors/functions-4-call.txt b/test/less/errors/functions-4-call.txt index 338582d7..56157ba9 100644 --- a/test/less/errors/functions-4-call.txt +++ b/test/less/errors/functions-4-call.txt @@ -1,3 +1,3 @@ SyntaxError: Function 'foo' is undefined in {path}functions-4-call.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-call(); diff --git a/test/less/errors/functions-5-color.less b/test/less/errors/functions-5-color.less index 700ec5b9..16789a42 100644 --- a/test/less/errors/functions-5-color.less +++ b/test/less/errors/functions-5-color.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-color(); \ No newline at end of file diff --git a/test/less/errors/functions-5-color.txt b/test/less/errors/functions-5-color.txt index fdcd1a08..74beb776 100644 --- a/test/less/errors/functions-5-color.txt +++ b/test/less/errors/functions-5-color.txt @@ -1,3 +1,3 @@ SyntaxError: Color node returned by a function is not valid here in {path}functions-5-color.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-color(); diff --git a/test/less/errors/functions-6-condition.less b/test/less/errors/functions-6-condition.less index db1000b8..660eba1c 100644 --- a/test/less/errors/functions-6-condition.less +++ b/test/less/errors/functions-6-condition.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-condition(); \ No newline at end of file diff --git a/test/less/errors/functions-6-condition.txt b/test/less/errors/functions-6-condition.txt index 421bba5f..b169714a 100644 --- a/test/less/errors/functions-6-condition.txt +++ b/test/less/errors/functions-6-condition.txt @@ -1,3 +1,3 @@ SyntaxError: Condition node returned by a function is not valid here in {path}functions-6-condition.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-condition(); diff --git a/test/less/errors/functions-7-dimension.less b/test/less/errors/functions-7-dimension.less index c399d33e..f788151d 100644 --- a/test/less/errors/functions-7-dimension.less +++ b/test/less/errors/functions-7-dimension.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-dimension(); \ No newline at end of file diff --git a/test/less/errors/functions-7-dimension.txt b/test/less/errors/functions-7-dimension.txt index 3b1b7026..6e7c584f 100644 --- a/test/less/errors/functions-7-dimension.txt +++ b/test/less/errors/functions-7-dimension.txt @@ -1,3 +1,3 @@ SyntaxError: Dimension node returned by a function is not valid here in {path}functions-7-dimension.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-dimension(); diff --git a/test/less/errors/functions-8-element.less b/test/less/errors/functions-8-element.less index c762aad8..16c9d393 100644 --- a/test/less/errors/functions-8-element.less +++ b/test/less/errors/functions-8-element.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-element(); \ No newline at end of file diff --git a/test/less/errors/functions-8-element.txt b/test/less/errors/functions-8-element.txt index b505d954..c38a2bf8 100644 --- a/test/less/errors/functions-8-element.txt +++ b/test/less/errors/functions-8-element.txt @@ -1,3 +1,3 @@ SyntaxError: Element node returned by a function is not valid here in {path}functions-8-element.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-element(); diff --git a/test/less/errors/functions-9-expression.less b/test/less/errors/functions-9-expression.less index 5f0bf46c..da66c89e 100644 --- a/test/less/errors/functions-9-expression.less +++ b/test/less/errors/functions-9-expression.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes"; +@use "../extension/extension-tree-nodes"; test-expression(); \ No newline at end of file diff --git a/test/less/errors/functions-9-expression.txt b/test/less/errors/functions-9-expression.txt index 224db785..d7d7d2c4 100644 --- a/test/less/errors/functions-9-expression.txt +++ b/test/less/errors/functions-9-expression.txt @@ -1,3 +1,3 @@ SyntaxError: Expression node returned by a function is not valid here in {path}functions-9-expression.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes"; +1 @use "../extension/extension-tree-nodes"; 2 test-expression(); diff --git a/test/less/errors/root-func-undefined-2.less b/test/less/errors/root-func-undefined-2.less index ee34616e..eb934f7c 100644 --- a/test/less/errors/root-func-undefined-2.less +++ b/test/less/errors/root-func-undefined-2.less @@ -1,2 +1,2 @@ -@plugin "../plugin/plugin-tree-nodes.js"; +@use "../extension/extension-tree-nodes.js"; test-undefined(); \ No newline at end of file diff --git a/test/less/errors/root-func-undefined-2.txt b/test/less/errors/root-func-undefined-2.txt index 031385d0..fb7a39f6 100644 --- a/test/less/errors/root-func-undefined-2.txt +++ b/test/less/errors/root-func-undefined-2.txt @@ -1,3 +1,3 @@ SyntaxError: Function 'test-undefined' is undefined in {path}root-func-undefined-2.less on line 2, column 1: -1 @plugin "../plugin/plugin-tree-nodes.js"; +1 @use "../extension/extension-tree-nodes.js"; 2 test-undefined(); diff --git a/test/less/plugin/plugin-global.js b/test/less/extension/extension-global.js similarity index 100% rename from test/less/plugin/plugin-global.js rename to test/less/extension/extension-global.js diff --git a/test/less/plugin/plugin-local.js b/test/less/extension/extension-local.js similarity index 100% rename from test/less/plugin/plugin-local.js rename to test/less/extension/extension-local.js diff --git a/test/less/plugin/plugin-transitive.js b/test/less/extension/extension-transitive.js similarity index 100% rename from test/less/plugin/plugin-transitive.js rename to test/less/extension/extension-transitive.js diff --git a/test/less/plugin/plugin-transitive.less b/test/less/extension/extension-transitive.less similarity index 57% rename from test/less/plugin/plugin-transitive.less rename to test/less/extension/extension-transitive.less index 8e4ca00b..e3268f82 100644 --- a/test/less/plugin/plugin-transitive.less +++ b/test/less/extension/extension-transitive.less @@ -1,4 +1,4 @@ -@plugin "plugin-transitive"; +@use "extension-transitive"; .other { trans : test-transitive(); diff --git a/test/less/plugin/plugin-tree-nodes.js b/test/less/extension/extension-tree-nodes.js similarity index 100% rename from test/less/plugin/plugin-tree-nodes.js rename to test/less/extension/extension-tree-nodes.js diff --git a/test/less/plugin.less b/test/less/plugin.less index 66775ea9..b7caa99e 100644 --- a/test/less/plugin.less +++ b/test/less/plugin.less @@ -1,8 +1,8 @@ // importing plugin globally -@plugin "./plugin/plugin-global"; +@use "./extension/extension-global"; // transitively include plugins from importing another sheet -@import "./plugin/plugin-transitive"; +@import "./extension/extension-transitive"; // `test-global` function should be reachable @@ -18,7 +18,7 @@ // `test-local` function should be reachable // `test-shadow` function should return local version, shadowing global version .local { - @plugin "./plugin/plugin-local"; + @use "./extension/extension-local"; global : test-global(); local : test-local(); shadow : test-shadow(); @@ -28,19 +28,19 @@ // calling a mixin or detached ruleset should not bubble local plugins // imported inside either into the parent scope. .mixin() { - @plugin "./plugin/plugin-local"; + @use "./extension/extension-local"; mixin-local : test-local(); mixin-global : test-global(); mixin-shadow : test-shadow(); } @ruleset : { - @plugin "./plugin/plugin-local"; + @use "./extension/extension-local"; ruleset-local : test-local(); ruleset-global : test-global(); ruleset-shadow : test-shadow(); }; #ns { - @plugin "./plugin/plugin-local"; + @use "./extension/extension-local"; .mixin() { ns-mixin-global : test-global(); ns-mixin-local : test-local(); @@ -76,12 +76,12 @@ .test { @media screen { - @plugin "./plugin/plugin-local"; + @use "./extension/extension-local"; result : test-local(); } } -@plugin "./plugin/plugin-tree-nodes"; +@use "./extension/extension-tree-nodes"; @ruleset2: test-detached-ruleset(); .root { @ruleset2();