Commit Graph

323 Commits

Author SHA1 Message Date
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
3346c7974a
Fix analysis hints (#450) 2018-08-15 12:43:55 -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
8bffd52729
Don't hang after a syntax error in --watch (#435)
Closes #401
2018-08-03 15:38:16 -07:00
Natalie Weizenbaum
13b8ad6d4d Format 2018-07-23 16:57:21 -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
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
Michael R Fairhurst
cd275705cd Fix places awaiting void, for dart 2 (#393) 2018-06-29 13:20:26 -07:00
Natalie Weizenbaum
425305725b
Add a --poll option (#390)
Partially addresses #264.
2018-06-28 18:20:28 -07:00
Natalie Weizenbaum
c462b82102 Run snapshots in Dart 1 mode
Until dart-lang/sdk#33257 is fixed, this ensures that users get as
much performance as possible.
2018-06-27 15:51:16 -07:00
Natalie Weizenbaum
ecc04665cf
Fix a couple more Grinder invocations (#387) 2018-06-27 14:32:44 -07:00
Natalie Weizenbaum
7e6f03fc18
Run the Dart CLI tests from app snapshots on CI (#383)
This substantially speeds up the test time, and once we re-enable Dart
2 support is should work around dart-lang/sdk#33257.
2018-06-27 13:12:16 -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
a87300a1e9 Use camel-case for grinder task names
This also causes Grinder to use hyphen-separated names for them on the
CLI, rather than underscore-separated.
2018-06-25 16:40:26 -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
6693a82f3b
Use the latest test_descriptor features to clean up tests (#366) 2018-06-19 17:50:49 -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
61eea4abd8
Format with the latest formatter version (#363) 2018-06-19 12:46:24 -07:00
Natalie Weizenbaum
c5071ef843 Stop using a deprecated API 2018-06-15 13:59:28 -07:00
Natalie Weizenbaum
c626bf5613 Remove casts that are now unnecessary 2018-06-15 13:59:28 -07:00
Natalie Weizenbaum
b949f9fe72 Use Dart 2 constants 2018-06-15 13:59:28 -07:00
Natalie Weizenbaum
7a2d724cc9 Use of() constructors instead of from() 2018-06-14 16:15:27 -07:00
Natalie Weizenbaum
6ad67a6f28 Remove the workaround for dart-lang/sdk#30098
This un-reverts pull request #320 from sass/remove-path-workaround,
which was reverted by commit 0fb5d25ee2.
2018-06-14 16:15:27 -07:00
Natalie Weizenbaum
f074152f61 Add a tick in a test that's failing on Windows 2018-06-13 16:42:10 -07:00
Natalie Weizenbaum
0519163ae3 Use the standard tick helper rather than a custom sleep 2018-06-13 16:41:29 -07:00
Natalie Weizenbaum
5efa7bf48a Normalize path separators in watch test expectations 2018-06-13 16:41:29 -07:00
Natalie Weizenbaum
6bbb961675 Add a --watch command
Partially addresses #264
2018-06-09 14:13:36 -04:00
Natalie Weizenbaum
3362273c29 Disallow --update and --watch with --interactive 2018-06-09 14:09:20 -04: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
b9e1585cf6
Add a helper function for update tests (#348) 2018-06-07 09:54:18 -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
0fb5d25ee2 Revert "Merge pull request #320 from sass/remove-path-workaround"
This reverts commit 08bfb46f16, reversing
changes made to ad73a91f84.
2018-05-31 14:37:21 -04:00
Natalie Weizenbaum
8435be5f4b Style tweaks 2018-05-30 18:59:49 -04:00
Natalie Weizenbaum
1d7b0aa5ad Merge branch 'master' into jathak-interactive 2018-05-30 18:41:15 -04:00
Natalie Weizenbaum
8e97e66426 Remove unused test/cli_shared.dart
[skip ci]
2018-05-30 18:37:55 -04:00
Natalie Weizenbaum
0c637b2e6a
Split CLI tests into multiple suites (#337) 2018-05-30 18:35:35 -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
Jen Thakar
930f361026 Merge branch 'master' of git://github.com/sass/dart-sass into interactive 2018-05-29 21:33:53 -07:00
Jen Thakar
da44841498 Add TrackingLogger and uses it in --interactive
If a warning or debug message is emitted, and then the line errors,
a simpler error message is output instead of highlighting the bad
input in the original line.
2018-05-29 21:27:36 -07:00
Natalie Weizenbaum
ac8c01a595 Add an --update flag
Partially addresses #264
2018-05-28 16:58:09 -04:00
Natalie Weizenbaum
31c77fb1cc Remove the workaround for dart-lang/sdk#30098 2018-05-28 15:23:47 -04:00
Jen Thakar
eb71e2d5a7 Fix logging and invalid options for --interactive
--interactive now uses the ExecutableOptions' logger, so it respects
the --quiet option.

An invalid option used with --interactive will now be output.
2018-05-26 22:49:13 -07:00
Jen Thakar
6351458f35 Merge branch 'master' of git://github.com/sass/dart-sass into interactive 2018-05-26 21:49:48 -07:00
Jen Thakar
590b2a02c5 Fix bugs in interactive mode
The REPL no longer crashes when syntax errors point after the end of
the input; it also ignores empty lines.
2018-05-26 21:37:18 -07:00
Natalie Weizenbaum
ad73a91f84
Match Node Sass's logic around source map file names (#333)
When sourceMap is a string and outFile is null, Node Sass determines
the source map filename from the input filename.
2018-05-24 19:16:14 -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
a7118824b5 Fix source map path canonicalization
We need to canonicalize rather than normalize to ensure a consistent
output.
2018-05-24 17:21:19 -04:00
Natalie Weizenbaum
d17b3e73fe Normalize source map paths before converting to URLs
This ensures that source map URLs are always consistent on Windows,
where the case may be different from run to run.
2018-05-24 12:21:28 -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
Jen Thakar
6d86b5fbdf Merge branch 'master' of git://github.com/sass/dart-sass into interactive 2018-05-08 10:23:33 -07:00
Jen Thakar
49198f55ed Add proper error logging to --interactive
Errors are now logged w/o the Sass stack trace and with arrows
pointing to the piece of the input that caused the error.

The bad input will also be highlighted in red if color is enabled.

Adds tests for error logging, both with and without color.
2018-05-08 09:54:35 -07:00
Jen Thakar
125b64760b Add usage error for invalid use of --interactive 2018-05-07 23:54:25 -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
5bf7773590 Track variable declarations for source maps
Closes #2
2018-04-25 17:50:24 -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
234aa12e08
Add CLI source map support (#309)
Partially addresses #2
2018-04-25 16:12:37 -07:00
Natalie Weizenbaum
dc8d8a6166
Run Dart Sass in checked mode in tests (#304)
Also fix a checked mode error.
2018-04-23 21:20:38 -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
11f38291f0 Clean up expectations in node_api_test 2018-04-21 00:49:51 -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
Jen Thakar
d262e28603 Add interactive SassScript REPL 2018-04-14 11:40:04 -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
880c91444e
Add support for "sass input.scss output.css" (#275)
Closes #274
2018-03-27 13:45:03 -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
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
Natalie Weizenbaum
b7d4384a5c
Preserve whitespace after and in media queries in compressed mode (#242)
Closes #239
2018-03-02 14:15:38 -08:00
Jen Thakar
90e65c1a93 Fix bug in visitColor for compressed mode
If `value` is not a named color, `name.length` will error.
This checks that `name` is not null before checking the length.
2018-02-03 13:25:07 -08:00
Natalie Weizenbaum
163e99bff2 Be explicit about string quotes in new SassString() 2018-02-02 16:47:54 -08:00
Natalie Weizenbaum
f0e181bf2e Don't run tests that require Dart 2 against stable 2018-02-01 18:21:34 -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
ac0ab00120 Emit compressed output 2018-01-21 13:15:55 -08:00
Natalie Weizenbaum
da2ff6a06d
Fix analysis hints (#215) 2018-01-19 15:26:41 -08:00
Natalie Weizenbaum
123fe55017 Add SassString index helpers
We aren't using these in our own functions because, for
backwards-compatibility, these functions don't throw errors for
invalid indices.
2018-01-14 16:04:46 -08:00
Natalie Weizenbaum
b1b9eca66a
Add tests for SassNumber.valueInRange() (#212) 2018-01-14 15:18:16 -08:00
Natalie Weizenbaum
9d207b13ec
SassNumber.assertIndexFor() -> Value.sassIndexToListIndex() (#211) 2018-01-14 13:38:43 -08:00
Natalie Weizenbaum
ce1cc18c0e Add tests for Value subclasses
Now that these are an exposed part of the API, they need to be tested.
2018-01-13 00:34:54 -08:00
Natalie Weizenbaum
7a4158dafb Fix some tests that were broken on Windows 2017-12-08 01:03:34 -08:00
Natalie Weizenbaum
6a1e6e6d12 Don't run ensureNpmPackage() on Windows under Node 2017-12-07 17:30:08 -08:00
Natalie Weizenbaum
525386e13c Add a missing @TestOn 2017-12-02 14:39:53 -08:00
Natalie Weizenbaum
aa5fd1d060 Add support for the fibers package to speed up render() 2017-12-02 12:39:28 -08:00
Natalie Weizenbaum
0a67d3845f Add a dev dependency on fibers from NPM 2017-12-01 14:36:37 -08:00
Natalie Weizenbaum
7178a91844 Make ensureNpmPackage() resilient to dependency overrides 2017-12-01 14:36:37 -08:00
Natalie Weizenbaum
8272724f42 Add support for async importers to the JS render() function (#196)
Closes #9
2017-12-01 14:29:11 -08:00
Natalie Weizenbaum
0df3463213 Compile asynchronous code to synchronous (#194)
See #9
2017-12-01 14:29:11 -08:00
Natalie Weizenbaum
e0ae8c907c Add synchronous Node importer support
See #9
2017-11-03 12:28:56 -07:00
Natalie Weizenbaum
4e6e04faa5 Add tests for Node importers
These have been validated against node-sass itself, but they aren't
yet run supported by Dart Sass.
2017-11-02 18:12:47 -07:00
Natalie Weizenbaum
530c4244d0 Refactor some Node API testing 2017-10-20 16:56:54 -07:00
Natalie Weizenbaum
a003e5c31f Expose a Dart API for importers
Closes #172
2017-10-12 21:54:58 -07:00
Natalie Weizenbaum
164f532ea2 Remove unused arguments from cli_shared.dart (#181) 2017-10-12 12:03:57 -07:00
Sam Rawlins
97f678a770 Read Sass from stdin (#137)
See #105
2017-10-06 18:59:49 -07:00
Natalie Weizenbaum
10ef04bad6 Fix analysis hints 2017-07-14 18:51:55 -07:00
Natalie Weizenbaum
53a8c553de Add tests. 2017-07-14 16:29:53 -07:00
Natalie Weizenbaum
dfcbf78e7c Fully support the error value for the Node render() functions
Closes #109
2017-07-09 18:18:56 -07:00
Natalie Weizenbaum
c5bf54a41f Move exception-formatting logic into SassException
There was a bunch of custom formatting logic in the executable, which
made it difficult to work with exceptions programatically.
2017-07-09 18:18:56 -07:00
Natalie Weizenbaum
214a2af2e9 Fully support the return value for the Node render() functions (#165)
Closes #11
2017-07-09 14:52:14 -07:00
Natalie Weizenbaum
f1c23e7484 Rename "toCss" to "serialize"
This matches the filename and the name of the visitor.
2017-07-07 17:53:03 -07:00
Natalie Weizenbaum
970755d82e Rename "render" to "compile"
"Render" is a strange term for compilation that kind of got copied
over from Haml and endured due to inertia.
2017-07-07 17:53:03 -07:00
Natalie Weizenbaum
2ff46cb149 Support outputStyle in the JS API (#163)
Closes #8
2017-07-07 16:39:58 -07:00
Natalie Weizenbaum
74cb974455 Support includePaths in the JS API (#162)
Closes #7
2017-07-07 14:50:12 -07:00
Natalie Weizenbaum
f41df9f7bd Add support indentedSyntax to the JS API (#161)
Partially addresses #7
2017-07-07 01:40:15 -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
48ba0e2128 Manually determine the operating system for paths
Works around dart-lang/sdk#30098.
2017-07-06 23:52:43 -07:00
Natalie Weizenbaum
3b36c5a1fb Reformat. 2017-07-06 23:23:04 -07:00
Natalie Weizenbaum
6ed530c895 Test the Node.js API.
Closes #150
2017-07-06 17:39:07 -07:00
Natalie Weizenbaum
6c0f87f0c8 Factor out logic to ensure that the NPM package is compiled 2017-07-06 14:40:45 -07:00
Natalie Weizenbaum
4db551e603 Stop using scheduled_test. (#142) 2017-05-25 14:23:48 -07:00
Luis Vargas
cfc3a15041 Support package: URLs as a Dart library (#53) 2017-02-03 01:08:06 -08:00
Natalie Weizenbaum
8b6548fc61 Add more CLI tests. 2016-12-02 17:39:28 -08:00
Natalie Weizenbaum
e59a172609 Run CLI tests on Travis. 2016-12-02 16:58:23 -08:00
Natalie Weizenbaum
224d9cdb47 Add CLI test files for Dart and Node.
More tests will be added in a future commit.
2016-12-02 16:09:20 -08:00