738 Commits

Author SHA1 Message Date
ConnorSkees
8f96a821f7 allow id selectors to start with numbers 2020-03-30 00:18:37 -04:00
ConnorSkees
2a3f13bea0 allow escaped quotes to start idents 2020-03-29 23:00:39 -04:00
ConnorSkees
2885eec853 remove commented dbg statements 2020-03-29 22:21:42 -04:00
ConnorSkees
5bbf10b05f allow idents to begin with hyphen 2020-03-29 22:17:56 -04:00
ConnorSkees
9e38fbc747 remove leftover debug statements 2020-03-29 19:51:35 -04:00
ConnorSkees
07505399da remove the lexer 2020-03-29 19:42:27 -04:00
ConnorSkees
f15ab57573 refactor @if/@else if/@else 2020-03-24 22:13:38 -04:00
ConnorSkees
6d2d9bcb4a escape all symbols and whitespace 2020-03-24 13:36:39 -04:00
ConnorSkees
b292d56efa refactor function body to allow more than at-rules 2020-03-24 01:26:23 -04:00
ConnorSkees
3afe88e2d6 !global variables are also in local scope 2020-03-24 00:43:09 -04:00
ConnorSkees
0979f3957b Revert "check global scope for variable before local"
This reverts commit 27a9578b17a8ed8227cb190af38762111edae58f.

This ended up not being the desired behavior. It seems that instead of
checking the global scope first, variables declared with `!global` are
inserted into both the local and global scopes.
2020-03-24 00:31:56 -04:00
ConnorSkees
27a9578b17 check global scope for variable before local 2020-03-24 00:26:55 -04:00
ConnorSkees
c29088b558 allow trailing commas 2020-03-24 00:17:18 -04:00
ConnorSkees
0ded248e1e allow comma separated bracketed list in function args 2020-03-23 23:52:15 -04:00
ConnorSkees
430747d06b handle empty bracketed lists 2020-03-23 23:19:13 -04:00
ConnorSkees
c1ee84b6fc implement builtin function is-bracketed 2020-03-23 23:08:01 -04:00
ConnorSkees
d88342fd9b rustfmt 2020-03-23 23:06:05 -04:00
ConnorSkees
2705d79d1a str-slice by chars rather than bytes 2020-03-23 22:47:59 -04:00
ConnorSkees
dc0d7c4e89 properly emit more variants of character escape 2020-03-23 22:26:52 -04:00
ConnorSkees
f69bbb3b69 rustfmt 2020-03-23 22:13:11 -04:00
ConnorSkees
ae33efcc30 inspect for empty list returns () 2020-03-23 20:14:47 -04:00
ConnorSkees
cd40ada653 properly escape backslashes in quotes in variables 2020-03-23 20:09:27 -04:00
ConnorSkees
981bf27cb8 properly parse and emit bracketed lists 2020-03-23 19:56:24 -04:00
ConnorSkees
9233b1d2ba allow semicolons in strings 2020-03-23 16:29:55 -04:00
ConnorSkees
b7492a8546 mixin-exists allows 2 args 2020-03-23 15:26:07 -04:00
ConnorSkees
81c5a34211 function-exists allows 2 args 2020-03-23 15:25:26 -04:00
ConnorSkees
4b529a1236 proper error messages in (mixin|function)-exists 2020-03-23 15:22:16 -04:00
ConnorSkees
e6f2c26bc6 type-of(!important) returns 'string' 2020-03-23 15:13:19 -04:00
ConnorSkees
68d2bc7e17 global variables feature-exists 2020-03-23 15:06:04 -04:00
ConnorSkees
0f310e9582 proper error message for non-string to feature-exists 2020-03-23 15:02:50 -04:00
ConnorSkees
b91683b02e implement builtin function global-var-exists 2020-03-23 14:53:22 -04:00
ConnorSkees
785c824cd8 check global scope for functions as well 2020-03-23 14:46:15 -04:00
ConnorSkees
d0b56c57d2 handle quoted strings in variable-exists 2020-03-23 14:34:03 -04:00
ConnorSkees
712795544b rustfmt 2020-03-23 14:33:44 -04:00
ConnorSkees
991b87f335 str-slice start/end equality does not preclude output 2020-03-23 14:16:27 -04:00
ConnorSkees
893c758e13 string length is number of chars 2020-03-23 14:11:06 -04:00
ConnorSkees
f4f9a79b2b handle large integers in builtin string functions 2020-03-23 14:03:47 -04:00
ConnorSkees
795c8bdb05 error messages end in periods 2020-03-23 12:53:55 -04:00
ConnorSkees
01c1cf3bb3 prefer the word lightness over luminance 2020-03-23 12:52:23 -04:00
ConnorSkees
2698e8257b improve rgb(a)/hsl(a) 1 arg errors 2020-03-23 12:42:58 -04:00
ConnorSkees
98a99684b7 refactor quote normalization 2020-03-23 12:12:08 -04:00
ConnorSkees
6460c97ef4 better error messages for zero arg hsl(a) 2020-03-22 23:41:02 -04:00
ConnorSkees
6aae433d21 better error message for missing rgb/rgba args 2020-03-22 23:28:19 -04:00
ConnorSkees
0be8828bf0 make better use of num traits 2020-03-22 22:28:54 -04:00
ConnorSkees
0e0b01f595 unquoted, empty strings are null 2020-03-22 18:36:21 -04:00
ConnorSkees
d19c112765 str-len is a count of characters, not bytes 2020-03-22 18:24:09 -04:00
ConnorSkees
c392c33ad8 properly insert into empty strings 2020-03-22 18:13:55 -04:00
ConnorSkees
585786318f handle double wide characters in str-insert 2020-03-22 17:49:21 -04:00
ConnorSkees
9965fe99fe handle negative numbers more accurately in str-insert 2020-03-22 17:13:38 -04:00
ConnorSkees
047fd1d3de handle str-insert edge cases 2020-03-22 16:49:41 -04:00