82 Commits

Author SHA1 Message Date
ConnorSkees
b081fe780b handle escaped @ else
this commit makes the assumption that
https://github.com/sass/dart-sass/issues/1011 is unintended behavior
and may need to be reverted should dart-sass decide it is intended
2020-05-22 21:34:22 -04:00
ConnorSkees
2102781f62 create structure for identifiers
it looks like rustfmt also updated during this commit, so there are some
formatting changes
2020-05-22 18:21:18 -04:00
ConnorSkees
969726eb30 Revert string interning
There existed issues related to multithreaded tests that are difficult
to resolve. In the future interning may be reimplemented but in a more
limited capacity.

The motivation behind interning *values* was that it appeared checking
for named colors was responsible for much of the time lost when parsing
unquoted strings. If interning were to be reimplemented, it may make
sense to limit it solely to identifiers and style properties.
2020-05-22 14:20:31 -04:00
ConnorSkees
9a6c8ce019 add string interning
this seems to improve performance by ~20% as well as significantly
decrease memory usage
2020-05-21 22:46:40 -04:00
ConnorSkees
d39a45090a separate media and unknown at rules 2020-05-20 20:13:53 -04:00
ConnorSkees
eb7fe52074 minor cleanup 2020-05-19 18:28:18 -04:00
ConnorSkees
b58ed29fd0 add more span information
this resolves a lot of panics that occurred when there was no more input
2020-05-17 00:35:07 -04:00
ConnorSkees
d4f67b5ed9 clippy 2020-05-16 18:38:37 -04:00
ConnorSkees
dcdd2a1cb1 edge case in which @ include had no args AND no semicolon 2020-05-16 16:54:34 -04:00
ConnorSkees
4b15b27119 refactor mixin args 2020-05-13 23:56:47 -04:00
ConnorSkees
0cbdc67f06 improve scoping with regard to function variables existing 2020-05-13 01:32:29 -04:00
ConnorSkees
6729f24b17 Value::inspect returns cow 2020-05-06 11:50:35 -04:00
ConnorSkees
26df276266 Value::to_css_string returns a Cow<'static, str> 2020-05-05 11:08:34 -04:00
ConnorSkees
96e916e750 handle negative values in @for 2020-05-02 15:11:58 -04:00
ConnorSkees
269f37034a clippy 2020-04-28 08:27:35 -04:00
ConnorSkees
c7ed27bb45 remove superfluous impl Display 2020-04-26 22:51:09 -04:00
ConnorSkees
003bd87caf simplify parsing of @ for to/through 2020-04-26 22:35:06 -04:00
ConnorSkees
3615835e03 allow @content in more contexts 2020-04-26 21:29:09 -04:00
ConnorSkees
6f57797c29 error inspects message 2020-04-26 19:12:36 -04:00
ConnorSkees
cfa734e412 allow control flow inside @content 2020-04-26 18:40:05 -04:00
ConnorSkees
ce833b7c03 proper type for @each when single variable 2020-04-26 15:02:39 -04:00
ConnorSkees
f1b60019a1 handle self referential default args 2020-04-26 13:51:49 -04:00
ConnorSkees
d49eb7e18b explicitly enumerate missing at rule kinds 2020-04-26 01:37:51 -04:00
ConnorSkees
f60089f4f9 refactor parsing and eval of @ each 2020-04-24 22:58:28 -04:00
ConnorSkees
99ae3ae30a test for multiline comments in subtraction 2020-04-23 19:44:20 -04:00
ConnorSkees
409ac80921 handle multiline comments surrounding @ if condition 2020-04-23 19:32:32 -04:00
ConnorSkees
69764ceaa3 allow arbitrary control flow inside @ for 2020-04-23 18:53:19 -04:00
ConnorSkees
9bb7c05d19 improve handling of @ while scoping 2020-04-23 18:14:42 -04:00
ConnorSkees
ca318d47df properly handle @ while in functions 2020-04-23 15:23:53 -04:00
ConnorSkees
f9dfd05ea1 move check inside for loop 2020-04-23 15:16:27 -04:00
ConnorSkees
5b33b8fc74 refactor @ for to be used in @ function 2020-04-23 13:57:10 -04:00
ConnorSkees
3805eaab2b clippy 2020-04-21 18:22:26 -04:00
ConnorSkees
38c45129d9 refactor function eval 2020-04-21 11:32:27 -04:00
ConnorSkees
b2e3322f9a eval @each list 2020-04-21 03:19:04 -04:00
ConnorSkees
4ca6e304a5 allow at-rules other than else to follow @ if 2020-04-20 10:57:35 -04:00
ConnorSkees
4cdcf4f0d4 use peekmore rather than std::iter::Peekable 2020-04-20 03:45:28 -04:00
ConnorSkees
eb57f6f092 parse normal css atrules as unknown 2020-04-12 21:56:27 -04:00
ConnorSkees
c017ccfeb4 toplevel atrules within selectors 2020-04-12 21:47:32 -04:00
ConnorSkees
62f9f7da4f integrate error handling with codemap 2020-04-12 19:37:12 -04:00
ConnorSkees
47330a92c6 Selector::replace takes super selector by reference 2020-04-06 14:40:28 -04:00
ConnorSkees
26fdcfdf17 interpolated ampersand in at-root 2020-04-06 14:30:36 -04:00
ConnorSkees
8802a92f9b at-root with nothing contains super selector 2020-04-06 13:30:36 -04:00
ConnorSkees
648dc04c33 initial implementation of @ at-root 2020-04-06 13:13:03 -04:00
ConnorSkees
ef282c5c18 consolidate inspect implementations 2020-04-06 00:27:09 -04:00
ConnorSkees
4ab4f401d5 @ debug has the same output as inspect() 2020-04-06 00:23:58 -04:00
ConnorSkees
f0c1d508e6 refactor @ warn and @ debug parsing 2020-04-06 00:13:15 -04:00
ConnorSkees
44ff1c99b3 add helper function Value::from_vec 2020-04-06 00:11:18 -04:00
ConnorSkees
81e84536da refactor @ error to just be a real error 2020-04-05 23:56:08 -04:00
ConnorSkees
b0c89ff8b9 refactor atrule kind to separate file 2020-04-05 23:37:55 -04:00
ConnorSkees
05fde03697 refactor @ for parsing to separate file 2020-04-05 23:36:24 -04:00