Commit Graph

156 Commits

Author SHA1 Message Date
Natalie Weizenbaum
b47067ea4e Add if(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
af4234aedd Add call(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
754b1895ac Add selector-unify(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
10d7da9d73 isBracketed -> hasBrackets
This is consistent with SassString.hasQuotes.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
dd8a0efd66 Add an ArgumentList class. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8bbaf46fe6 Use the tuple package. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
c9af638f54 Support for units 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
bacc1c4529 Unify strings and identifiers.
The separation makes sense conceptually, but it would make string
functions a lot harder to write.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
9ac48fbc05 Add support for binary operations. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
bcaaa1103f UnaryOperatorExpression -> UnaryOperationExpression 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
3329ba80b8 Re-add CssValue.toString(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ee7c3e5c3c Support expression &. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
db0cea9870 Fix some bugs with combinators. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5e23c99b22 Get rid of more redundant toString() definitions. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
efd336dd20 Support null. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
1832879845 Support @each 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
e873242ac4 Support @while 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
80f0afb484 Support @for. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
202fcad40f Name all at-rules *Rule. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f85b21a3c3 Support @error 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
69aabed63d Support @warn 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
7a5029b5ae Support @debug. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
60b8aae55f No more throwing strings. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
987eee5c0a Support @extend !optional. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
507ae1790a ExtendRule -> Extend 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
92f657db46 Don't emit placeholders. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
673db13d51 Move emptiness-checking to the serializer.
We can't actually know if a rule will be empty until we've evaluated the
entire stylesheet, since it might contain a placeholder that may or may
not be extended.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
cc56ea0f13 Implement CssNode.toString() using toCss(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
e607e7914f Support @at-root. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
0fe62a04a6 @supports support. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
cdc3065dfb Make visitor interfaces wholly abstract. 2016-08-30 15:51:23 -07:00
Natalie Weizenbaum
ffb85921cb Buggy implementation of CSS @import. 2016-08-30 15:51:23 -07:00
Natalie Weizenbaum
47929dfde3 Support @import.
CSS @import is still unsupported.
2016-08-30 15:51:23 -07:00
Natalie Weizenbaum
f1ce6ea599 Format all code. 2016-08-30 15:51:23 -07:00
Natalie Weizenbaum
faa86b697c Make (most) spans mandatory.
Arguments are still optional since they may be constructed for
user-defined arguments.
2016-08-30 15:51:23 -07:00
Natalie Weizenbaum
82aca21682 Add @if. 2016-08-30 15:51:23 -07:00
Natalie Weizenbaum
c4cda30bc0 Validate dynamic children. 2016-08-30 15:51:23 -07:00
Natalie Weizenbaum
0573fa7709 @content support. 2016-08-30 15:51:23 -07:00
Natalie Weizenbaum
fcaa696f02 Re-organize AST files. 2016-08-30 15:51:22 -07:00
Natalie Weizenbaum
6951774d70 Add a CallableInvocation interface. 2016-08-30 15:51:22 -07:00
Natalie Weizenbaum
32db51f005 Add built-in functions. 2016-08-30 15:51:22 -07:00
Natalie Weizenbaum
4e0a511570 Add mixins. 2016-08-30 15:51:22 -07:00
Natalie Weizenbaum
64c2453a35 Fix printing of childless at-rules. 2016-08-30 15:51:22 -07:00
Natalie Weizenbaum
0498e8a95c InterpolationExpression -> Interpolation 2016-08-30 15:51:22 -07:00
Natalie Weizenbaum
50912350af Add support for functions.
Argument list objects are still not implemented.
2016-08-30 15:51:22 -07:00
Natalie Weizenbaum
cbe3709914 Default values for boolean parameters. 2016-08-30 15:51:22 -07:00
Natalie Weizenbaum
977bb9c3d2 Use unvendor() in Pseudo.
Also, fix unvendor().
2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
55e81951b2 Stringify the parent selector normally. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
0a0f7837b0 Parent selector support. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
cf086471c6 Nested properties. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
dbf2c18ae6 Move selector serialization to the visitor. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
6c0a2547b0 Re-organize visitors. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
a206fdcddb Fix analysis. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
0b7ea7d8c9 Add nested list parenthsization. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
9f2f32c7e4 Fix comment formatting. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
6c6bd715ee Add maps. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
4f4188fd12 Add StringExpression.asInterpolation. 2016-08-30 15:51:21 -07:00
Natalie Weizenbaum
98682b67a8 Add support for custom properties. 2016-08-30 15:51:20 -07:00
Natalie Weizenbaum
a2d645ee73 Add bracketed lists. 2016-08-30 15:51:20 -07:00
Natalie Weizenbaum
2fb2e4a9a6 Fix Pseudo.*Specificity. 2016-08-30 15:51:20 -07:00
Natalie Weizenbaum
e0333b303c Get simple extension working. 2016-08-30 15:51:20 -07:00
Natalie Weizenbaum
51c8213a6d Add _selectorPseudoIsSuperselector. 2016-08-30 15:51:20 -07:00
Natalie Weizenbaum
b5b4cd5a8b Add PseudoSelector.normalizedName. 2016-08-30 15:51:20 -07:00
Natalie Weizenbaum
2b120f005d Fix some hints. 2016-08-30 15:51:20 -07:00
Natalie Weizenbaum
1ea3619d93 some analysis fixes 2016-08-30 15:51:20 -07:00
Natalie Weizenbaum
d5b029de9b Some extend infra juggling. 2016-08-30 15:51:20 -07:00
Natalie Weizenbaum
16ace03246 Add Extender.addExtension 2016-08-30 15:51:19 -07:00
Natalie Weizenbaum
a88670da4e Add selector specificity. 2016-08-30 15:51:19 -07:00
Natalie Weizenbaum
ec5eb46747 Compound/Simple unification. 2016-08-30 15:51:19 -07:00
Natalie Weizenbaum
946c6c814c More extend stuff 2016-08-30 15:51:19 -07:00
Natalie Weizenbaum
5e93ee8667 Extend WIP 2016-08-30 15:51:19 -07:00
Natalie Weizenbaum
4b2cba2775 Structural equality for selectors. 2016-08-30 15:51:19 -07:00
Natalie Weizenbaum
e8756eb02d Make CssNodes directly mutable.
This shaves off a significant amount of time, since now we don't have to
do what is essentially a full copy of the CSS tree. We may want to use
interfaces to provide an immutable view of the CSS tree for use outside
of the perform visitor.
2016-08-30 15:51:19 -07:00
Natalie Weizenbaum
9575005571 Fix analysis issues. 2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
42ead803e9 Partial implementation of media rule merging.
The outer query is still hanging around.
2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
ed9f54b076 Add a Parent interface. 2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
2ece8c19c9 Complete the loop on media queries.
Still need bubbling support.
2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
d063b41e64 Add Sass media query classes. 2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
8d46af6b56 Add support for unrecognized at-rules. 2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
951ab45274 Parse selectors for rule nodes. 2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
04ba7cf782 Get rid of spans on selectors.
Selectors aren't parsed from source files, so it doesn't makes sense to
track these.
2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
e413dfb427 SourceSpan -> FileSpan 2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
849ee6022b Add selector parsing.
Not yet hooked up to perform.
2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
a23aa018b0 Support hex colors. 2016-08-30 15:51:18 -07:00
Natalie Weizenbaum
a2d3008f9b Move sass visitors under a sass dir. 2016-08-30 15:51:17 -07:00
Natalie Weizenbaum
01e31fe4ad Add CSS and Value visitors. 2016-08-30 15:51:17 -07:00
Natalie Weizenbaum
d2a42d61ef visit -> accept 2016-08-30 15:51:17 -07:00
Natalie Weizenbaum
e5cf8d5738 Numbers. 2016-08-30 15:51:17 -07:00
Natalie Weizenbaum
97e53ce1ff Boolean literals. 2016-08-30 15:51:17 -07:00
Natalie Weizenbaum
8f44bd8daa Booleans and unary not. 2016-08-30 15:51:17 -07:00
Natalie Weizenbaum
110bdf9efc Single-char unary operators. 2016-08-30 15:51:17 -07:00
Natalie Weizenbaum
8a395d7f7b Hooray for exports! 2016-08-30 15:51:17 -07:00
Natalie Weizenbaum
86fa4cf068 Add variable support. 2016-08-30 15:51:16 -07:00
Natalie Weizenbaum
34b365c8c6 Simple perform. 2016-08-30 15:51:16 -07:00
Natalie Weizenbaum
5543201398 Change CssValue. 2016-08-30 15:51:16 -07:00
Natalie Weizenbaum
4023f33d4c Make the CSS AST a sibling of the Sass AST. 2016-08-30 15:51:16 -07:00
Natalie Weizenbaum
fbae2fe016 Re-organize the Sass AST. 2016-08-30 15:51:16 -07:00
Natalie Weizenbaum
22b87bed6e Add a value type. 2016-08-30 15:51:16 -07:00
Natalie Weizenbaum
e205a64eda Small fixes 2016-08-30 15:51:16 -07:00
Natalie Weizenbaum
f8cfb305a9 Add an explicit distinction between statements and expressions. 2016-08-30 15:51:16 -07:00