From 3c457644fe3431fe9a22e40127ef28b44f00fc4b Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 24 Apr 2024 19:36:10 -0400 Subject: [PATCH] more --- .../compile-errors/{css.md => style.md} | 32 +- packages/svelte/src/compiler/errors.js | 315 +++++++++--------- .../src/compiler/phases/1-parse/read/style.js | 11 +- .../phases/2-analyze/css/css-analyze.js | 18 +- .../css-global-block-combinator/_config.js | 2 +- .../css-global-block-declaration/_config.js | 2 +- .../css-global-block-modifier/_config.js | 2 +- .../css-global-block-multiple/_config.js | 2 +- .../compiler-errors/samples/css/_config.js | 2 +- .../samples/style-unclosed/_config.js | 2 +- .../errors.json | 2 +- .../errors.json | 2 +- .../errors.json | 2 +- .../errors.json | 2 +- .../errors.json | 2 +- .../errors.json | 2 +- .../errors.json | 2 +- .../errors.json | 2 +- .../errors.json | 2 +- .../css-invalid-global-placement/errors.json | 2 +- .../css-invalid-global-selector-2/errors.json | 2 +- .../css-invalid-global-selector-3/errors.json | 2 +- .../css-invalid-global-selector-4/errors.json | 2 +- .../css-invalid-global-selector-5/errors.json | 2 +- .../css-invalid-global-selector-6/errors.json | 2 +- .../errors.json | 2 +- .../css-invalid-global-selector/errors.json | 2 +- .../errors.json | 2 +- .../invalid-empty-css-declaration/errors.json | 2 +- 29 files changed, 207 insertions(+), 219 deletions(-) rename packages/svelte/messages/compile-errors/{css.md => style.md} (60%) diff --git a/packages/svelte/messages/compile-errors/css.md b/packages/svelte/messages/compile-errors/style.md similarity index 60% rename from packages/svelte/messages/compile-errors/css.md rename to packages/svelte/messages/compile-errors/style.md index 9b4a2bdf82..c23b6cac76 100644 --- a/packages/svelte/messages/compile-errors/css.md +++ b/packages/svelte/messages/compile-errors/style.md @@ -1,51 +1,47 @@ -## invalid_css_declaration +## css_empty_declaration > Declaration cannot be empty -## invalid_css_empty_declaration +## css_expected_identifier -> Declaration cannot be empty +> Expected a valid CSS identifier -## invalid_css_global_block_combinator +## css_global_block_invalid_combinator > A :global {...} block cannot follow a %name% combinator -## invalid_css_global_block_declaration +## css_global_block_invalid_declaration > A :global {...} block can only contain rules, not declarations -## invalid_css_global_block_list +## css_global_block_invalid_list > A :global {...} block cannot be part of a selector list with more than one item -## invalid_css_global_block_modifier +## css_global_block_invalid_modifier > A :global {...} block cannot modify an existing selector -## invalid_css_global_placement +## css_global_invalid_placement > :global(...) can be at the start or end of a selector sequence, but not in the middle -## invalid_css_global_selector +## css_global_invalid_selector > :global(...) must contain exactly one selector -## invalid_css_global_selector_list +## css_global_invalid_selector_list > :global(...) must not contain type or universal selectors when used in a compound selector -## invalid_css_identifier +## css_nesting_selector_invalid_placement -> Expected a valid CSS identifier +> Nesting selectors can only be used inside a rule -## invalid_css_selector +## css_selector_invalid > Invalid selector -## invalid_css_type_selector_placement +## css_type_selector_invalid_placement > :global(...) must not be followed with a type selector - -## invalid_nesting_selector - -> Nesting selectors can only be used inside a rule diff --git a/packages/svelte/src/compiler/errors.js b/packages/svelte/src/compiler/errors.js index 0b38afc349..3d58df2133 100644 --- a/packages/svelte/src/compiler/errors.js +++ b/packages/svelte/src/compiler/errors.js @@ -57,441 +57,432 @@ function e(node, code, message) { } /** - * Declaration cannot be empty - * @param {null | number | NodeLike} node - * @returns {never} - */ -export function invalid_css_declaration(node) { - e(node, "invalid_css_declaration", "Declaration cannot be empty"); -} - -/** - * Declaration cannot be empty + * Invalid compiler option: %details% * @param {null | number | NodeLike} node + * @param {string} details * @returns {never} */ -export function invalid_css_empty_declaration(node) { - e(node, "invalid_css_empty_declaration", "Declaration cannot be empty"); +export function options_invalid_value(node, details) { + e(node, "options_invalid_value", `Invalid compiler option: ${details}`); } /** - * A :global {...} block cannot follow a %name% combinator + * Invalid compiler option: %details% * @param {null | number | NodeLike} node - * @param {string} name + * @param {string} details * @returns {never} */ -export function invalid_css_global_block_combinator(node, name) { - e(node, "invalid_css_global_block_combinator", `A :global {...} block cannot follow a ${name} combinator`); +export function options_removed(node, details) { + e(node, "options_removed", `Invalid compiler option: ${details}`); } /** - * A :global {...} block can only contain rules, not declarations + * Unrecognised compiler option %keypath% * @param {null | number | NodeLike} node + * @param {string} keypath * @returns {never} */ -export function invalid_css_global_block_declaration(node) { - e(node, "invalid_css_global_block_declaration", "A :global {...} block can only contain rules, not declarations"); +export function options_unrecognised(node, keypath) { + e(node, "options_unrecognised", `Unrecognised compiler option ${keypath}`); } /** - * A :global {...} block cannot be part of a selector list with more than one item + * `$bindable()` can only be used inside a `$props()` declaration * @param {null | number | NodeLike} node * @returns {never} */ -export function invalid_css_global_block_list(node) { - e(node, "invalid_css_global_block_list", "A :global {...} block cannot be part of a selector list with more than one item"); +export function bindable_invalid_location(node) { + e(node, "bindable_invalid_location", "`$bindable()` can only be used inside a `$props()` declaration"); } /** - * A :global {...} block cannot modify an existing selector + * Cannot assign to %thing% * @param {null | number | NodeLike} node + * @param {string} thing * @returns {never} */ -export function invalid_css_global_block_modifier(node) { - e(node, "invalid_css_global_block_modifier", "A :global {...} block cannot modify an existing selector"); +export function constant_assignment(node, thing) { + e(node, "constant_assignment", `Cannot assign to ${thing}`); } /** - * :global(...) can be at the start or end of a selector sequence, but not in the middle + * Cannot bind to %thing% * @param {null | number | NodeLike} node + * @param {string} thing * @returns {never} */ -export function invalid_css_global_placement(node) { - e(node, "invalid_css_global_placement", ":global(...) can be at the start or end of a selector sequence, but not in the middle"); +export function constant_binding(node, thing) { + e(node, "constant_binding", `Cannot bind to ${thing}`); } /** - * :global(...) must contain exactly one selector + * `%name%` has already been declared * @param {null | number | NodeLike} node + * @param {string} name * @returns {never} */ -export function invalid_css_global_selector(node) { - e(node, "invalid_css_global_selector", ":global(...) must contain exactly one selector"); +export function declaration_duplicate(node, name) { + e(node, "declaration_duplicate", `\`${name}\` has already been declared`); } /** - * :global(...) must not contain type or universal selectors when used in a compound selector + * Cannot declare same variable name which is imported inside `