Commit Graph

516 Commits

Author SHA1 Message Date
Natalie Weizenbaum
bc5e3c4f8f
Properly parse CR, CR LF, and FF as newlines everywhere (#626)
Closes #623
2019-03-18 16:50:23 -07:00
Natalie Weizenbaum
62bce0c5b9
Properly stringify slash-separated numbers in operations (#612)
Closes #607
2019-03-07 18:14:12 -08:00
Natalie Weizenbaum
e84c8b1995
Don't put style rules inside empty @keyframes rules (#613)
Closes #611
2019-03-07 17:04:30 -08:00
Natalie Weizenbaum
8ab9ce1141
Deprecate assignment to non-existent global variables (#601)
See #600
See sass/sass#2606
2019-02-21 15:16:52 -08:00
Natalie Weizenbaum
149bf85b4d
Explicitly mark classes as sealed (#602) 2019-02-20 16:39:46 -08:00
Natalie Weizenbaum
26401fb135
Fix an attribute selector quoting bug (#599)
Closes #598
2019-02-20 13:38:21 -08:00
Natalie Weizenbaum
7ca989a4f7
Produce a better error for invalid function contents (#587)
Closes #584
2019-02-04 13:14:25 -08:00
Natalie Weizenbaum
a81017275a
Produce a better error message for unclosed style rules (#586)
Closes #577
2019-02-01 17:21:15 -08:00
Natalie Weizenbaum
b102dc496a
Allow individual directories to be passed on the command-line (#581)
Closes #543
2019-02-01 14:59:58 -08:00
Natalie Weizenbaum
cd3b82e2be
Fix a check for adjusting parse errors (#582) 2019-02-01 14:55:34 -08:00
Natalie Weizenbaum
e8ac314f56
Support dart-lang/source_span#25 (#566)
This adds a --no-unicode option to disable Unicode span rendering,
decouples repl highlighting from SourceSpan.highlight, and updates
tests to work with the new error highlighting.

It also tightly scopes source spans for statements with children.
Previously, source spans for these nodes extended all the way through
any whitespace that followed the node. This led to messy-looking
multiline span highlights with dart-lang/source_span#25.

Now, StylesheetParser.children doesn't consume trailing whitespace.
Instead, we add a helper method StylesheetParser._withChildren that
parses children, creates the appropriate span, and then consumes the
trailing whitespace.
2019-01-28 20:42:32 -05:00
Natalie Weizenbaum
9fdf5612ea
Fix a performance bug in BinaryOperatorExpression.span (#569)
Previously, evaluator called BinaryOperationExpression.span for each
binary operation it evaluated, which in turn called spanForList() to
create a span covering both child expressions. spanForList() then
called .span for both the left and right child operations *twice*,
leading to exponential behavior.

This is now avoided in three complementary ways:

1. The evaluator avoids eagerly calling AstNode.span, instead keeping
   the original AstNode until the span itself needs to be accessed.
   This means that a span will only be accessed when an error actually
   occurs, and then only one operation's span will be accessed.

2. BinaryOperationExpression.span now iterates through any child
   operations before calling their .span methods, so it only performs
   O(1) allocations.

3. spanForList() now only calls each AstNode.span once.
2019-01-17 18:04:14 -05:00
Natalie Weizenbaum
55ebe56d3c
Add support for new special number strings (#556)
See sass/sass#2584
2019-01-09 15:50:04 -05:00
Natalie Weizenbaum
32be730b6e
Emit tab characters as \9 (#553)
Closes #552
2019-01-04 14:20:28 -05:00
Natalie Weizenbaum
18c0cbdaea
Match Node Sass's this.includePaths behavior for importers (#551)
On Windows, paths are separated with a semicolon rather than a colon.

Closes #549
2019-01-03 10:48:20 -08:00
Natalie Weizenbaum
759b587364
Don't omit units in numbers in compressed mode (#545)
See https://github.com/sass/sass/issues/649#issuecomment-447033060
2019-01-03 10:47:54 -08:00
Natalie Weizenbaum
06b9fbd812
Merge branch 'master' into windows-path-separator 2018-12-26 14:17:45 -08:00
Natalie Weizenbaum
23968148d0 Properly use ImportResult.sourceMapUrl for source map URLs
This also uses data: URLs to refer to stylesheets from stdin in source
maps.
2018-12-20 16:22:43 -08:00
Natalie Weizenbaum
519bfa3d6b Match Node Sass's this.includePaths behavior for importers
On Windows, paths are separated with a semicolon rather than a colon.

Closes #549
2018-12-17 15:30:17 -08:00
Natalie Weizenbaum
94fd7e6e50
Match Ruby Sass's number behavior (#544)
This introduces two changes:

1. It changes the epsilon within which two numbers are considered
   equal to be an order of magnitude smaller than the numeric
   precision. Ruby Sass has always done this, and Dart Sass should
   have but did not until now.

2. It parses the component of a number after the decimal point using
   double.parse() to avoid accumulating floating point errors.
2018-12-13 15:27:08 -08:00
Natalie Weizenbaum
f3db1d6a66
Properly merge "all and" media queries (#539)
Closes #537
2018-12-10 13:13:19 -08:00
Natalie Weizenbaum
dad8491035
Make types.String.prototype.setValue() de-quote a string (#535)
Closes #513
2018-12-06 15:06:32 -08:00
Natalie Weizenbaum
aa52cf1474
Always add quotes to attribute selector values that begin with -- (#529)
Closes #527
2018-11-16 13:51:36 -08:00
Natalie Weizenbaum
50efdabcce Add support for CSS Color Level 4 rgb() and hsl() syntax
Closes #497
2018-11-12 16:33:54 -08:00
Natalie Weizenbaum
13006e9902
Clamp saturation and lightness rather than throwing errors (#521)
This matches Ruby Sass's behavior.
2018-11-12 14:25:40 -08:00
Natalie Weizenbaum
4520b8b53b
Don't trim escaped whitespace (#523)
Related to sass/ruby-sass#96
2018-11-08 11:54:59 -08:00
Natalie Weizenbaum
1206761da4
Add support for passing arguments to @content blocks (#518)
Closes #498
2018-11-05 16:53:43 -08:00
Natalie Weizenbaum
77563be056
Add support for SASS_PATH (#514)
Closes #512
2018-11-05 15:24:14 -08:00
Natalie Weizenbaum
bf71ca359d
Add support for interpolation in at-rule names (#509)
Closes #496
2018-11-01 14:31:46 -07:00
Natalie Weizenbaum
9e18b7e95b
Always include the error location in JS error messages (#511)
Always include the error location in JS error messages

I was trying to match Node Sass's behavior by having Error.formatted
property have more detail than Error.message, but our errors rely on
source snippets for context so this just ended up making them
confusing.
2018-10-31 18:13:04 -07:00
Natalie Weizenbaum
6bdb49a9d5
Properly escape U+0009 CHARACTER TABULATION in unquoted strings (#504) 2018-10-18 18:50:03 -07:00
Natalie Weizenbaum
a25bbb3fc7
Add a ParenthesizedExpression class (#503)
This allows us to accurately track the source spans for parenthesized
expressions, which in turn allows us to print accurate error
indications.

Adding a new class for this more accurately represents the structure
of the expression, but it also involves an extra allocation during
parsing and an extra level of nesting during evaluation which could
have a small but real performance impact.

We could alternatively add a package-internal setter for
Expression.span, and update the source span for parenthesized
expressions after they're initially parsed. However, this has its own
downsides: it adds complexity and mutability to the object model; and
many expression classes currently use lazily-generated spans, so
making them settable would require adding extra slots on those
classes.

I decided to go with the extra class because it only adds overhead
when parentheses are actually used in practice, as opposed to adding
overhead to every list/color/etc. The runtime overhead is also likely
to be mitigated if at any point we add a constant-folding step.
2018-10-17 16:52:32 -07:00
Natalie Weizenbaum
453d89bad5
Treat :before et al a pseudo-elements (#495)
Closes #484
2018-10-12 14:35:49 -07:00
Jen Thakar
9a1f322d7f Remove space around combinators in compressed mode (#494)
Complex selectors like "a > b" will now be output as "a>b" in
compressed mode.
2018-10-11 18:03:09 -07:00
Natalie Weizenbaum
0595ac3e71
Fix an import-resolution bug (#488)
When a stylesheet is imported, the parsed stylesheet object is cached
based on its canonical URL. However, the stylesheet.span.sourceUrl was
based on the text of the import that was used to load that stylesheet.
The idea was to make the source URL in stack traces look nicer, but it
meant that relative URLs could be resolved based on the old importer's
URL before being sent to the new importer, which caused bugs.

Now stylesheet.span.sourceUrl is always the canonical URL of the
stylesheet, and thus safe to cache. We then use the import cache to
convert the canonical URL to a human-friendly URL at the point at
which we generate stack traces.

This also deprecates support for relative canonical URLs. The
semantics of these URLs were always unclear, and with the new change
in import internals the old behavior doesn't make much sense. It's
preserved for backwards-compatibility, but deprecated.
2018-10-11 15:06:26 -07:00
Natalie Weizenbaum
123bc1ff68
Properly escape U+001F INFORMATION SEPARATOR ONE in unquoted strings (#487)
See sass/sass-spec#1288
2018-10-10 15:49:43 -07:00
Natalie Weizenbaum
0620ccc19a
Fix @debug on stdin (#493) 2018-10-10 15:05:23 -07:00
Natalie Weizenbaum
ff3cea5312
Properly parse escaped digits at the beginning of identifiers (#486)
See sass/sass#1542
Closes sass/dart-sass#485
2018-09-26 21:01:46 -04:00
Natalie Weizenbaum
b3c9e7b00f
Fix a parsing bug involving nested content blocks (#483)
Closes #482
2018-09-26 14:32:55 -04:00
Progracientist
a6164217df Prettify URIs (#481)
Closes #464
2018-09-26 13:39:49 -04:00
Natalie Weizenbaum
89b86be5e8
Enable full alpha hex support (#478)
Closes #371
2018-09-19 16:03:32 -04:00
Natalie Weizenbaum
918a3fedf2
Pass --omit-implicit-checks to dart2js in release mode (#473)
Substantially addresses #113
2018-09-11 14:39:47 -07:00
Natalie Weizenbaum
1a5eb2a2e3
Fix embedding source maps with non-ASCII characters (#471)
Closes #457
2018-09-11 12:13:43 -07:00
Natalie Weizenbaum
ede9c81e0b
Properly adjust source maps when prepending encoding information (#470)
Closes #469
2018-09-10 15:38:30 -07:00
Natalie Weizenbaum
edf3370cd9
Parse :nth-child() selectors with extra whitespace (#467)
As a side effect of the new parse, this also removes extra whitespace
from :nth-child() selectors.

Closes #465
2018-09-05 15:28:26 -07:00
Natalie Weizenbaum
048b17495e
Support browser hacks in plain CSS mode (#468)
Closes #466
2018-09-05 14:31:59 -07:00
Natalie Weizenbaum
9e5ef91f22
Add support for the single-equals operator in plain CSS (#463)
Closes #462
2018-08-31 18:15:23 -06:00
Natalie Weizenbaum
997e068499
Add support for extending selector lists (#455)
Closes #452
2018-08-17 13:32:10 -07:00
Natalie Weizenbaum
677d781c52
Fix a crash with nested media rules (#454)
Closes #453
2018-08-17 12:34:31 -07:00
Natalie Weizenbaum
c5dff3e841
Remove the source map comment from the JS blob we release (#448)
See bazelbuild/rules_sass#44
2018-08-15 13:28:02 -07:00
Natalie Weizenbaum
874ee0b076
Expose the SassException class publicly (#446) 2018-08-14 12:58:47 -07:00
Natalie Weizenbaum
d1bb4a0d6d
Allow a BOM at the beginning of a document (#441)
This was only breaking in JS because apparently dart:io automatically
filters out BOMs.

Closes #437
2018-08-10 16:31:15 -07:00
Natalie Weizenbaum
0f7f9e69a7
Add support for plain CSS imports (#436)
Closes #424
2018-08-10 15:58:15 -07:00
Natalie Weizenbaum
534256a381 Merge branch '1.10.x' into master 2018-08-09 17:56:30 -07:00
Natalie Weizenbaum
511319a3b4 Declare support for test 1.0.0
Closes sass/homebrew-sass#10
2018-08-09 15:16:56 -07:00
Natalie Weizenbaum
98fa94e3e7 Merge branch '1.10.x' 2018-08-03 15:42:23 -07:00
Natalie Weizenbaum
8bffd52729
Don't hang after a syntax error in --watch (#435)
Closes #401
2018-08-03 15:38:16 -07:00
Natalie Weizenbaum
89ce44aac4
Pass --no-preview-dart-2 to the Chocolatey script (#434)
I missed this in c462b82.

Closes #433
2018-08-03 14:24:53 -07:00
Natalie Weizenbaum
3b2f20d71b
Add support for plain CSS min() and max() (#428)
See sass/sass#2378
Closes #426
2018-08-03 12:50:56 -07:00
Natalie Weizenbaum
d00b30a1af Merge tag '1.10.2' 2018-08-02 17:11:55 -07:00
Natalie Weizenbaum
5ee73e2ead Release 1.10.2
This is just intended to trigger a new Chocolatey build.

Closes #413
2018-08-02 16:28:07 -07:00
Natalie Weizenbaum
468e3b0270
Normalize escapes in identifiers (#427)
Closes #425
See sass/sass#1542
2018-07-26 16:21:02 -07:00
Natalie Weizenbaum
313b939ed8
Add support for range-form media queries (#423)
See sass/sass#1864
2018-07-25 15:48:24 -07:00
Natalie Weizenbaum
e1750216ee Don't crash when passing includePaths with importer
Closes #412
2018-07-23 16:20:06 -07:00
Natalie Weizenbaum
45da11dad5
Preserve nested media queries when they can't be merged (#410)
See sass/sass#1831
2018-07-18 12:12:17 -07:00
Natalie Weizenbaum
f740e97e05
Fix a typo in an error message (#411) 2018-07-18 12:11:24 -07:00
Natalie Weizenbaum
02781130b8
Give the dummy Node.js FileSystemException a usable toString() (#407)
Closes #406
2018-07-12 19:26:21 -07:00
Jenny Messerly
6d3cd8dd06 Fix --watch option with node on Mac OS (#402)
Closes #399
2018-07-11 13:15:55 -07:00
Natalie Weizenbaum
df7c1030cf
Don't emit ANSI codes to Windows terminals that don't support them (#403)
These codes *could* be supported on all Windows terminals, but
dart-lang/sdk#28614 means that they won't actually be recognized.

Partially addresses #395
2018-07-10 15:59:16 -07:00
Natalie Weizenbaum
9bb272dcff
Support Node Sass's sass.types.Color(argb) constructor (#398)
Closes #397
2018-07-03 17:09:54 -07:00
Natalie Weizenbaum
96c46a242e
Add a --stop-on-error flag (#391)
Closes #264
2018-06-29 18:12:36 -07:00
Natalie Weizenbaum
425305725b
Add a --poll option (#390)
Partially addresses #264.
2018-06-28 18:20:28 -07:00
Natalie Weizenbaum
cd0211c2ab
Fix the Chocolatey version of the Dart SDK (#389)
Dev SDKs changed from 2.0.0.XX-dev to 2.0.0.XX-dev-Y.
2018-06-27 17:42:07 -07:00
Natalie Weizenbaum
39eeeb51ef
Add a missing _ignoreErrors() call in StylesheetGraph (#377)
We weren't ignoring errors when reloading a file, which meant that
syntax errors would get surfaced in the wrong place and cause a crash.

Closes #359
2018-06-26 20:10:46 -07:00
Natalie Weizenbaum
e95d57ce25
Fix @-moz-document parsing and add deprecation warnings (#379)
Partially addresses #378
Closes #372
2018-06-26 17:11:25 -07:00
Natalie Weizenbaum
3b6730369b
Pin the version of Dart that gets published (#382)
This version was set separately than the version we test against, for
some reason.

Closes #380
2018-06-25 13:14:36 -07:00
Natalie Weizenbaum
023bf91745
Add deprecation warnings for hex alpha colors (#367)
Also support unambiguous hex alpha colors.

Closes #360
See sass/sass#2179
2018-06-21 17:47:06 -07:00
Natalie Weizenbaum
87e568faa4
Fix a bug where we were setting the base URL of stylesheets wrong (#370)
Closes #369
2018-06-20 17:43:40 -07:00
Natalie Weizenbaum
fdbccc8625
Ensure that source map comment URLs are relative to the CSS file (#365)
Closes #364
2018-06-19 17:50:37 -07:00
Natalie Weizenbaum
c97e36409d
Support the latest version of cli_repl (#362) 2018-06-19 13:44:52 -07:00
Natalie Weizenbaum
b949f9fe72 Use Dart 2 constants 2018-06-15 13:59:28 -07:00
Natalie Weizenbaum
7e19b9e7d6 Update the pubspec and changelog
[skip ci]
2018-06-13 18:28:52 -07:00
Natalie Weizenbaum
594f936c54 Fix an edge-case bug
If a non-partial stylesheet is next to a partial with the same name,
canonicalizing the source URL would fail. We don't really need to
canonicalize that URL anyway, though, since it's only used for import
loops and such a loop will reload and rerun the entrypoint anyway.
2018-06-08 20:28:38 -04:00
Natalie Weizenbaum
0a21fb7063 Make sure --update surfaces failures properly 2018-06-08 20:28:38 -04:00
Natalie Weizenbaum
e2266ded68
Produce better errors when expected tokens are missing (#344) 2018-06-01 20:56:12 -04:00
Natalie Weizenbaum
224dc91792
Forbid empty custom properties (#343) 2018-05-31 20:39:33 -04:00
Natalie Weizenbaum
c26903e30e
Don't consider drive separators to be path-separating colons (#342)
Closes #340
2018-05-31 20:38:45 -04:00
Natalie Weizenbaum
942d1e4099
Error out on ambiguous imports (#339)
Closes #335
2018-05-30 21:03:23 -04:00
Natalie Weizenbaum
920a79b408 Pubspec and changelog
[skip ci]
2018-05-30 19:15:06 -04:00
Natalie Weizenbaum
d4655f22bd
Fix an Importer-calling bug (#338)
We were resolving URLs relative to the canonical URL rather than the
original URL, which broke importers for which those were different,
like the package importer.

Closes #334
2018-05-30 17:47:37 -04:00
Natalie Weizenbaum
ac8c01a595 Add an --update flag
Partially addresses #264
2018-05-28 16:58:09 -04:00
Natalie Weizenbaum
17d3c1ae63 Add Importer.modificationTime() 2018-05-28 16:57:56 -04:00
Natalie Weizenbaum
8007892075
Improve handling of invalid semicolons in the indented syntax (#330)
This improves the error message and fixes a bug where semicolons were
allowed after declarations.
2018-05-24 19:15:56 -04:00
Natalie Weizenbaum
7c26959156
Node API: generate a source map even when outFile isn't set (#331)
Contrary to documentation, Node Sass generates a source map when
outFile is unset as long as sourceMap is a string.
2018-05-24 18:42:16 -04:00
Natalie Weizenbaum
d68acf9ac2
Support compiling entire directories at once (#324)
Partially addresses #264
2018-05-22 23:06:33 +01:00
Natalie Weizenbaum
1450c241c6 Support input:output syntax for compiling multiple files at once
Partially addresses #264
2018-05-20 20:57:33 +01:00
Natalie Weizenbaum
2d72f1cdca
Add support for @elseif (#317)
Closes #316
2018-05-03 17:12:40 -07:00
Natalie Weizenbaum
b5fd1409ce
Fix relative imports through relative load paths in the Node API (#315)
Closes #314
2018-05-02 17:04:36 -07:00
Natalie Weizenbaum
6a117905ab
Fix a crash when printing warnings through the Node API (#311)
Closes #307
2018-04-25 17:47:29 -07:00
Natalie Weizenbaum
50b820aed3 Add CHANGELOG entries for source map CLI support
See #2

[skip ci]
2018-04-25 17:10:02 -07:00
Natalie Weizenbaum
a1f56d783d Add a CHANGELOG entry for mbullington/node_preamble.dart#6
This doesn't actually require any changes in Dart Sass itself, but it
was producing behavior that was visible to our users (#301) so it
makes sense to include it in the CHANGELOG for the version that will
include the fix.

[skip ci]
2018-04-25 17:06:37 -07:00
Natalie Weizenbaum
7a882bd3be Fix a relative import bug in the JS API
Closes #284
2018-04-21 00:50:23 -07:00
Natalie Weizenbaum
fd19bc85b6
Add a JavaScript API for source map generation (#302)
Partially addresses #2
2018-04-20 17:56:00 -07:00
Natalie Weizenbaum
9ea001598a
Add a Dart API for source map generation (#299)
Partially addresses #2
2018-04-19 16:51:20 -07:00
Natalie Weizenbaum
b23993ea66
Always emit units for non-length/angle 0 values (#300)
Closes #297
2018-04-19 15:20:17 -07:00
Natalie Weizenbaum
6fd0f6d6e3
Improve the error message for extending compound selectors. (#294)
Closes #286
2018-04-14 16:02:53 -07:00
Natalie Weizenbaum
2e42c749a0
Properly parse #{$var} -#{$var} (#292)
Closes #290
2018-04-12 17:41:21 -07:00
Natalie Weizenbaum
a31251fdc9
Create a directory for CSS output if necessary (#291)
Closes #288
2018-04-12 16:40:53 -07:00
Natalie Weizenbaum
5cce76b6d4
Use constants from dart2_constants (#282) 2018-04-04 15:49:07 -07:00
Natalie Weizenbaum
dd61b8cf1d Merge tag '1.1.0'
This will be released as 1.1.1, since 1.1.0 accidentally didn't
include 880c914.
2018-03-27 14:20:45 -07:00
Natalie Weizenbaum
880c91444e
Add support for "sass input.scss output.css" (#275)
Closes #274
2018-03-27 13:45:03 -07:00
Natalie Weizenbaum
d316fe19b9 Use $0 rather than $BASH_SOURCE for POSIX-compatibility
Closes #276
2018-03-27 13:35:45 -07:00
Natalie Weizenbaum
7b2dfef289 Release 1.0.0 2018-03-26 12:49:52 -07:00
Natalie Weizenbaum
74cfe29814
Remove the deprecated render() function (#270) 2018-03-26 12:45:43 -07:00
Natalie Weizenbaum
6608a46d1e Make errors subtypes of Error 2018-03-23 15:22:10 -07:00
Natalie Weizenbaum
0e5a707ab4 Support both data and path options for the Node API 2018-03-23 14:55:28 -07:00
Natalie Weizenbaum
4c293f3ca7
Allow "!" in custom property values (#266)
Closes #260
2018-03-22 17:07:19 -07:00
Natalie Weizenbaum
2dae4f61f3 Release 1.0.0-rc.1 2018-03-16 16:23:57 -07:00
Natalie Weizenbaum
0cc3777b46
Fix media query merging (#258)
Closes #244
2018-03-16 16:22:56 -07:00
Natalie Weizenbaum
65229499b3
Name the standalone executable sass rather than dart-sass (#257) 2018-03-16 14:38:46 -07:00
Natalie Weizenbaum
9d3c8cdc1e
Allow mod 0 (#255)
Closes #254
2018-03-16 13:39:21 -07:00
Natalie Weizenbaum
7fd8f7d6c2
Add an --indented flag (#253)
Closes #105
2018-03-11 23:07:31 -07:00
Natalie Weizenbaum
b93fcdb5ed Add a --quiet flag to the CLI
Partially addresses #105
2018-03-11 21:05:34 -07:00
Natalie Weizenbaum
4c6494c288 Add a Logger class to control how output is emitted 2018-03-11 21:05:34 -07:00
Natalie Weizenbaum
da32588af1
Add support for the --load-path flag (#251)
Partially addresses #105
2018-03-11 20:39:00 -07:00
Natalie Weizenbaum
07b02174e0
Represent DynamicImport.url as a String (#250)
This works around dart-lang/sdk#32490. We need to preserve the leading
"./" to match Node Sass's behavior.

Closes #246
2018-03-11 15:46:59 -07:00
John Harvey
e63b8e1b40 Add support for _index files (#220)
See sass/sass#690
2018-03-09 14:46:46 -08:00
Natalie Weizenbaum
aba4ab1421
Properly parse multi-line selectors in the indented syntax (#243)
Closes #235
Closes #237
2018-03-02 17:49:57 -08:00
Natalie Weizenbaum
b7d4384a5c
Preserve whitespace after and in media queries in compressed mode (#242)
Closes #239
2018-03-02 14:15:38 -08:00
Natalie Weizenbaum
7d89ad0c1c
Properly handle hard tabs in the indented syntax (#241)
Closes #87
2018-03-01 18:59:58 -08:00
Natalie Weizenbaum
5c750cf7fb Preserve empty lines in indented loud comments 2018-02-23 17:56:54 -08:00
Natalie Weizenbaum
b404e32c46 Fix /* formatting to match Ruby Sass 2018-02-23 17:56:52 -08:00
Natalie Weizenbaum
7454a1b57f Don't add */ for indented syntax loud comments that already have it 2018-02-23 17:01:32 -08:00
Natalie Weizenbaum
bacc380d5b Don't deadlock on /* comments in the indented syntax
Closes #238
2018-02-23 16:29:23 -08:00
Natalie Weizenbaum
25d90e5525 Release 1.0.0-beta.5.2 2018-02-03 17:03:05 -08:00
Natalie Weizenbaum
4db5d49048 Pubspec and CHANGELOG 2018-02-03 13:25:07 -08:00
Natalie Weizenbaum
a6a32a0827
Merge pull request #223 from sass/node-functions
Add support for the Node Sass custom function API
2018-02-02 14:21:57 -08:00
Natalie Weizenbaum
5a1bfaebbf Add support for the Node Sass custom function API
Closes #10
Closes #12
2018-01-30 11:14:42 -08:00
Natalie Weizenbaum
2f5069e6a8 Add a changelog entry 2018-01-29 14:30:34 -08:00
Natalie Weizenbaum
9240f372aa Fix a unit division bug 2018-01-23 12:51:33 -08:00
Natalie Weizenbaum
921e1fa204 Fix a unit optimization bug 2018-01-23 12:45:25 -08:00
Natalie Weizenbaum
ac0ab00120 Emit compressed output 2018-01-21 13:15:55 -08:00
Natalie Weizenbaum
e5af175b55 Fix a couple number hashing bugs 2018-01-13 00:34:54 -08:00
Natalie Weizenbaum
b5a838c9c5 Improve callable and value documentation
This documentation now targets external users, since these are part of
the public API.
2018-01-13 00:34:54 -08:00
Natalie Weizenbaum
aa3c765b10
Allow var() in place of multiple arguments to color functions (#208)
See sass/sass#2440
2018-01-12 11:43:36 -08:00
Natalie Weizenbaum
75776ca062
Emit a warning for && (#207)
See sass/sass#2429
2018-01-03 19:12:53 -08:00
Natalie Weizenbaum
c49e037e34
Fix round() for negative numbers (#205)
See sass/sass#2409
2017-12-15 15:11:32 -08:00
Natalie Weizenbaum
fa29248955 Support unquoted imports in the indented syntax
Closes #202
2017-12-08 15:38:08 -08:00
Natalie Weizenbaum
9c241eafb9 Add a changelog entry for asynchronous importers 2017-12-01 14:30:31 -08:00
Natalie Weizenbaum
74400dc4a4 Add asynchronous versions of several evaluation-related libraries
This allows us to support asynchronous importers and, eventually,
functions without breaking synchronous support. The copies were made
manually, but the eventual plan is to auto-generate the synchronous
versions by stripping all asynchrony from the async versions.

See #9
2017-12-01 14:29:11 -08:00
Natalie Weizenbaum
2cb325a3df
Fix a crash when extending :not(...) into :not(:not(...)) (#192)
Closes #191
2017-11-16 16:25:19 -08:00
Natalie Weizenbaum
cede973af2 Add a CHANGELOG entry for Node Sass importers 2017-11-03 14:55:30 -07:00
Natalie Weizenbaum
a003e5c31f Expose a Dart API for importers
Closes #172
2017-10-12 21:54:58 -07:00
Natalie Weizenbaum
35f879abde Don't crash on a fully-interpolated CSS variable name (#177)
Closes #176
2017-10-04 15:20:15 -07:00
Natalie Weizenbaum
dbeefd939f Properly parse numbers with exponents (#173) 2017-09-29 15:31:21 -07:00
Natalie Weizenbaum
9f85a4dc34 Default --color to true when using a terminal 2017-07-13 16:11:24 -07:00
Natalie Weizenbaum
a1c0f41180 Add changelog entries. 2017-07-09 18:31:05 -07:00
Natalie Weizenbaum
74cb974455 Support includePaths in the JS API (#162)
Closes #7
2017-07-07 14:50:12 -07:00
Natalie Weizenbaum
8f836df66c Add support for the data option to the JS API (#159)
Also add renderString to the Dart API.

Partially addresses #7
2017-07-07 00:57:10 -07:00
Natalie Weizenbaum
b5157905f4 Emit transparent colors in rgba format (#157)
Closes #1782
2017-07-06 17:49:03 -07:00
Natalie Weizenbaum
5d574f9923 Add support for ::slotted() (#156)
See sass/sass#2266
2017-07-05 16:00:20 -07:00
Sam Rawlins
7d92f2c1ad Support lineFeed in the Node API (#153) 2017-06-15 15:19:26 -07:00
Natalie Weizenbaum
bd912aee4f Release 1.0.0-beta.1. 2017-06-05 12:50:47 -07:00
Natalie Weizenbaum
e032de83fb Allow \ before a selector in the indented syntax. (#152)
See sass/sass-spec#1136
2017-06-02 18:04:21 -07:00
Natalie Weizenbaum
59e782e4dc Fix rounding behavior. (#147) 2017-05-29 17:07:21 -07:00
Natalie Weizenbaum
0ae7372d75 Allow compound extendees in selector functions. 2017-05-28 16:00:37 -07:00
Natalie Weizenbaum
b4d1d95889 Don't use partially-extended selectors as parents. 2017-05-28 15:54:18 -07:00
Natalie Weizenbaum
c63e62abe9 Add changelog entries. 2017-05-27 17:47:34 -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
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
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
4bc2770333 Compile JS with --minify. 2017-02-16 17:37:31 -08:00
Natalie Weizenbaum
f00c6c8c5d Compile JS with --trust-type-annotations. 2017-02-16 17:05:01 -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
Natalie Weizenbaum
d9ef7d00c4 Move a changelog entry into 1.0.0-alpha.9. 2017-02-03 14:23:29 -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
45cfed063f Support slash-separated plain CSS arguments. 2017-01-26 20:09:06 -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
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
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
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
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
016fe59d1f Forbid extending across media queries. 2017-01-13 01:53:04 -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
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
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
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
17521b5a3b Update the pubspec and changelog. 2016-12-29 12:33:12 -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
ade384b4f5 Add a CHANGELOG entry for dp* units.
See c91ace92ab.
2016-12-16 18:22:19 -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
b730e3f85c Support CSS import reordering. (#64) 2016-12-10 15:04:09 -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
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
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
4a592e18eb Add missing changelog entries. 2016-11-14 11:17:03 -08:00
Natalie Weizenbaum
bcd66991f7 Fix parsing of :nth-*-child() selectors. 2016-11-14 11:12:34 -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
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
b41dcfb457 Tag 1.0.0-alpha.3. 2016-11-07 18:49:05 -08: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
e0fd5ea65c Fix a bug where names were broken through imports.
Closes #20
Closes #8
2016-11-01 14:43:46 -07:00
Natalie Weizenbaum
64dc85c80c Tag 1.0.0-alpha.1. 2016-10-31 13:19:10 -07:00
Natalie Weizenbaum
cf28c7ed20 Template files. 2016-08-30 15:51:06 -07:00