Commit Graph

514 Commits

Author SHA1 Message Date
Natalie Weizenbaum
6069708a83 Cache hash codes for Sass strings and numbers
These values are often stored in maps, so caching their hash codes
seems to be net valuable.
2021-10-20 16:36:52 -07:00
Christophe Coevoet
6641459fa2
Improve the error message for invalid default namespaces (#1513) 2021-10-06 10:16:35 -07:00
Jennifer Thakar
4f67c4dd30
Fix RecursiveAstVisitor (#1525)
`visitCalculationExpression` is now properly implemented.

This also adds concrete test classes that extend `RecursiveAstVisitor`
and `RecursiveStatementVisitor` to ensure similar issues are avoided in
the future whenever new AST nodes are added.
2021-10-05 18:36:45 -07:00
Natalie Weizenbaum
4b0f008760
Add support for the new JS logger API (#1515)
See sass/sass#2979
2021-10-05 20:57:44 +00:00
Natalie Weizenbaum
fb180ff9f5 Update to the latest linter package and fix lints 2021-10-05 13:21:19 -07:00
Natalie Weizenbaum
8d5d586e7c
Fix interpolation lookahead for calculations (#1500)
Closes #1499
2021-09-22 07:12:16 +00:00
Natalie Weizenbaum
825fa5c7df
Add back support for min/max calculations (#1485)
See sass/sass#3142
See sass/sass#3150
2021-09-20 23:58:47 +00:00
Natalie Weizenbaum
52ef3c6ef1
Preserve parentheses around var() functions in calculations (#1489)
See sass/sass#3153
See sass/sass#3154
2021-09-16 21:58:19 +00:00
Natalie Weizenbaum
30cc9dcbfb
Allow extra whitespace in min, max, and calculations (#1483)
Closes sass/dart-sass#1444
2021-09-14 23:03:06 +00:00
Natalie Weizenbaum
7de7ab405d
Fix a parenthesizing bug in calculations (#1482)
See sass/sass#3147
See sass/sass#3148
2021-09-14 22:42:28 +00:00
Natalie Weizenbaum
5e4bc45574
Allow the + operator for calculations and strings (#1481)
See sass/sass#3142
See sass/sass#3146
2021-09-14 22:25:08 +00:00
Natalie Weizenbaum
fe46cbba1e
Improve unification of :host and :host-context (#1471)
See sass/sass#3134
2021-09-14 21:53:01 +00:00
Natalie Weizenbaum
cbdcd58676
Emergency fix: Temporarily drop support for min/max calculations (#1477)
See sass/sass#3142
See sass/sass-spec#1702
2021-09-14 08:45:05 +00:00
Natalie Weizenbaum
bb0867270c
Add support for first-class calc() (#1452)
See sass/sass#818
2021-09-13 23:16:40 +00:00
Natalie Weizenbaum
33dab9ff7e
Fix the leftover-configuration check for @forward ... with (#1472)
This check was previously checking whether *any* variables were left
in this configuration, which could include variables that were adopted
from outer configurations. This threw invalid errors when that outer
configuration would have been satisfied by another variable (or
forward) later in the file.

Closes sass/sass#1460
2021-09-09 23:51:26 +00:00
Jennifer Thakar
1672178f64
Fix @at-root bug for common case of built-in use (#1469)
`@at-root` should now work properly in a nested import as long as the
only `@use` or `@forward` rules present are for built-in modules.

This is a partial but not complete fix for #1347. It's a bit hacky to
special case built-in modules here, but since they represent the only
real legitimate case for using this combination of features, it lets us
fix the bug for this case and avoid the bordering-on-infeasible work of
fixing this for user-defined modules.
2021-09-09 16:00:05 -07:00
Adam Hooper
ad886d97d6
Expose charset option in Node API [closes #567] (#1446)
Co-authored-by: Natalie Weizenbaum <nweiz@google.com>
2021-09-02 00:48:11 +00:00
Natalie Weizenbaum
1615bb17d0
Add SassApiColor to the "Value" dartdoc category (#1455) 2021-08-31 00:14:14 +00:00
Natalie Weizenbaum
57ea9f1a90
Expose getters indicating which color fields a color has calculated (#1453)
These getters are only available through the sass_api package. This
will allow the Sass embedded compiler to more explicitly send the
color information it has on hand.
2021-08-28 07:37:39 +00:00
Jennifer Thakar
d419df7d9c
Add shared interfaces for various AST nodes (#1445)
Fixes #1401 and #1414.

Adds `Dependency`, `SassDeclaration`, and `SassReference` interfaces,
which expose some getters that multiple AST nodes have in common with a
single type.

These also add getters for common subspans (URL, name, and namespace) to
the interfaces.
2021-08-23 16:33:36 -07:00
Natalie Weizenbaum
67db39c352
Add a SassArgumentList.keywordsWithoutMarking getter (#1427)
This is necessary to properly forward argument list keywords to the
embedded compiler.

See sass/embedded-protocol#27
2021-08-16 23:59:03 +00:00
Natalie Weizenbaum
390deed540
Merge pull request #1438 from sass/extend-bugs
Fix a couple bugs with @extend
2021-08-16 22:01:32 +00:00
Natalie Weizenbaum
2a03907e95
Emit escape sequences for private-use characters in expanded mode (#1430) 2021-08-16 21:52:35 +00:00
Natalie Weizenbaum
707db69de8 Fix a couple bugs with @extend
We weren't properly merging multiple @extend rules that were added to
an upstream module at the same time, so some of them weren't being
marked as satisfied.

Closes #1393
2021-08-11 18:41:50 -07:00
Natalie Weizenbaum
e0e132e0fe
Allow numbers with leading . in plain-CSS min/max (#1432)
Closes #1394
2021-08-11 22:27:58 +00:00
Natalie Weizenbaum
d29acb0974
Don't try to force custom URL schemes to file paths in the Node API (#1434)
When an error occurred in a stylesheet loaded by a custom importer
with a custom URL scheme, the Node error wrapper tried to convert that
URL into a path and ended up crashing.

Closes #1138
2021-08-11 21:03:14 +00:00
Natalie Weizenbaum
3eca26584d
Fix a single-backslash attribute selector (#1428)
Closes #1423
2021-08-11 01:52:17 +00:00
Natalie Weizenbaum
5f4994e487
Fix backslash-escapes in url()s (#1429)
Closes #1399
2021-08-11 00:02:23 +00:00
Natalie Weizenbaum
54d16c0ac4
Allow if to be used as an unquoted string (#1431)
Closes #1405
2021-08-10 23:34:36 +00:00
Natalie Weizenbaum
2beec3696c
Strip CRLFs from error comments (#1433)
Closes #1392
2021-08-10 22:59:35 +00:00
Natalie Weizenbaum
682cbbf6c0 Add a header to changelog 2021-08-09 17:04:53 -07:00
Natalie Weizenbaum
4fd0472f2e Fix a crash in the Node importer
When a path was returned at the same time as a file's contents, it was
interpreted as a URL without first being translated to one. This
crashed for absolute Windows paths.

Closes #1410
2021-08-09 16:47:45 -07:00
Natalie Weizenbaum
c07f46175b
Add a tag to the correct repo with the correct authentication (#1420) 2021-08-04 01:26:34 +00:00
Natalie Weizenbaum
1157d3c327
Manually resolve symlinks before deploying sub-packages (#1419) 2021-08-03 23:26:27 +00:00
Natalie Weizenbaum
667e9f40e6
Fix an unmodifiable map modification in the sass_api deploy (#1418) 2021-08-03 20:33:54 +00:00
Natalie Weizenbaum
2a0b6d05ef
Fix publishing errors for sass_api (#1417)
This needs a LICENSE of its own and it can't have dependency_overrides
when publishing.
2021-08-02 23:58:34 +00:00
Natalie Weizenbaum
3af6562497
Try cutting a release of sass_api (#1416) 2021-08-02 21:45:46 +00:00
Natalie Weizenbaum
9f3133a179 Fix dartdoc errors
Also fix a couple places where our external API wasn't quite right.
2021-07-30 15:14:17 -07:00
Natalie Weizenbaum
a28c656049 Add dartdoc categories to Sass APIs 2021-07-30 14:29:51 -07:00
Natalie Weizenbaum
5d65c11403 Code review changes 2021-07-23 13:37:49 -07:00
Natalie Weizenbaum
43b69e60a0 Change CompileResult.includedFiles to CompileResult.includedUrls
Rather than constructing this explicitly to match Node Sass's API, we
construct it with canonical URLs and convert it into the format
expected by the Node Sass API (a mix of paths and URLs) in the
compatibility layer.
2021-07-13 18:08:18 -07:00
Natalie Weizenbaum
a10d7c677d
Use @internal to cordon off internal-only Value APIs (#1379)
Lays the groundwork for #236

Note that we need to add a bunch of explicit @nodoc annotations to
work around dart-lang/dartdoc#2418 and dart-lang/dartdoc#2419.
2021-06-24 17:32:57 -07:00
Natalie Weizenbaum
655fcfc950
Properly support selector lists for selector.extend() (#1378)
Closes #1301
2021-06-24 14:50:16 -07:00
Natalie Weizenbaum
83343d7046
Fix a race condition in meta.load-css() (#1376)
We weren't properly awaiting a call to CssStylesheet.accept(), which
meant that it could try to continue doing work asynchronously in the
wrong context.

Closes #1318
2021-06-23 17:12:18 -07:00
Natalie Weizenbaum
713b7cc31e
Properly register pseudos' child selectors in ExtensionStore (#1374)
Closes #1297
2021-06-23 16:43:08 -07:00
Natalie Weizenbaum
19bd45e738
Error for Unicode ranges that have too many ?s after digits (#1373)
Closes #1280
2021-06-22 17:24:22 -07:00
Natalie Weizenbaum
629881212c
Fix root-relative @import URLs as passed to importers (#1371)
Closes #1137
2021-06-22 17:22:29 -07:00
Natalie Weizenbaum
5a9dd9161b
Fix a variable-assignment bug (#1372)
Closes #1250
2021-06-22 15:10:32 -07:00
Natalie Weizenbaum
0f68d7a511
Fix quiet deps when loaded through an @import of a file without @use (#1362)
Closes #1360
2021-06-15 13:37:48 -07:00
Natalie Weizenbaum
7e371666f4
Add quietDeps and verbose to the JS API (#1353)
To support this, we now run Node-Sass-style relative loads outside of
the Node importer. This allows the evaluator to check whether a
relative load succeeded and use that to determine whether the
stylesheet counts as a dependency.

See sass/sass#3065
2021-06-14 17:41:56 -07:00