From 7bcd33dbe18194e6b286270f0dbba7d3f41ad706 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Fri, 10 Nov 2023 17:50:57 -0500 Subject: [PATCH] Fix diagnostics (#9385) * simplify a whole bunch of stuff * delete more unused stuff * fix diagnostics * prettier --------- Co-authored-by: Rich Harris --- .../src/lib/CodeMirror.svelte | 28 ++---- .../src/lib/Input/ModuleEditor.svelte | 75 +++++++--------- .../src/lib/Output/Compiler.js | 4 +- .../src/lib/Output/Output.svelte | 89 +++++-------------- sites/svelte-5-preview/src/lib/Repl.svelte | 65 ++++++-------- sites/svelte-5-preview/src/lib/types.d.ts | 2 - .../src/lib/workers/compiler/index.js | 31 +++++-- 7 files changed, 107 insertions(+), 187 deletions(-) diff --git a/sites/svelte-5-preview/src/lib/CodeMirror.svelte b/sites/svelte-5-preview/src/lib/CodeMirror.svelte index f926d32f9..6ec16356e 100644 --- a/sites/svelte-5-preview/src/lib/CodeMirror.svelte +++ b/sites/svelte-5-preview/src/lib/CodeMirror.svelte @@ -12,9 +12,6 @@ import Message from './Message.svelte'; import { svelteTheme } from './theme.js'; - /** @type {import('./types').StartOrEnd | null} */ - export let errorLoc = null; - /** @type {import('@codemirror/lint').LintSource | undefined} */ export let diagnostics = undefined; @@ -171,9 +168,6 @@ let marked = false; - /** @type {number | null}*/ - let error_line = null; - let updating_externally = false; /** @type {import('@codemirror/state').Extension[]} */ @@ -181,27 +175,15 @@ let cursor_pos = 0; - $: { - if ($cmInstance.view) { - fulfil_module_editor_ready(); - } + $: if ($cmInstance.view) { + fulfil_module_editor_ready(); } $: if ($cmInstance.view && w && h) resize(); - $: { - if (marked) { - unmarkText(); - marked = false; - } - - if (errorLoc) { - markText({ from: errorLoc.character, to: errorLoc.character + 1, className: 'error-loc' }); - - error_line = errorLoc.line; - } else { - error_line = null; - } + $: if (marked) { + unmarkText(); + marked = false; } const watcher = EditorView.updateListener.of((viewUpdate) => { diff --git a/sites/svelte-5-preview/src/lib/Input/ModuleEditor.svelte b/sites/svelte-5-preview/src/lib/Input/ModuleEditor.svelte index ded9816bd..e4951f041 100644 --- a/sites/svelte-5-preview/src/lib/Input/ModuleEditor.svelte +++ b/sites/svelte-5-preview/src/lib/Input/ModuleEditor.svelte @@ -1,66 +1,51 @@
[]} + diagnostics={() => { + if (error) { + return [ + { + severity: 'error', + from: error.position[0], + to: error.position[1], + message: error.message + } + ]; + } + + if (warnings) { + return warnings.map((warning) => ({ + severity: 'warning', + from: warning.start.character, + to: warning.end.character, + message: warning.message + })); + } + + return []; + }} on:change={handle_change} />
diff --git a/sites/svelte-5-preview/src/lib/Output/Compiler.js b/sites/svelte-5-preview/src/lib/Output/Compiler.js index dcb70df4c..da11186a2 100644 --- a/sites/svelte-5-preview/src/lib/Output/Compiler.js +++ b/sites/svelte-5-preview/src/lib/Output/Compiler.js @@ -40,9 +40,9 @@ export default class Compiler { /** * @param {import('$lib/types').File} file - * @param {import('svelte/types/compiler').CompileOptions} options + * @param {import('svelte/compiler').CompileOptions} options * @param {boolean} return_ast - * @returns + * @returns {Promise} */ compile(file, options, return_ast) { return new Promise((fulfil) => { diff --git a/sites/svelte-5-preview/src/lib/Output/Output.svelte b/sites/svelte-5-preview/src/lib/Output/Output.svelte index 0fec790e8..d1018d6a6 100644 --- a/sites/svelte-5-preview/src/lib/Output/Output.svelte +++ b/sites/svelte-5-preview/src/lib/Output/Output.svelte @@ -1,22 +1,15 @@
- {#if selected_type === 'md'} + {#if selected?.type === 'md'} {:else} @@ -121,7 +76,7 @@
-
+
-
+
{#if embedded} - + {:else}
- +
@@ -150,22 +105,22 @@
-
- +
+
{#if showAst} -
+
{#if $module_editor} - + {/if}
{/if} -
+