diff --git a/CHANGELOG.md b/CHANGELOG.md index a8cf63b6..9d411238 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## 1.22.9 + +* Include argument names when reporting range errors and selector parse errors. + +* Avoid double `Error:` headers when reporting selector parse errors. + +* Clarify the error message when the wrong number of positional arguments are + passed along with a named argument. + ## 1.22.8 ### JavaScript API diff --git a/lib/src/ast/sass/argument_declaration.dart b/lib/src/ast/sass/argument_declaration.dart index 21ea6b68..bc8dd89c 100644 --- a/lib/src/ast/sass/argument_declaration.dart +++ b/lib/src/ast/sass/argument_declaration.dart @@ -81,6 +81,7 @@ class ArgumentDeclaration implements SassNode { if (positional > arguments.length) { throw SassScriptException("Only ${arguments.length} " + "${names.isEmpty ? '' : 'positional '}" "${pluralize('argument', arguments.length)} allowed, but " "${positional} ${pluralize('was', positional, plural: 'were')} " "passed."); diff --git a/lib/src/value.dart b/lib/src/value.dart index 120f3eb5..82875ece 100644 --- a/lib/src/value.dart +++ b/lib/src/value.dart @@ -120,7 +120,7 @@ abstract class Value implements ext.Value { } on SassFormatException catch (error) { // TODO(nweiz): colorize this if we're running in an environment where // that works. - throw _exception(error.toString()); + throw _exception(error.toString().replaceFirst("Error: ", ""), name); } } @@ -140,7 +140,7 @@ abstract class Value implements ext.Value { } on SassFormatException catch (error) { // TODO(nweiz): colorize this if we're running in an environment where // that works. - throw _exception(error.toString()); + throw _exception(error.toString().replaceFirst("Error: ", ""), name); } } @@ -161,7 +161,7 @@ abstract class Value implements ext.Value { } on SassFormatException catch (error) { // TODO(nweiz): colorize this if we're running in an environment where // that works. - throw _exception(error.toString()); + throw _exception(error.toString().replaceFirst("Error: ", ""), name); } } diff --git a/lib/src/value/number.dart b/lib/src/value/number.dart index dfbcb246..0a5e99f9 100644 --- a/lib/src/value/number.dart +++ b/lib/src/value/number.dart @@ -209,7 +209,8 @@ class SassNumber extends Value implements ext.SassNumber { var result = fuzzyCheckRange(value, min, max); if (result != null) return result; throw _exception( - "Expected $this to be within $min$unitString and $max$unitString."); + "Expected $this to be within $min$unitString and $max$unitString.", + name); } bool hasUnit(String unit) => diff --git a/lib/src/visitor/serialize.dart b/lib/src/visitor/serialize.dart index 8451fc28..34ce654a 100644 --- a/lib/src/visitor/serialize.dart +++ b/lib/src/visitor/serialize.dart @@ -562,7 +562,7 @@ class _SerializeVisitor _buffer.writeCharCode($lbracket); } else if (value.asList.isEmpty) { if (!_inspect) { - throw SassScriptException("() isn't a valid CSS value"); + throw SassScriptException("() isn't a valid CSS value."); } _buffer.write("()"); return; diff --git a/pubspec.yaml b/pubspec.yaml index 6636b6f7..c53ff476 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: sass -version: 1.22.8 +version: 1.22.9-dev description: A Sass implementation in Dart. author: Dart Team homepage: https://github.com/sass/dart-sass