Commit Graph

603 Commits

Author SHA1 Message Date
Natalie Weizenbaum
2d28194e4c Fix %. 2017-01-14 22:54:13 -08:00
Natalie Weizenbaum
ca4d411362 Fix str-slice() again. 2017-01-14 22:39:28 -08:00
Natalie Weizenbaum
566c06df0e Fix unitless-to-unit number equality. 2017-01-14 22:17:57 -08:00
Natalie Weizenbaum
37f43417bc Handle a placeholder in a compound selector. 2017-01-14 21:40:56 -08:00
Natalie Weizenbaum
c50563e0b4 Handle placeholders in selector pseudos. 2017-01-14 21:30:37 -08:00
Natalie Weizenbaum
146d24e28e Fix split media queries. 2017-01-14 20:09:34 -08:00
Natalie Weizenbaum
015bb0d79f Support &1. 2017-01-14 18:27:50 -08:00
Natalie Weizenbaum
b695fa6461 merge with --$variables 2017-01-14 18:25:50 -08:00
Natalie Weizenbaum
247ab93eec Fix plain import parsing. 2017-01-14 17:53:39 -08:00
Natalie Weizenbaum
6b2d9e519c Support --$variable. 2017-01-14 17:38:57 -08:00
Natalie Weizenbaum
6bc4fb1c34 Test a unit-parsing edge case on Dart Sass. 2017-01-14 17:06:05 -08:00
Natalie Weizenbaum
c415dd068d Fix the $weight parameter for invert(). 2017-01-14 16:54:19 -08:00
Natalie Weizenbaum
d86c90bb0b Add spans to toCssValue() errors. 2017-01-14 16:46:52 -08:00
Natalie Weizenbaum
d491ab5916 Fix selector error handling. 2017-01-14 15:30:44 -08:00
Natalie Weizenbaum
28efbe1df3 Fix type-of() with a function. 2017-01-14 15:14:57 -08:00
Natalie Weizenbaum
05acf01e58 Forbid more illegal function names. 2017-01-14 15:08:55 -08:00
Natalie Weizenbaum
eab36eafe5 Fix @import with supports(). 2017-01-14 14:56:33 -08:00
Natalie Weizenbaum
9031a7f554 Fix variable scoping in @at-root. 2017-01-14 14:20:44 -08:00
Natalie Weizenbaum
989ffcb53c Forbid & after compound. 2017-01-14 13:43:40 -08:00
Natalie Weizenbaum
dbdd4d72d5 Support & in @at-root. 2017-01-14 13:39:00 -08:00
Natalie Weizenbaum
91b7178e2a Fix ID equality. (#99) 2017-01-13 16:26:03 -08:00
Natalie Weizenbaum
016fe59d1f Forbid extending across media queries. 2017-01-13 01:53:04 -08:00
Natalie Weizenbaum
354b7e694e Remove an unnecessary toList() call. 2017-01-13 00:22:06 -08:00
Natalie Weizenbaum
d4e804f912 Improve custom property indentation. 2017-01-08 23:45:06 -08:00
Natalie Weizenbaum
c507afe46e Fix whitespace after "...". 2017-01-08 23:29:07 -08:00
Natalie Weizenbaum
d8a299845d Support nested ; and ! in custom property values. 2017-01-08 22:59:58 -08:00
Natalie Weizenbaum
3c7daa3499 Support interpolation in loud comments. 2017-01-08 22:47:05 -08:00
Natalie Weizenbaum
7136b98b09 Support content-exists(). 2017-01-08 22:05:23 -08:00
Natalie Weizenbaum
bf771689f3 Fix SassMap.asList's return type. 2017-01-08 21:39:30 -08:00
Natalie Weizenbaum
7564b6a51a Include names in unit assertion errors. 2017-01-08 21:26:05 -08:00
Natalie Weizenbaum
de69e7ae1b Parse terse indented mixin syntax. 2017-01-08 17:13:08 -08:00
Natalie Weizenbaum
40be168635 Properly handle "..." after a digit. 2017-01-08 17:12:27 -08:00
Natalie Weizenbaum
8d7a8c7e12 Disallow invalid function names. 2017-01-08 17:12:11 -08:00
Natalie Weizenbaum
06609e4551 Support @-moz-document. 2017-01-08 17:11:52 -08:00
Natalie Weizenbaum
330326c7f7 Fix @at-root query parsing. 2017-01-08 17:11:31 -08:00
Natalie Weizenbaum
51eb75567a Report stack traces along with import errors. 2017-01-06 21:38:48 -08:00
Natalie Weizenbaum
d7caf7fbc1 Gracefully handle invalid UTF-8.
This will be even more graceful when dart-lang/sdk#28293 is fixed.
2017-01-06 21:31:29 -08:00
Natalie Weizenbaum
8c4f0bdf81 Fix superselector computation for :not(). 2017-01-06 21:31:09 -08:00
Natalie Weizenbaum
ce36eb5b10 Forbid functions and mixins in control directives. 2017-01-06 17:46:38 -08:00
Natalie Weizenbaum
7ccccbc2ba Fix unit coercion in @for. 2017-01-06 17:46:12 -08:00
Natalie Weizenbaum
4f686c31c5 Improve formatting for disallowed import errors.
We had only been highlighting the argument; now we highlight the entire
rule.
2017-01-06 17:45:35 -08:00
Natalie Weizenbaum
a7c6a1ad5b Fix String.asInterpolation().
We were checking if its contents was an Interpolation, when we should
have been checking for an Expression.
2017-01-06 17:45:34 -08:00
Natalie Weizenbaum
f5b04abd8b Fix InterpolationBuffer.toString(). 2017-01-06 16:45:17 -08:00
Natalie Weizenbaum
d65978e27a Ignore empty lines in the indented syntax. 2017-01-06 15:05:16 -08:00
Natalie Weizenbaum
10c02b3362 Don't throw bogus indentation errors.
If we saw a line with no spaces, we thought the document couldn't have
any spaces anywhere.

Closes #87
2017-01-06 14:53:12 -08:00
Natalie Weizenbaum
63b39479e1 Fix *-exists(). (#86)
These were always using the global scope rather than the lexical scope.
They've been moved into the perform visitor so that they have access to
the lexical environment instead.
2017-01-06 14:43:34 -08:00
Natalie Weizenbaum
bf464f0539 Fix str-insert() with negative indices. (#85) 2016-12-29 17:14:36 -08:00
Natalie Weizenbaum
a212999554 Properly parse URLs containing "//" and "/*". (#84) 2016-12-29 15:24:45 -08:00
Natalie Weizenbaum
beb1a0bd09 Properly handle extended pseudos.
There was a logic bug when we created a new selector that injected
extended pseudo-selectors into a previous selector. We would overwrite
the last selector after the original pseudo rather than overwriting the
pseudo itself.
2016-12-29 12:33:12 -08:00
Natalie Weizenbaum
f17edb83d8 Fix an allocation-avoidance case.
When extending a selector pseudo, if the selector was unchanged, we
weren't short-circuiting as we should have. This fixes that so now we
avoid allocations unless the selector actually changes.

Closes #81
2016-12-29 12:33:12 -08:00
Natalie Weizenbaum
69762ff0b0 Ignore duplicate extensions.
Closes #76
2016-12-20 17:41:21 -08:00
Natalie Weizenbaum
1d68c7a1c4 Fix selector equality. 2016-12-20 17:40:26 -08:00
Natalie Weizenbaum
3b6f01be84 Make ExtendSource.extender a plain SelectorList.
The span attached to the CssValue wasn't being used.
2016-12-20 17:40:23 -08:00
Natalie Weizenbaum
d5a8a3f725 Fix a few extend issues. (#75) 2016-12-19 15:23:14 -08:00
Natalie Weizenbaum
e5fb64e89f Preserve escapes in non-script identifiers. (#74) 2016-12-18 22:42:11 -08:00
Natalie Weizenbaum
9fdc8194fd Fix newlines in interpolation. (#73) 2016-12-18 22:19:50 -08:00
Natalie Weizenbaum
b4730dd6a6 Don't crash in *-color(). (#72) 2016-12-18 18:54:48 -08:00
Natalie Weizenbaum
41772a1739 Fix str-slice(). (#70)
See sass/sass#2211
2016-12-18 17:54:35 -08:00
Natalie Weizenbaum
9d678469d0 Support var() in plain CSS color functions. (#69)
See sass/sass-spec#1002
See sass/sass#2175
2016-12-16 18:20:03 -08:00
Natalie Weizenbaum
c91ace92ab Fix dp unit conversions. (#68)
See sass/sass#2143
2016-12-16 18:00:15 -08:00
Natalie Weizenbaum
b730e3f85c Support CSS import reordering. (#64) 2016-12-10 15:04:09 -08:00
Natalie Weizenbaum
717da0d5bb Improve the error message for a failed @extend. (#65) 2016-12-09 17:29:58 -08:00
Natalie Weizenbaum
65acb8b184 Allow #{...}--1. (#62) 2016-12-09 17:22:53 -08:00
Natalie Weizenbaum
779edfad3b Set mixin/function arguments locally. (#63) 2016-12-09 17:08:11 -08:00
Natalie Weizenbaum
5d96a2af20 Allow saturate($number). (#61) 2016-12-09 16:41:47 -08:00
Natalie Weizenbaum
9a7d2c879f Get rid of an unused utility class. 2016-12-09 15:57:09 -08:00
Natalie Weizenbaum
9ce2d30e2a Fix handling of **/. (#60)
We had been failing to close comments because we'd consume the second
asterisk and fail to register that it might be the one to end the
comment.

See sass/sass-spec#986
Closes #58
2016-12-09 14:02:26 -08:00
Natalie Weizenbaum
8b6548fc61 Add more CLI tests. 2016-12-02 17:39:28 -08:00
Natalie Weizenbaum
dd2fa6f574 Treat ".css" imports as plain imports. (#48) 2016-11-18 15:43:21 -08:00
Natalie Weizenbaum
f912bb97ac Fix another @extend bug.
We weren't computing parent superselectors correctly.
2016-11-15 00:57:04 -08:00
Natalie Weizenbaum
d1fa5341c9 Fix a bug with superselector calculations. 2016-11-15 00:02:31 -08:00
Natalie Weizenbaum
d71e530622 Fix bounds-checking for opacify() et al. 2016-11-14 22:46:58 -08:00
Natalie Weizenbaum
bcd66991f7 Fix parsing of :nth-*-child() selectors. 2016-11-14 11:12:34 -08:00
Natalie Weizenbaum
b9df6f1334 Fix @debug output. (#45) 2016-11-13 23:48:29 -08:00
Natalie Weizenbaum
2e0041d3c0 Don't disable placeholder unification.
I'm not sure why I made this fail in the first place.
2016-11-13 21:16:42 -08:00
Natalie Weizenbaum
f91c14c9e3 Fix mixin-exists(). 2016-11-13 21:07:41 -08:00
Natalie Weizenbaum
b7a026096b Fix bracketed-list parsing. (#44)
See sass/sass-spec#973
2016-11-13 20:58:24 -08:00
Natalie Weizenbaum
b9b8e3676f Fix an extend bug with combinators. (#43) 2016-11-13 17:38:14 -08:00
Natalie Weizenbaum
8df94cc4ca Add support for Unicode ranges. (#42)
See sass/sass-spec#971
2016-11-13 13:26:52 -08:00
Natalie Weizenbaum
a7f5f4e4e8 Support the Microsoft-style = operator. (#40)
Closes #31
2016-11-12 21:21:18 -08:00
Natalie Weizenbaum
5f78a8b40a Fix an expression-parsing bug. (#38)
A binary operator followed by a unary operator (for example, `1 + - 2`)
would crash the parser.
2016-11-11 17:47:00 -08:00
Natalie Weizenbaum
d691c77db5 Don't duplicate line/column info in error output. (#36)
All span information is now presented as a stack frame, and elided if
it's redundant with the existing stack.
2016-11-08 12:22:55 -08:00
Natalie Weizenbaum
db25251c49 Properly declare arguments for opacify et al. (#34)
Closes #32
2016-11-07 17:54:22 -08:00
Natalie Weizenbaum
c5508cac89 Fix parent selector resolution. (#33)
If a child selector list contained one complex selector with & and one
without, the latter's parent wouldn't be added automatically.

Closes #28
2016-11-07 17:11:34 -08:00
Natalie Weizenbaum
a15bc625bf Fix an RGB-to-HSL bug. 2016-11-05 23:42:07 -07:00
Natalie Weizenbaum
ce8e223d88 Make color equality consider alpha. 2016-11-05 22:28:34 -07:00
Natalie Weizenbaum
d9d4f7c338 Await stdout.flush(). 2016-11-05 12:47:51 -07:00
Natalie Weizenbaum
805ce12e84 Use the exitCode attribute rather than exit(). 2016-11-05 12:23:45 -07:00
Natalie Weizenbaum
5fb090ef7e Print colors by name if possible. 2016-11-02 17:37:10 -07:00
Natalie Weizenbaum
bab6ebb59a Track and use colors' original representations. 2016-11-02 17:37:10 -07:00
Natalie Weizenbaum
d18ac3c6b4 Don't add extra newlines after loud comments. 2016-11-02 17:30:28 -07:00
Natalie Weizenbaum
12ec31566f Clean up more newline generation. 2016-11-02 17:27:17 -07:00
Natalie Weizenbaum
d096be56f8 Don't write extra trailing newlines. 2016-11-02 17:18:39 -07:00
Natalie Weizenbaum
e0fd5ea65c Fix a bug where names were broken through imports.
Closes #20
Closes #8
2016-11-01 14:43:46 -07:00
Natalie Weizenbaum
17e29fd06e Fix a bug in setting global variables.
Setting a global variable would clobber any local variables with the
same name.
2016-11-01 14:43:46 -07:00
Natalie Weizenbaum
a032e2a737 Properly return indexed names. 2016-10-31 18:07:36 -07:00
Kaelig Deloumeau-Prigent
ab8e0e4d37 Update usage to show the accurate command 2016-10-31 14:51:25 -07:00
Natalie Weizenbaum
12397aa8c7 Fix nested declarations in SCSS. 2016-10-30 15:06:32 -07:00
Natalie Weizenbaum
845c1b8d8d Add missing scanner.expectDone() calls. 2016-10-30 14:54:09 -07:00
Natalie Weizenbaum
c9bbcbda3a Fix initial media query parsing. 2016-10-30 14:53:58 -07:00
Natalie Weizenbaum
2db0c08b29 Fix more specificity bugs. 2016-10-30 14:45:45 -07:00
Natalie Weizenbaum
468f21f4eb Track selector sources as specificity. 2016-10-30 14:19:27 -07:00
Natalie Weizenbaum
5ccec2b5be Fix another bug in _groupSelectors. 2016-10-30 13:59:43 -07:00
Natalie Weizenbaum
e28b399c0b Fix an indented syntax parsing bug. 2016-10-30 13:06:23 -07:00
Natalie Weizenbaum
5ad9540e39 Node API: add renderSync(). 2016-10-29 11:25:38 -07:00
Natalie Weizenbaum
423deb5eab Node API: add an info string. 2016-10-29 11:20:47 -07:00
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