1837 Commits

Author SHA1 Message Date
Connor Skees
45508a7665 add support for unicode ranges 2020-08-11 14:46:06 -04:00
Connor Skees
5133d580de improve error message for selector-parse and deny open curly brace 2020-08-11 02:00:10 -04:00
Connor Skees
0c7e2017d5 use patched version of peekmore 2020-08-08 21:38:59 -04:00
Connor Skees
fb785cf71c revert "make predicate optional for callers"
This reverts commit fda7f340cea60a90031aa8edffd8ab3a06d05992.

This commit made tests fail that it shouldn't have. The performance wins
from this change were negligible, so it is easiest to just revert it and
potentially come back to this change later
2020-08-08 14:36:59 -04:00
Connor Skees
fda7f340ce make predicate optional for callers 2020-08-08 02:27:54 -04:00
Connor Skees
a9bef0e24e more robustly parse default function arguments 2020-08-08 01:57:56 -04:00
Connor Skees
a3a21928c0 resolve map parsing regression involving trailing commas in doubly nested maps 2020-08-07 20:10:49 -04:00
Connor Skees
56030f1292 recognize plain css @imports beginning with // 2020-08-07 17:44:51 -04:00
Connor Skees
36bdea138d refactor how the from value in @for is parsed 2020-08-07 17:33:30 -04:00
Connor Skees
fac8b86a6a resolve integer underflow in @for when both to and from and i32::MIN 2020-08-07 16:51:17 -04:00
Connor Skees
f33739aa0f add more tests for malformed @for
test for capitalization of keywords, error messages, and regression
tests for integer overflows resulting when `from` or `to` ==
`std::i32::MAX`
2020-08-07 16:21:15 -04:00
Connor Skees
38a37a3997 more robustly parse !optional in selectors 2020-08-07 13:40:22 -04:00
Connor Skees
36a55e582c use consume_char_if_exists to simplify parsing 2020-08-07 13:07:28 -04:00
Connor Skees
1f14bc92e3 refactor parsing of parens using predicate 2020-08-07 13:01:58 -04:00
Connor Skees
be032b66f0 refactor parsing of media queries to use predicate parsing 2020-08-07 12:04:43 -04:00
Connor Skees
d5b2410a8c allow multiline comments in more contexts 2020-08-07 11:39:14 -04:00
Connor Skees
484409761d
implement @use and the module system
This is an MVP implementation of the module system. `@forward` is not yet supported and some aspects may be untested.
2020-08-07 02:36:07 -04:00
Connor Skees
882c84c2d8 remove @use from remaining features 2020-08-07 02:26:59 -04:00
Connor Skees
10b333f663 update newly passing tests from module system 2020-08-07 02:24:17 -04:00
Connor Skees
399fe1d99e rustfmt 2020-08-07 02:12:13 -04:00
Connor Skees
7a4a191d59 allow variable declarations before and between @use 2020-08-07 02:10:51 -04:00
Connor Skees
a7ccb4d6d3 move module variable parsing to module file 2020-08-07 02:03:46 -04:00
Connor Skees
438abe52be allow redeclaration of module variables 2020-08-07 02:01:04 -04:00
Connor Skees
bb0b352af2 move module parsing to separate file 2020-08-06 22:05:50 -04:00
Connor Skees
cacf605af8 respect $with argument to load-css 2020-08-06 21:58:53 -04:00
Connor Skees
0254517095 refactor errors using Parser::expect_char 2020-08-06 21:36:11 -04:00
Connor Skees
074d679cbd support the @use ... with (...) syntax 2020-08-06 21:05:40 -04:00
Connor Skees
94becb4dcb implement idempotency with regard to module aliasing 2020-08-06 04:01:46 -04:00
Connor Skees
de9571b3fe remove allows from modules 2020-08-06 03:53:18 -04:00
Connor Skees
d029fd2001 implement module mixins and meta.load-css 2020-08-06 03:46:58 -04:00
Connor Skees
d043167015 Merge branch 'master' of https://github.com/connorskees/grass into modules 2020-08-06 01:23:09 -04:00
Connor Skees
8fabda6363 use back() rather than indexing at len - 1 2020-08-05 03:26:50 -04:00
Connor Skees
61ef52eb3f replace .get(0) with .first() 2020-08-05 03:09:10 -04:00
Connor Skees
df1456f9b1 use new predicate parsing for bracketed lists 2020-08-05 03:03:58 -04:00
Connor Skees
b2e7270681 resolve panic when extending certain psuedo selectors containing combinators without rhs selector 2020-08-04 23:18:16 -04:00
Connor Skees
5c8e88d16b remove panic on malformed bracketed list 2020-08-04 02:36:33 -04:00
Connor Skees
9c2d1200f7 allow multiline comments in functions 2020-08-04 02:13:15 -04:00
Connor Skees
a79c62c2fa allow escaped ! in selectors 2020-08-04 02:05:59 -04:00
Connor Skees
55bcd1d1dd resolve panic from malformed filter argument 2020-08-04 01:35:49 -04:00
Connor Skees
622d44ac63 disallow selectors and styles in functions 2020-08-04 01:18:34 -04:00
Connor Skees
3e5f69118b disallow more at-rules in @function 2020-08-02 23:00:00 -04:00
Connor Skees
2df5e1b274 resolve panic on malformed args missing closing parenthesis 2020-08-02 22:24:37 -04:00
Connor Skees
835aa34dee Merge branch 'master' of https://github.com/connorskees/grass into modules 2020-08-02 15:58:16 -04:00
Connor Skees
74dad6af0c allow whitespace after multiline comment in named args 2020-08-02 15:57:58 -04:00
Connor Skees
5efe99a404 resolve merge conflicts with master 2020-08-02 15:11:59 -04:00
Ivan Tham
4a9c200a7e remove alpha from get_by_name 2020-08-02 15:03:55 -04:00
Ivan Tham
c5814a4a06 refactor parser return 2020-08-02 15:03:55 -04:00
Ivan Tham
edec89093b use phf for named rgba map hashing
Improves many_named_colors benchmark by ~40%.

many_named_colors       time:   [897.66 us 900.05 us 903.05 us]
                        change: [-41.299% -40.114% -38.800%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  2 (2.00%) high mild
  4 (4.00%) high severe
2020-08-02 15:03:55 -04:00
Ivan Tham
45476b8a75 elide lifetime for Default Options impl 2020-08-02 15:03:55 -04:00
Connor Skees
db41737ec7 hue can never be exactly 360 2020-08-02 15:03:26 -04:00