29 Commits

Author SHA1 Message Date
ConnorSkees
a3a33db47a improve selector error handling 2020-06-22 12:39:09 -04:00
ConnorSkees
c1b5ff5730 prettify imports 2020-06-16 20:00:11 -04:00
ConnorSkees
71dd7df951 reimplement parsing 2020-06-16 19:38:30 -04:00
ConnorSkees
b135b87a69 resolve clippy lints 2020-06-07 23:11:43 -04:00
ConnorSkees
457eccc59b reimplement @ at-root 2020-06-07 17:49:39 -04:00
ConnorSkees
8390fd8354 resolve clippy lints 2020-05-31 18:21:20 -04:00
ConnorSkees
f3a58e0fa3 initial implementation of selector-* builtin fns 2020-05-31 04:51:41 -04:00
ConnorSkees
ec83a9dff7 clippy 2020-05-24 17:41:24 -04:00
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
737a6ba90d emit proper error on unclosed quote 2020-05-24 10:04:30 -04:00
ConnorSkees
096abb6ca0 handle selector with nothing after colon 2020-05-24 09:07:16 -04:00
ConnorSkees
042dbfa914 remove panics from missing identifiers 2020-05-24 08:56:53 -04:00
ConnorSkees
283a2097ff rename Value::Ident to Value::String 2020-05-22 14:35:41 -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
2d0a9abb13 parse selectors that grow larger from interpolation 2020-05-16 17:28:30 -04:00
ConnorSkees
f6fd0e9af5 refactor how & is handled in values 2020-04-26 13:07:44 -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
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
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
86f2ac6a6c remove placeholders in pseudo parens closer to correct 2020-04-05 12:52:02 -04:00
ConnorSkees
b7b58c2ac6 selector unification of pseudo parens 2020-04-05 02:39:38 -04:00
ConnorSkees
f4efcf0b45 better error message for invalid selector characters 2020-04-03 14:14:40 -04:00
ConnorSkees
2efab1cebe clippy 2020-04-03 13:33:55 -04:00
ConnorSkees
2a01668ae0 refactor selector parsing 2020-04-03 13:28:37 -04:00
ConnorSkees
52edffd8fd refactor attributes into separate file 2020-04-02 20:59:37 -04:00