mirror of
https://github.com/less/less.js.git
synced 2026-01-22 21:58:14 -05:00
Fixed scope for plugins to apply correctly for mixins, directives and detached rulesets. Updated plugin unit tests to be more comprehensive
86 lines
1.8 KiB
Plaintext
86 lines
1.8 KiB
Plaintext
// importing plugin globally
|
|
@plugin "./plugin/plugin-global";
|
|
|
|
// transitively include plugins from importing another sheet
|
|
@import "./plugin/plugin-transitive";
|
|
|
|
|
|
// `test-global` function should be reachable
|
|
// `test-local` function should not be reachable
|
|
// `test-shadow` function should return global version
|
|
.class {
|
|
trans : test-transitive();
|
|
global : test-global();
|
|
local : test-local();
|
|
shadow : test-shadow();
|
|
|
|
// `test-global` function should propagate and be reachable
|
|
// `test-local` function should be reachable
|
|
// `test-shadow` function should return local version, shadowing global version
|
|
.local {
|
|
@plugin "./plugin/plugin-local";
|
|
global : test-global();
|
|
local : test-local();
|
|
shadow : test-shadow();
|
|
}
|
|
}
|
|
|
|
// calling a mixin or detached ruleset should not bubble local plugins
|
|
// imported inside either into the parent scope.
|
|
.mixin() {
|
|
@plugin "./plugin/plugin-local";
|
|
mixin-local : test-local();
|
|
mixin-global : test-global();
|
|
mixin-shadow : test-shadow();
|
|
}
|
|
@ruleset : {
|
|
@plugin "./plugin/plugin-local";
|
|
ruleset-local : test-local();
|
|
ruleset-global : test-global();
|
|
ruleset-shadow : test-shadow();
|
|
};
|
|
#ns {
|
|
@plugin "./plugin/plugin-local";
|
|
.mixin() {
|
|
ns-mixin-global : test-global();
|
|
ns-mixin-local : test-local();
|
|
ns-mixin-shadow : test-shadow();
|
|
}
|
|
}
|
|
.class {
|
|
#ns > .mixin();
|
|
.mixin();
|
|
@ruleset();
|
|
class-local : test-local();
|
|
}
|
|
|
|
|
|
// `test-global` function should propagate into directive scope
|
|
@media screen {
|
|
.test {
|
|
result : test-global();
|
|
}
|
|
}
|
|
@font-face {
|
|
result : test-global();
|
|
}
|
|
|
|
// `test-global` function should propagate into nested directive scopes
|
|
@media screen and (min-width:100px) {
|
|
@media (max-width:400px) {
|
|
.test {
|
|
result : test-global();
|
|
}
|
|
}
|
|
}
|
|
|
|
.test {
|
|
@media screen {
|
|
@plugin "./plugin/plugin-local";
|
|
result : test-local();
|
|
}
|
|
}
|
|
|
|
|
|
|