Commit Graph

603 Commits

Author SHA1 Message Date
Natalie Weizenbaum
9cfbf79f47 Check extend usage after the fact.
This means that extensions that match but fail to unify are valid, but
we think that's okay; see sass/sass#2250.
2017-05-27 17:47:34 -07:00
Natalie Weizenbaum
9ded7e9e68 Use Maps rather than Expandos in Extender.
This seems to be substantially faster, at least on the VM.
2017-05-27 17:47:34 -07:00
Natalie Weizenbaum
2f1fbcde69 Extend compound selectors in parallel.
Rather than extending each selector individually and unifying them with
the un-extended rest, this extends everything in one step and unifies in
the next.
2017-05-27 17:47:34 -07:00
Natalie Weizenbaum
0e7ec951c3 Fix universal selector unification.
See sass/sass#2247
2017-05-27 17:47:34 -07:00
Natalie Weizenbaum
5a9b11084b Track the extender in the ExtendState.
Also rename it Extension.
2017-05-27 17:47:34 -07:00
Natalie Weizenbaum
fe286487bd Track extenders by complex selector.
This allows us to share more logic if selector lists overlap.
2017-05-27 17:47:34 -07:00
Natalie Weizenbaum
4173ffc901 Factor out _maybeExtendPseudo from _extendCompound. 2017-05-27 17:47:34 -07:00
Natalie Weizenbaum
454171d7a0 Clean up _extendComplex by removing a variable. 2017-05-27 17:47:34 -07:00
Natalie Weizenbaum
c006fd8f14 Choose color names in alphabetical order. (#144) 2017-05-27 17:44:43 -07:00
Natalie Weizenbaum
4243535941 Update the formatter version. 2017-05-27 17:18:13 -07:00
Sam Rawlins
3b6f5ec3a0 Add a separator character to ListSeparator (#133) 2017-05-25 12:56:12 -07:00
Natalie Weizenbaum
61da3ec6b7 Disallow all top-level declarations and extend. (#141)
We were previously allowing declarations and extend in control
directives at the top level of documents, as long as those documents
were only ever imported in a nested context.
2017-05-25 12:18:57 -07:00
Natalie Weizenbaum
d4db75a8f9 Merge pull request #140 from sass/fixes
Fix a number of small bugs.
2017-05-19 18:59:17 -07:00
Natalie Weizenbaum
b3a00edec1 Properly parse unary operators after commas.
Closes #138
2017-05-18 18:13:33 -07:00
Natalie Weizenbaum
a4a2a26464 Allow /***/ in selectors.
Closes #135
2017-05-18 17:56:20 -07:00
Natalie Weizenbaum
372ef02aa6 Fix a string inspection crash.
This was being triggered for parse errors, because we inspect the
selector expression when we generate the error.

Closes #134
2017-05-18 17:39:47 -07:00
Natalie Weizenbaum
e840bd0927 Support "url" as an identifier name.
Closes #132
2017-05-18 17:38:54 -07:00
Natalie Weizenbaum
42786fd6cf Allow Parser.debug() to take any value. 2017-05-18 17:27:31 -07:00
Natalie Weizenbaum
b8c52743f6 Fix analysis errors. 2017-05-18 17:11:32 -07:00
Natalie Weizenbaum
7248cf0e27 Use real generic method syntax. 2017-05-18 17:11:32 -07:00
Natalie Weizenbaum
0556665f64 Fix @supports (not ...). (#125) 2017-05-18 17:05:58 -07:00
Natalie Weizenbaum
7182ea2fad Merge branch 'master' into fixes 2017-02-22 20:50:16 -08:00
Natalie Weizenbaum
716157f4bc Drop support for the reference combinator. (#123) 2017-02-22 20:48:56 -08:00
Natalie Weizenbaum
2f53f85053 Fix another extend edge-case. 2017-02-16 18:41:11 -08:00
Natalie Weizenbaum
7fe9dd8735 Fix hacky combinator unification. 2017-02-16 18:31:06 -08:00
Natalie Weizenbaum
2f86427ab8 Lazily re-compute indices for closures. (#120)
This produces a substantial speedup on Susy's tests.
2017-02-16 15:15:13 -08:00
Natalie Weizenbaum
18f4c1b801 Merge pull request #117 from sass/fixes
Fix more bugs.
2017-02-08 14:25:24 -08:00
Natalie Weizenbaum
89a7888a0e Properly isolate callable environments. 2017-02-04 14:16:29 -08:00
Natalie Weizenbaum
5e4d260c2a Fix a @content bug. 2017-02-04 12:39:23 -08:00
Natalie Weizenbaum
231a85be38 Improve Node file load speed. (#110) 2017-02-04 12:20:34 -08:00
Natalie Weizenbaum
79261fee8e Add boolean short-circuiting. 2017-02-03 17:37:54 -08:00
Natalie Weizenbaum
b32e5f96ce Fix a multi-combinator extend edge case. 2017-02-03 16:49:55 -08:00
Natalie Weizenbaum
73be343be5 Fix a selector pseudo superselector edge case. 2017-02-03 16:15:15 -08:00
Luis Vargas
cfc3a15041 Support package: URLs as a Dart library (#53) 2017-02-03 01:08:06 -08:00
Natalie Weizenbaum
e1c0c95f3a Merge remote-tracking branch 'origin/master' into fixes 2017-02-02 14:48:15 -08:00
Natalie Weizenbaum
35d1af51d1 Update namespace extend per sass/sass#2229. (#106) 2017-01-26 20:12:22 -08:00
Natalie Weizenbaum
c26615386b Reject unknown named parameters. 2017-01-26 20:09:45 -08:00
Natalie Weizenbaum
4b614166ca Fix numbers divided by colors. 2017-01-26 20:08:49 -08:00
Natalie Weizenbaum
56e41b3ad0 Fix some slash division edge cases. 2017-01-15 16:09:27 -08:00
Natalie Weizenbaum
ad622039bd Support backslash CRLF in quoted strings. 2017-01-15 15:53:19 -08:00
Natalie Weizenbaum
54c65c1e8d Pass keyword args through call(). 2017-01-15 15:34:17 -08:00
Natalie Weizenbaum
31cc3fc521 Add a span to call()'s rest arguments. 2017-01-15 15:24:35 -08:00
Natalie Weizenbaum
0000c4a7e9 Detect import loops. 2017-01-15 15:15:46 -08:00
Natalie Weizenbaum
6a4eafe915 Fix attribute selectors with single-char values. 2017-01-15 14:45:05 -08:00
Natalie Weizenbaum
b95880d629 Improve indented syntax error messages. 2017-01-15 14:37:52 -08:00
Natalie Weizenbaum
84d6c07707 Fix not(). 2017-01-15 14:00:25 -08:00
Natalie Weizenbaum
6192dfd1b0 Fix division in @each. 2017-01-15 14:00:25 -08:00
Natalie Weizenbaum
9f25689654 Don't emit loud comments in functions. 2017-01-15 14:00:25 -08:00
Natalie Weizenbaum
04570bf828 Warn about named colors in interpolation. 2017-01-15 12:30:50 -08:00
Natalie Weizenbaum
4c95be3e5b Allow whitespace in indented mixin declarations. 2017-01-14 23:01:29 -08:00
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