742 Commits

Author SHA1 Message Date
Connor Skees
140890c279 refactor evaluation of order of operations 2021-07-25 22:51:33 -04:00
Connor Skees
2e1fa7ca2c improve handling of $base to math.log 2021-07-25 22:50:56 -04:00
Connor Skees
1c553fd8dc manually impl eq for Number, rather than derive 2021-07-25 16:12:47 -04:00
Connor Skees
94fe52a81d support compressed lists and number values 2021-07-25 09:57:55 -04:00
Connor Skees
86a1ffec42 refactor parsing of unknown at rules 2021-07-24 22:42:36 -04:00
Connor Skees
5acbc71071 improve handling of newlines for @at-root 2021-07-24 17:42:40 -04:00
Connor Skees
3ea5dd48b3 newline after @supports when nested inside style rule 2021-07-24 15:04:40 -04:00
Connor Skees
fccf93cd96 originals uses pointer equality check, rather than true equality 2021-07-24 14:42:21 -04:00
Connor Skees
b44f81bd60 newlines inside @supports are the same as outside 2021-07-24 01:18:36 -04:00
Connor Skees
36411e36d3 space between styles inside @supports 2021-07-24 00:58:12 -04:00
Connor Skees
6febd161af refactor how newlines are emitted between unrelated style rules
this makes our output of bootstrap correct, byte-for-byte
2021-07-23 22:35:08 -04:00
Connor Skees
548a5921e6 encountering placeholder selector resets has_written 2021-07-23 03:28:41 -04:00
Connor Skees
ec4fe9164d do not emit newline between media query and ruleset 2021-07-23 03:08:23 -04:00
Connor Skees
5c4f11e63d do not emit newline between media queries when they follow ruleset 2021-07-23 02:22:47 -04:00
Connor Skees
6b109a5c3d improve handling of newlines around comments 2021-07-23 01:50:26 -04:00
Connor Skees
0edb60e2b3 support three level extend loop
the last feature stopping us from semantic parity with `dart-sass` when
compiling bootstrap.

this was a difficult bug -- it essentially boiled down to the fact that
we weren't applying extensions to _super_ selectors.

i suspect that this has somehow broken another feature of `@extend`, but
all of our unit tests, the sass spec, and bootstrap seem to be correct,
so i am considering this implemented.
2021-07-22 21:23:09 -04:00
Connor Skees
fba42df43b test for hue when largest channel is blue 2021-07-21 22:07:03 -04:00
Connor Skees
d360af2cd6 improve code coverage 2021-07-21 09:17:37 -04:00
Connor Skees
26ec16a802 more robustly parse @else if 2021-07-20 23:55:18 -04:00
Connor Skees
7979158465 simplify parsing of @function and throw error on invalid @charset 2021-07-20 20:41:21 -04:00
Connor Skees
2ec365ddfc simplify lookahead in variable flag parsing 2021-07-20 11:15:19 -04:00
Connor Skees
2969f08e43 simplify lookahead for @for 2021-07-20 11:04:14 -04:00
Connor Skees
a34aa32128 simplify lookahead for @use and @media 2021-07-19 20:50:12 -04:00
Connor Skees
c2e84e3854 update changelog 2021-07-19 19:52:09 -04:00
Connor Skees
839f101829 emit comments inside @if rule 2021-07-14 21:19:38 -04:00
Connor Skees
1a660c7aa8 more correctly emit newlines around 2021-07-14 21:09:30 -04:00
Connor Skees
be9eb8e0b0 improve code coverage
also identified dead code and a bug in saturation and hue fns
2021-07-14 01:40:11 -04:00
Connor Skees
03f48cfd22 more robustly parse comments inside min and max 2021-07-12 02:22:13 -04:00
Connor Skees
8e08a5de4f support special fns inside min and max 2021-07-12 01:59:30 -04:00
Connor Skees
7ad2da040f support min and max as arguments to min and max 2021-07-11 02:13:05 -04:00
Connor Skees
bc49c2b8ee add tests for compressed output 2021-07-10 12:52:41 -04:00
Connor Skees
142bc9da10 support builtin map.set 2021-07-04 18:59:35 -04:00
Connor Skees
81d5dbbb7e implement math.div 2021-07-04 16:19:38 -04:00
Connor Skees
5d268be2ed support hwb color space 2021-07-04 15:53:27 -04:00
Connor Skees
5c61f8ccaa :is is alias for :matches 2021-07-04 11:48:13 -04:00
Connor Skees
2b72a1fc0d avoid deep recursion in extend 2021-07-04 11:32:19 -04:00
Connor Skees
a555352713 better support negative modulo 2021-07-04 00:37:04 -04:00
Connor Skees
2ff3524ac2 support arg to map-merge 2021-07-03 23:17:31 -04:00
Connor Skees
e5d73ac265 don't read multiple stars in comment eagerly 2021-07-03 18:42:39 -04:00
Connor Skees
884b92f476 remove test macro shorthand for unchanged output 2020-11-20 04:34:36 -05:00
Connor Skees
27eeaeef08 plain-css invert accepts numbers of any unit 2020-11-16 03:09:40 -05:00
Connor Skees
f92a071434 move plain css imports to the top of the file
this is a bit of a hack as it does not currently account for multiline
comments (/**/) that precede these imports, but this should largely be a
cosmetic bug as opposed to one that can break programs.
2020-11-16 02:35:52 -05:00
Midas Lambrichts
7539762a0c
Resolve NaN todo!()s for addition and subtraction with other numbers (#40)
* Replace todo's for propagating NaN

* Propagate NaN for remainder as well
2020-09-13 18:08:41 -04:00
Midas Lambrichts
8e060950d5
Fix panic when progid is the last token by removing unwrap (#39)
* Fix panic when progid by removing unwrap

* Incorporate PR feedback
2020-08-24 19:35:55 -04:00
Connor Skees
605f4f3d6b allow = and == in media queries 2020-08-22 19:18:28 -04:00
Connor Skees
b03561bc37 add test for multiline comments between function name and args 2020-08-21 19:38:43 -04:00
Connor Skees
c44f20d377 allow whitespace between mixin name and args 2020-08-21 19:36:11 -04:00
Connor Skees
feb75800c8 allow whitespace between @content and its args 2020-08-21 19:27:44 -04:00
Connor Skees
4635f76fa5 add test for integer overflow in division 2020-08-21 07:00:42 -04:00
Connor Skees
5bf03c15d6 consume utf8 bom in parser, not lexer 2020-08-21 06:54:03 -04:00