-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2522 from rjgotten/fix-plugin-scoping
Fix `@plugin` scoping rules
- Loading branch information
Showing
18 changed files
with
193 additions
and
49 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
.other { | ||
trans: transitive; | ||
} | ||
.class { | ||
trans: transitive; | ||
global: global; | ||
local: test-local(); | ||
shadow: global; | ||
} | ||
.class .local { | ||
global: global; | ||
local: local; | ||
shadow: local; | ||
} | ||
.class { | ||
ns-mixin-global: global; | ||
ns-mixin-local: local; | ||
ns-mixin-shadow: local; | ||
mixin-local: local; | ||
mixin-global: global; | ||
mixin-shadow: local; | ||
ruleset-local: local; | ||
ruleset-global: global; | ||
ruleset-shadow: local; | ||
class-local: test-local(); | ||
} | ||
@media screen { | ||
.test { | ||
result: global; | ||
} | ||
} | ||
@font-face { | ||
result: global; | ||
} | ||
@media screen and (min-width: 100px) and (max-width: 400px) { | ||
.test { | ||
result: global; | ||
} | ||
} | ||
@media screen { | ||
.test { | ||
result: local; | ||
} | ||
} |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
// 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(); | ||
} | ||
} | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
|
||
functions.addMultiple({ | ||
"test-shadow" : function() { | ||
return new tree.Anonymous( "global" ); | ||
}, | ||
"test-global" : function() { | ||
return new tree.Anonymous( "global" ); | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
functions.addMultiple({ | ||
"test-shadow" : function() { | ||
return new tree.Anonymous( "local" ); | ||
}, | ||
"test-local" : function() { | ||
return new tree.Anonymous( "local" ); | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
functions.addMultiple({ | ||
"test-transitive" : function() { | ||
return new tree.Anonymous( "transitive" ); | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
@plugin "plugin-transitive"; | ||
|
||
.other { | ||
trans : test-transitive(); | ||
} |
This file was deleted.
Oops, something went wrong.