762 Commits

Author SHA1 Message Date
Connor Skees
ffaee04613
rewrite parsing, evaluation, and serialization (#67)
Adds support for the indented syntax, plain CSS imports, `@forward`, and many other previously missing features.
2022-12-26 15:33:04 -05:00
Connor Skees
e2c32a66de load paths are local to executable, not SCSS file 2022-05-31 09:43:45 -04:00
Chris Morgan
3c5463ac4c
File system interception, and various other matters (#55) 2022-02-03 17:41:10 -05:00
Connor Skees
a6eb1fb88a properly emit 0 in compressed mode 2021-09-19 16:33:12 -04:00
Connor Skees
1517acb188 move hsla tests to separate file 2021-08-15 23:26:27 -04:00
Connor Skees
ced5483f38 add hsl tests for different unit types 2021-07-31 17:55:17 -04:00
Connor Skees
34fed92bdf add attribute selector test from sass issue tracker 2021-07-31 11:47:48 -04:00
Connor Skees
1f672c4c49 mixins and functions can use their module's scope 2021-07-31 11:42:20 -04:00
Connor Skees
a7999d2e5b modules contain their own module scope 2021-07-31 10:53:25 -04:00
Connor Skees
d101a36f0c modules use their own scope for module imports
this is a potentially breaking bugfix
2021-07-30 22:49:58 -04:00
Connor Skees
5dd425a878 update error message for invalid escape sequences 2021-07-30 06:49:15 -04:00
Connor Skees
ebccebfed1 support 2 arg special rgb/rgba 2021-07-30 06:44:29 -04:00
Connor Skees
2a7f0b6dbc support single arg special color fns 2021-07-30 06:25:12 -04:00
Connor Skees
1e2e32140b refactor parsing of special hsl/rgb fns 2021-07-30 06:15:22 -04:00
Connor Skees
c6cb7c1d68 support special fn clamp 2021-07-30 05:57:13 -04:00
Connor Skees
eadd7c5041 support special fns to single channel rgb/rgba/hsl/hsla 2021-07-28 03:13:00 -04:00
Connor Skees
4b94c8a948 add test for @import inside @media 2021-07-28 02:18:40 -04:00
Connor Skees
d07c1d3a06 support @at-root inside media query inside style rule 2021-07-28 02:08:20 -04:00
Connor Skees
63567da749 more robustly parse commas in call args 2021-07-28 00:35:49 -04:00
Connor Skees
f67b1c62e7 add large integration tests 2021-07-27 20:29:56 -04:00
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