From 02520aea48ccccee495bca01704afedb9ae8c72a Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 20 May 2024 22:07:57 -0400 Subject: [PATCH] better tooltips in playground (#11705) * better tooltips in playground * update some tests that a drive-by fix broke --- .../compiler/phases/1-parse/state/element.js | 2 +- .../attribute-unique-binding/_config.js | 2 +- .../attribute-unique-shorthand/_config.js | 2 +- .../samples/attribute-unique/_config.js | 2 +- pnpm-lock.yaml | 16 +-- sites/svelte-5-preview/package.json | 2 +- .../src/lib/CodeMirror.svelte | 135 ++++++++++++++++-- .../src/lib/Input/ModuleEditor.svelte | 22 ++- sites/svelte-5-preview/src/lib/theme.js | 24 +--- 9 files changed, 153 insertions(+), 54 deletions(-) diff --git a/packages/svelte/src/compiler/phases/1-parse/state/element.js b/packages/svelte/src/compiler/phases/1-parse/state/element.js index cb6f24f868..235f64f893 100644 --- a/packages/svelte/src/compiler/phases/1-parse/state/element.js +++ b/packages/svelte/src/compiler/phases/1-parse/state/element.js @@ -217,7 +217,7 @@ export default function tag(parser) { while ((attribute = read(parser))) { if (attribute.type === 'Attribute' || attribute.type === 'BindDirective') { if (unique_names.includes(attribute.name)) { - e.attribute_duplicate(attribute.start); + e.attribute_duplicate(attribute); // is allowed } else if (attribute.name !== 'this') { unique_names.push(attribute.name); diff --git a/packages/svelte/tests/compiler-errors/samples/attribute-unique-binding/_config.js b/packages/svelte/tests/compiler-errors/samples/attribute-unique-binding/_config.js index 8995f44a3f..a32893bab1 100644 --- a/packages/svelte/tests/compiler-errors/samples/attribute-unique-binding/_config.js +++ b/packages/svelte/tests/compiler-errors/samples/attribute-unique-binding/_config.js @@ -4,6 +4,6 @@ export default test({ error: { code: 'attribute_duplicate', message: 'Attributes need to be unique', - position: [17, 17] + position: [17, 25] } }); diff --git a/packages/svelte/tests/compiler-errors/samples/attribute-unique-shorthand/_config.js b/packages/svelte/tests/compiler-errors/samples/attribute-unique-shorthand/_config.js index 8995f44a3f..51b367edc1 100644 --- a/packages/svelte/tests/compiler-errors/samples/attribute-unique-shorthand/_config.js +++ b/packages/svelte/tests/compiler-errors/samples/attribute-unique-shorthand/_config.js @@ -4,6 +4,6 @@ export default test({ error: { code: 'attribute_duplicate', message: 'Attributes need to be unique', - position: [17, 17] + position: [17, 24] } }); diff --git a/packages/svelte/tests/compiler-errors/samples/attribute-unique/_config.js b/packages/svelte/tests/compiler-errors/samples/attribute-unique/_config.js index 8995f44a3f..ecdb54018d 100644 --- a/packages/svelte/tests/compiler-errors/samples/attribute-unique/_config.js +++ b/packages/svelte/tests/compiler-errors/samples/attribute-unique/_config.js @@ -4,6 +4,6 @@ export default test({ error: { code: 'attribute_duplicate', message: 'Attributes need to be unique', - position: [17, 17] + position: [17, 28] } }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9ff6ad1c2..3eef183e05 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -223,8 +223,8 @@ importers: specifier: ^6.0.0 version: 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0) '@rich_harris/svelte-split-pane': - specifier: ^1.1.2 - version: 1.1.2(svelte@packages+svelte) + specifier: ^1.1.3 + version: 1.1.3(svelte@packages+svelte) '@rollup/browser': specifier: ^3.28.0 version: 3.29.4 @@ -2320,16 +2320,16 @@ packages: '@resvg/resvg-js-win32-x64-msvc': 2.6.0 dev: true - /@rich_harris/svelte-split-pane@1.1.1(svelte@4.2.9): - resolution: {integrity: sha512-y2RRLyrN6DCeIgwA423aAIv/T5JqQeOl2XogBQ/21DvA2IF7oyrLUtXMxmQL2va2NFdeJO6MDx6nDX5X7kau7A==} + /@rich_harris/svelte-split-pane@1.1.2(svelte@4.2.9): + resolution: {integrity: sha512-O601UlgGzrn6Nva7uLAF25h63wvrI2rxDh5KTEXd0pdTP7LetHR/rqgi8jyPIgRDCL86eoopEdC3ejOOQoWGWQ==} peerDependencies: - svelte: ^3.54.0 + svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 dependencies: svelte: 4.2.9 dev: false - /@rich_harris/svelte-split-pane@1.1.2(svelte@packages+svelte): - resolution: {integrity: sha512-O601UlgGzrn6Nva7uLAF25h63wvrI2rxDh5KTEXd0pdTP7LetHR/rqgi8jyPIgRDCL86eoopEdC3ejOOQoWGWQ==} + /@rich_harris/svelte-split-pane@1.1.3(svelte@packages+svelte): + resolution: {integrity: sha512-eziKez1ncDfLqJQsViwLG2rYNfMEa3pYBKFUBfNTChgT5lUnofm5IDHxupAKklKvRpTXCVhQXb1MxLUfj5UgFQ==} peerDependencies: svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 dependencies: @@ -2739,7 +2739,7 @@ packages: '@neocodemirror/svelte': 0.0.15(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0) '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0) '@replit/codemirror-vim': 6.1.0(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0) - '@rich_harris/svelte-split-pane': 1.1.1(svelte@4.2.9) + '@rich_harris/svelte-split-pane': 1.1.2(svelte@4.2.9) '@rollup/browser': 3.29.4 '@sveltejs/site-kit': 5.2.2(@sveltejs/kit@2.4.3)(svelte@4.2.9) acorn: 8.11.3 diff --git a/sites/svelte-5-preview/package.json b/sites/svelte-5-preview/package.json index 137cb17a4e..8325e66a87 100644 --- a/sites/svelte-5-preview/package.json +++ b/sites/svelte-5-preview/package.json @@ -46,7 +46,7 @@ "@lezer/highlight": "^1.1.6", "@neocodemirror/svelte": "0.0.15", "@replit/codemirror-lang-svelte": "^6.0.0", - "@rich_harris/svelte-split-pane": "^1.1.2", + "@rich_harris/svelte-split-pane": "^1.1.3", "@rollup/browser": "^3.28.0", "acorn": "^8.10.0", "codemirror": "^6.0.1", diff --git a/sites/svelte-5-preview/src/lib/CodeMirror.svelte b/sites/svelte-5-preview/src/lib/CodeMirror.svelte index 07432235e0..9abde98261 100644 --- a/sites/svelte-5-preview/src/lib/CodeMirror.svelte +++ b/sites/svelte-5-preview/src/lib/CodeMirror.svelte @@ -246,6 +246,8 @@