Commit Graph

547 Commits

Author SHA1 Message Date
Natalie Weizenbaum
bc5852f64d Support multiple @import arguments. 2016-10-29 10:58:56 -07:00
Natalie Weizenbaum
9edb2bb447 Fix a selector parsing bug. 2016-10-29 10:55:10 -07:00
Natalie Weizenbaum
aec39904bc Clean up the output a bit.
This should match Ruby Sass's group logic.
2016-10-28 17:18:11 -07:00
Natalie Weizenbaum
868286911b Reparse media queries at perform-time. 2016-10-28 16:55:56 -07:00
Natalie Weizenbaum
6f6eb79dae Fix "2n of .foo" parsing. 2016-10-28 15:36:30 -07:00
Natalie Weizenbaum
9ec89f6944 Support get-function(). 2016-10-28 15:28:05 -07:00
Natalie Weizenbaum
650ae831ec Fix some analysis errors. 2016-10-28 15:23:14 -07:00
Natalie Weizenbaum
d0771e7fab Parse progid expressions like Ruby Sass. 2016-10-28 14:20:19 -07:00
Natalie Weizenbaum
5c53579b4c Properly handle selectors and @at-root. 2016-10-28 14:16:50 -07:00
Natalie Weizenbaum
43917fe25a Fix a bug in _groupSelectors. 2016-10-28 14:00:00 -07:00
Natalie Weizenbaum
324e2c6375 Fix comma-separated keyframe selectors. 2016-10-28 13:59:58 -07:00
Natalie Weizenbaum
a526e17f52 Lowercase npm. 2016-10-24 16:45:51 -07:00
Natalie Weizenbaum
be8b26191d Support import clauses. 2016-10-23 17:01:21 -07:00
Natalie Weizenbaum
80055653d9 Match Ruby Sass's source-tracking behavior. 2016-10-22 16:37:51 -07:00
Natalie Weizenbaum
436ce2d1af Fix a warning. 2016-10-22 01:00:47 -07:00
Natalie Weizenbaum
e615c5d15f Require semicolons between childless statements. 2016-10-22 01:00:04 -07:00
Natalie Weizenbaum
9c923fe98a Support guarded variables. 2016-10-21 21:56:27 -07:00
Natalie Weizenbaum
011a985d9f Fix some variable-resolution bugs. 2016-10-21 21:54:31 -07:00
Natalie Weizenbaum
d0a31b0ade Clamp numbers in saturate() et al. 2016-10-21 21:31:30 -07:00
Natalie Weizenbaum
683f4afb40 Fix number multiplication. 2016-10-21 21:28:16 -07:00
Natalie Weizenbaum
bebe278d8e Fix slash-separation. 2016-10-21 21:26:20 -07:00
Natalie Weizenbaum
a3142d526e Support reference combinators. 2016-10-21 21:21:30 -07:00
Natalie Weizenbaum
18cc8d3f66 Support keyframes. 2016-10-20 23:07:35 -07:00
Natalie Weizenbaum
271f899d3b Support slash numbers in lists. 2016-10-20 17:50:02 -07:00
Natalie Weizenbaum
5504a26a63 Quote non-identifier attribute selector values. 2016-10-20 15:43:07 -07:00
Natalie Weizenbaum
40ca7ee0f9 Fix MixinRule.hasContent. 2016-10-20 15:24:04 -07:00
Natalie Weizenbaum
0747b0cb95 Don't null out the current selector in @at-root. 2016-10-20 15:20:43 -07:00
Natalie Weizenbaum
7b4d26cc5a Properly parse indented-syntax empty selectors.
Also warn about them.
2016-10-20 14:35:45 -07:00
Natalie Weizenbaum
0d56c6fce2 Work around an analyzer error. 2016-10-19 23:09:51 -07:00
Natalie Weizenbaum
9cd43fff02 Fix adjust-color(). 2016-10-19 23:09:03 -07:00
Natalie Weizenbaum
5d6ff2eadc Fix unit conversion in division. 2016-10-19 23:02:33 -07:00
Natalie Weizenbaum
3e2f202dee Properly parse 1px-2px. 2016-10-19 22:54:47 -07:00
Natalie Weizenbaum
e61862a715 Support !important. 2016-10-19 21:46:53 -07:00
Natalie Weizenbaum
9b05b1c24e Allow @at-root with selectors. 2016-10-19 21:17:57 -07:00
Natalie Weizenbaum
95508b2713 Fix some edge-case-y extend logic. 2016-10-19 21:05:52 -07:00
Natalie Weizenbaum
3941e4debd Allow declarations in @at-root. 2016-10-19 20:44:53 -07:00
Natalie Weizenbaum
4e6a3d0ea9 Fix a few variable assignment semantics. 2016-10-19 19:18:52 -07:00
Natalie Weizenbaum
87e03f17eb Properly cancel unknown units. 2016-10-19 18:53:57 -07:00
Natalie Weizenbaum
e4fd1beb7a Fix a number division bug. 2016-10-19 18:45:16 -07:00
Natalie Weizenbaum
a515aa1873 Fix an @extend bug. 2016-10-19 18:40:50 -07:00
Natalie Weizenbaum
13156d5107 Disable implicit downcasts. 2016-10-19 17:56:48 -07:00
Natalie Weizenbaum
35b3baa1ef Fix a 1.20 analysis issue. 2016-10-19 15:23:50 -07:00
Natalie Weizenbaum
56dcccbb8a Fix PerformVisitor._isEmptyList. 2016-10-19 15:00:00 -07:00
Natalie Weizenbaum
0a8633735a Print a terse stack trace for unexpected errors. 2016-10-19 14:53:46 -07:00
Natalie Weizenbaum
1f4596ff6a Fix scale-color(). 2016-10-19 14:43:52 -07:00
Natalie Weizenbaum
1e1864770e Properly assign a span for call(). 2016-10-18 23:31:05 -07:00
Natalie Weizenbaum
7a29fa5c55 Parse namespaced universal selectors. 2016-10-18 23:13:32 -07:00
Natalie Weizenbaum
021299b9f2 Allow plain imports in control directives. 2016-10-18 23:11:02 -07:00
Natalie Weizenbaum
f476747e43 Fix valueless attribute selectors. 2016-10-18 23:06:35 -07:00
Natalie Weizenbaum
a2497adda2 Fix parenthesis detection. 2016-10-18 23:03:09 -07:00
Natalie Weizenbaum
bd042460f7 Fix trailing selector commas. 2016-10-18 22:20:50 -07:00
Natalie Weizenbaum
9751f8e459 Fix a couple extend crashes. 2016-10-18 22:16:12 -07:00
Natalie Weizenbaum
25c5554908 Fix rgba() with two arguments. 2016-10-18 22:03:53 -07:00
Natalie Weizenbaum
f71ff95cb4 Fix !global parsing. 2016-10-18 22:00:44 -07:00
Natalie Weizenbaum
c44481ba29 Fix blank lists in property values. 2016-10-18 21:53:08 -07:00
Natalie Weizenbaum
870a2a4f4a Update number equality. 2016-10-18 21:39:29 -07:00
Natalie Weizenbaum
2ff4ec3e71 Fix codeUnitIndexToCodepointIndex. 2016-10-18 20:55:16 -07:00
Natalie Weizenbaum
29574d345a Fix media query serialization. 2016-10-18 20:44:29 -07:00
Natalie Weizenbaum
3a795c6fe6 Fix to-*-case() again. 2016-10-18 20:40:56 -07:00
Natalie Weizenbaum
101904d26c Fix unquoted + quoted. 2016-10-18 20:34:03 -07:00
Natalie Weizenbaum
cf3cf07c93 Preserve units through unary minus. 2016-10-18 18:32:54 -07:00
Natalie Weizenbaum
358fd0db50 to-*-case() shouldn't be Unicode-aware. 2016-10-18 18:30:00 -07:00
Natalie Weizenbaum
d38722e36d Fix comment output. 2016-10-18 18:19:56 -07:00
Natalie Weizenbaum
4befdfff42 Consume whitespace after SCSS comments. 2016-10-18 18:17:27 -07:00
Natalie Weizenbaum
e756e298a4 Fix random(). 2016-10-18 18:16:55 -07:00
Natalie Weizenbaum
84e4cb25b8 Properly parse or. 2016-10-18 17:57:25 -07:00
Natalie Weizenbaum
2b2061f7e5 Treat empty unquoted strings as blank. 2016-10-18 17:53:40 -07:00
Natalie Weizenbaum
75229d525d Properly parse -#{}. 2016-10-18 17:51:17 -07:00
Natalie Weizenbaum
965e553fa9 Fix if() parsing. 2016-10-18 17:48:48 -07:00
Natalie Weizenbaum
54e87dce7f Fix feature-exists(). 2016-10-18 17:44:05 -07:00
Natalie Weizenbaum
594787a0ba Fix plain-CSS invert(). 2016-10-18 17:41:49 -07:00
Natalie Weizenbaum
99e0a1100f Fix unquoted string serialization again. 2016-10-18 17:36:13 -07:00
Natalie Weizenbaum
0a6ebc6f8c Serialize null to the empty string. 2016-10-18 17:24:12 -07:00
Natalie Weizenbaum
9e03630b3c Ensure uniqueness for unique-id(). 2016-10-18 17:24:07 -07:00
Natalie Weizenbaum
61dfecc697 Use exit code 65 for Sass errors. 2016-10-18 17:12:42 -07:00
Natalie Weizenbaum
5b4348f8bf Fix broken type annotations. 2016-10-18 17:05:53 -07:00
Natalie Weizenbaum
98f063f59d Fix selector parsing. 2016-10-18 17:04:30 -07:00
Natalie Weizenbaum
4d54c5d351 Fix units for coercing number operations. 2016-10-18 16:48:42 -07:00
Natalie Weizenbaum
acb3b3712d Properly inspect singleton lists. 2016-10-18 16:38:28 -07:00
Natalie Weizenbaum
794bdee476 Allow functions named after constants. 2016-10-18 16:36:10 -07:00
Natalie Weizenbaum
c8f0126f0b Support explicit @charset. 2016-10-18 16:22:42 -07:00
Natalie Weizenbaum
dd4a9165a2 Fix StringExpression.toInterpolation(). 2016-10-18 16:02:09 -07:00
Natalie Weizenbaum
0f6f44f939 Fix parsing of binary -. 2016-10-18 15:52:54 -07:00
Natalie Weizenbaum
5791e1425a StringExpression.toString(). 2016-10-18 15:52:23 -07:00
Natalie Weizenbaum
11dad49c6d Properly escape backspace characters. 2016-10-18 15:51:57 -07:00
Natalie Weizenbaum
04de51b5d1 Fix attribute selector authoring. 2016-10-18 15:25:42 -07:00
Natalie Weizenbaum
6981428c25 Properly inspect lists. 2016-10-18 15:23:59 -07:00
Natalie Weizenbaum
b5ccb26b9b Consider null blank. 2016-10-18 15:23:19 -07:00
Natalie Weizenbaum
e7024437d8 Use Ruby Sass string semantics. 2016-10-18 15:17:46 -07:00
Natalie Weizenbaum
286b24afca Fix number equality. 2016-10-18 14:26:52 -07:00
Natalie Weizenbaum
45becee133 Escape ASCII non-printable string contents. 2016-10-17 17:56:39 -07:00
Natalie Weizenbaum
98f1c7dca3 Fix a unit conversion bug. 2016-10-17 17:42:19 -07:00
Natalie Weizenbaum
8969fc75f2 Store numbers' original values. 2016-10-17 16:50:43 -07:00
Natalie Weizenbaum
d5aa9e7f82 Write escapes when serializing unquoted strings. 2016-10-17 14:55:02 -07:00
Natalie Weizenbaum
beb5cc1794 Properly remove quotes when stringifying. 2016-10-16 19:13:13 -07:00
Natalie Weizenbaum
7f6c70f821 Add Value.toCssString(). 2016-10-16 19:01:23 -07:00
Natalie Weizenbaum
604fa597e5 InternalException -> SassScriptException 2016-10-16 18:46:38 -07:00
Natalie Weizenbaum
c41f2bb023 Properly serialize numbers. 2016-10-16 14:07:30 -07:00
Natalie Weizenbaum
ddf6452f20 Generate rgba() rather than rgb(). 2016-10-16 12:15:49 -07:00
Natalie Weizenbaum
90d9ed03cc Fix a couple infinite-loop bugs. 2016-10-16 12:09:42 -07:00
Natalie Weizenbaum
d276bfb206 Finish API docs. 2016-10-15 16:57:54 -07:00
Natalie Weizenbaum
38f15a96f3 Expose _PerformVisitor as a top-level function. 2016-10-15 14:31:21 -07:00
Natalie Weizenbaum
441ca87f37 Way more API docs. 2016-10-15 02:57:29 -07:00
Natalie Weizenbaum
a2889e4a75 Start supporting public Dart and Node APIs. 2016-10-14 18:24:50 -07:00
Natalie Weizenbaum
68bd26637a Build an NPM module. 2016-10-14 17:39:28 -07:00
Natalie Weizenbaum
d5f9ce4ed0 A few API docs. 2016-10-12 12:27:28 -07:00
Natalie Weizenbaum
8136c16cab A few more API docs. 2016-10-11 00:27:19 -07:00
Natalie Weizenbaum
4c418603e0 API docs for days. 2016-10-09 23:51:20 -07:00
Natalie Weizenbaum
3e10e24341 Even more API docs. 2016-10-09 20:57:28 -07:00
Natalie Weizenbaum
3a0c5ce09c More API docs. 2016-10-09 16:36:36 -07:00
Natalie Weizenbaum
d90b8e52ae Support compiling to node.js. 2016-10-07 15:05:56 -07:00
Natalie Weizenbaum
2289901df8 Support url() imports. 2016-10-07 14:05:54 -07:00
Natalie Weizenbaum
c4ea6012dc Optimize SerializeVisitor._visitString. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
c42afb4f16 Support url() in static declaration values. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
970c63ba41 Support url() in (interpolated) generic values. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
ae9d4e312f Support url() expressions. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
0e8c548955 Properly wrap URI parse errors. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
6c36a01d89 Support @else. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
89e095d2c2 Add a bunch of API docs. 2016-09-30 18:42:41 -07:00
Natalie Weizenbaum
bc45cf6d54 Remove outdated TODO. 2016-09-30 16:58:17 -07:00
Natalie Weizenbaum
f15d3d8e59 Add a few missing valueToCss() calls. 2016-09-30 16:44:47 -07:00
Natalie Weizenbaum
ea4a171198 Fix new analysis issues. 2016-09-30 16:41:22 -07:00
Natalie Weizenbaum
a6065fb4ab Reformat runtime parse errors. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ca4e27470f Don't allow parent selectors in @extend targets. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
10ece577c3 Parse colors. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
a3509e2947 Remove an outdated TODO. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
e07ae949a1 Error for duplicate arguments. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
01915c3fa8 Tweak TODO. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
1a2bc5ffc9 Support calc-aware functions. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
edc6cbfab8 Use valueToCss() in functions. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f7c9ccc9ba Support special functions. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
9f21fa943e Make transitive @extend work.
Loops are still kind of iffy.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
9d2d8652dc @extend into pseudo-selectors 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
390d0ac482 Remove another outdated TODO. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
265a4c8946 Preserve newlines through @extend. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
99c83a5834 Partial selector newline support.
In particular, newlines in selectors lists are now preserved during
parent selector resolution and emitted by the serializer. The output
matches Ruby Sass, but I'm not sure it's actually the best possible.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
98c5ffae9a Fix nested selector ordering. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
79630cdc47 Properly serialize parent selectors. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
25c16b975e Fix a parser bug. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ae2ab6ec58 Remove outdated TODO. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f460ebb2a9 Parse functions -> constructors 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
4289011a84 Parse em properly. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
b47067ea4e Add if(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
1987d0b055 Add unique-id(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
af4234aedd Add call(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ad1bbcc9bc Add comparable(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
69b61b1dc9 Fix unit stuff. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
4a42f948f9 Add unit(), unitless(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
138bb6bace Add type-of. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
0b7a448d76 Add function-exists(), mixin-exists(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
a9122ad162 Add variable-exists(), global-variable-exists(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8455903435 Add feature-exists(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
44d9ee54a9 Add selector-parse(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
534ac2e511 Add simple-selectors(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
046e17da17 Add is-superselector(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
754b1895ac Add selector-unify(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
a993a7667e Add selector-replace(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
63ec19f469 Fix a formatting nit. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f449fa0a98 Fix another extend bug. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
6fc656d260 Fix an extend bug. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
54f4a23d99 Add selector-extend(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
4a4cc3c277 Add selector-append(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
29ff1887a8 Add selector-nest(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
a5c1021035 Tweak function headers. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5800b9358f Add map-has-key() and keywords(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
643771349f Add map-keys(), map-values(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
7ece4671fc Add map-remove(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
3421172bcb Add map-get(), map-merge(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
216ffece4b Fix some map/list equivalence stuff. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f3a4b07212 Fix fuzzyHashCode() to always return an int. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
6a949b027a Add index(), list-separator(), is-bracketed(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
6debf1e39a Add zip(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f7fbbb075a Add append(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
10d7da9d73 isBracketed -> hasBrackets
This is consistent with SassString.hasQuotes.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
4c9751fbb4 Add join(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
582afa3a20 Add set-nth(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
7418b78902 Add nth(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
d316f828fa Add length(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
816e32f08b Add Environment.defineFunction(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
158ac11d43 Add TODOs for persistent data structures. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8f9d2d3207 Add random(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
aed2a99234 Add max() and min(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
0bf39726a3 Add round(), ceil(), floor(), abs(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
b0a675ab14 Add percentage(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
e1a6178ced Add to-upper-case() and to-lower-case(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8d5228b368 Add str-slice(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ff2d9f89e9 Add str-index(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8fd5818977 Add str-insert(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
41eec3c779 Add str-length(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
b8d89ad80d Add quoted(), unquoted(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
fb045bb955 Add ie-hex-str(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
7e0f642cd1 Use fuzzy rounding for consistency with Ruby Sass. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
4ff89b1aff Add change-color(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
3cbbe101f1 Add scale-color(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
fc4e6afad8 Add adjust-color(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8b8f6bfbee Add opacify() et al 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
04b012befe Add opacity(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
09a8198a01 Add alpha(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f499f31b64 Add grayscale(), complement(), invert(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5873083110 Add lighten(), darken(), saturate(), desaturate(). 2016-09-30 12:41:41 -07:00