212 Commits

Author SHA1 Message Date
ConnorSkees
e5cceb60ec track span_before when parsing values
this allows us to remove many panics on invalid input
2020-05-24 15:30:06 -04:00
ConnorSkees
3051cec45a disallow standalone @else 2020-05-24 12:47:04 -04:00
ConnorSkees
737a6ba90d emit proper error on unclosed quote 2020-05-24 10:04:30 -04:00
ConnorSkees
a01ed981ce make parsing of toplevel tokens more robust 2020-05-24 07:43:54 -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
3e5abf0587 remove keywords 2020-05-22 14:09:28 -04:00
ConnorSkees
5bed62c404 keywords are thread_local 2020-05-22 13:47:48 -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
2bd8232a00 emit proper error for toplevel " 2020-05-21 13:39:37 -04:00
ConnorSkees
b94a2403d0 fix panics related to toplevel hash and quotes 2020-05-21 12:21:52 -04:00
ConnorSkees
709b95d035 improve span information in values 2020-05-21 11:48:38 -04:00
ConnorSkees
2faf9fcb60 improve error handling of variables in styles 2020-05-21 00:41:04 -04:00
ConnorSkees
d39a45090a separate media and unknown at rules 2020-05-20 20:13:53 -04:00
ConnorSkees
f8b8025d7c fix panic when missing colon in style 2020-05-17 11:09:21 -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
6e7f1cc319 remove some panicking 2020-05-17 00:08:50 -04:00
ConnorSkees
66f24c474d fix build on wasm 2020-05-05 19:12:17 -04:00
ConnorSkees
648e101c49 add tests passing at the start of may 2020-05-05 19:01:40 -04:00
ConnorSkees
2e8126af13 prefer match over if let .. else .. 2020-05-02 12:25:53 -04:00
ConnorSkees
05b78a3ddd add profiling feature 2020-05-01 15:43:43 -04:00
ConnorSkees
8711e61398 refactor stylesheet into separate file 2020-04-27 15:53:43 -04:00
ConnorSkees
3615835e03 allow @content in more contexts 2020-04-26 21:29:09 -04:00
ConnorSkees
f1b60019a1 handle self referential default args 2020-04-26 13:51:49 -04:00
ConnorSkees
690c8a1f89 clippy 2020-04-26 01:52:43 -04:00
ConnorSkees
f60089f4f9 refactor parsing and eval of @ each 2020-04-24 22:58:28 -04:00
ConnorSkees
cc881db254 more robustly handle import paths 2020-04-24 21:38:25 -04:00
ConnorSkees
aea4235c9b simplify variable checks 2020-04-24 20:13:22 -04:00
ConnorSkees
2fb64934d7 emit proper error for missing quotes on @ import 2020-04-24 20:00:22 -04:00
ConnorSkees
0969df8fe5 handle url edge case involving ; and no space between before style 2020-04-24 19:13:38 -04:00
ConnorSkees
b8ca587353 experimental support for wasm 2020-04-24 18:08:20 -04:00
ConnorSkees
409ac80921 handle multiline comments surrounding @ if condition 2020-04-23 19:32:32 -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
5b33b8fc74 refactor @ for to be used in @ function 2020-04-23 13:57:10 -04:00
ConnorSkees
34b886b758 more robustly handle escaping 2020-04-22 10:57:57 -04:00
ConnorSkees
632ff5aae8 take reference to path 2020-04-21 18:43:10 -04:00
ConnorSkees
3805eaab2b clippy 2020-04-21 18:22:26 -04:00
ConnorSkees
6a01eeb1d8 Remove format module
This was code leftover from before there were proper unit tests. It
remained for some time as a debugging tool, but as more features have
been added, it has become a maintenance burden and no longer provides a
tangible benefit.
2020-04-21 18:01:35 -04:00
ConnorSkees
a339499c9b return string rather than writing to buffer 2020-04-21 05:25:08 -04:00
ConnorSkees
93bd950940 2020-04-21 tests 2020-04-21 04:59:03 -04:00
ConnorSkees
4cdcf4f0d4 use peekmore rather than std::iter::Peekable 2020-04-20 03:45:28 -04:00
ConnorSkees
e07ceda8c7 add unit field to ident eating 2020-04-20 03:20:08 -04:00
ConnorSkees
7579a6e9b5 refactor parsing of unquoted strings 2020-04-19 20:22:31 -04:00
ConnorSkees
9a72d9714a BREAKING: consolidate StyleSheet::print_as_css 2020-04-18 18:53:18 -04:00
ConnorSkees
a83aef04ca use Spanned::map_node rather than destructuring 2020-04-18 13:03:54 -04:00
ConnorSkees
de78c1147a manually resolve some formatting issues 2020-04-17 13:06:54 -04:00
ConnorSkees
f0895db939 bump version to 0.6.0 2020-04-12 22:18:02 -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
648dc04c33 initial implementation of @ at-root 2020-04-06 13:13:03 -04:00