diff --git a/.changeset/shy-bikes-prove.md b/.changeset/shy-bikes-prove.md new file mode 100644 index 00000000..95abf768 --- /dev/null +++ b/.changeset/shy-bikes-prove.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/repl': patch +--- + +show warnings only for the selected file diff --git a/packages/repl/src/lib/CodeMirror.svelte b/packages/repl/src/lib/CodeMirror.svelte index 00c0c414..a1f408a5 100644 --- a/packages/repl/src/lib/CodeMirror.svelte +++ b/packages/repl/src/lib/CodeMirror.svelte @@ -230,6 +230,7 @@ svelte: () => import('@replit/codemirror-lang-svelte').then((m) => m.svelte()) }, lint: diagnostics, + lintOptions: { delay: 200 }, autocomplete, extensions: [watcher], instanceStore: cmInstance diff --git a/packages/repl/src/lib/Input/ModuleEditor.svelte b/packages/repl/src/lib/Input/ModuleEditor.svelte index 547889a8..25c91538 100644 --- a/packages/repl/src/lib/Input/ModuleEditor.svelte +++ b/packages/repl/src/lib/Input/ModuleEditor.svelte @@ -24,38 +24,34 @@ $: filename = $selected?.name + '.' + $selected?.type; - let error_file = ''; - $: if ($bundle) { error = $bundle?.error; warnings = $bundle?.warnings ?? []; - if (error || warnings.length > 1) { - error_file = error?.filename ?? warnings[0]?.filename; - } } async function diagnostics() { await $bundling; - return $selected && error_file === get_full_filename($selected) - ? /** @type {import('@codemirror/lint').Diagnostic[]} */ ([ - ...(error - ? [ - { - from: error.start.character, - to: error.end.character, - severity: 'error', - message: error.message - } - ] - : []), - ...warnings.map((warning) => ({ - from: warning.start.character, - to: warning.end.character, - severity: 'warning', - message: warning.message - })) - ]) - : []; + + return /** @type {import('@codemirror/lint').Diagnostic[]} */ ([ + ...($selected && error?.filename === get_full_filename($selected) + ? [ + { + from: error.start.character, + to: error.end.character, + severity: 'error', + message: error.message + } + ] + : []), + ...warnings + .filter((warning) => $selected && warning.filename === get_full_filename($selected)) + .map((warning) => ({ + from: warning.start.character, + to: warning.end.character, + severity: 'warning', + message: warning.message + })) + ]); } diff --git a/packages/repl/src/routes/+page.svelte b/packages/repl/src/routes/+page.svelte index bd260e2f..6d81afcb 100644 --- a/packages/repl/src/routes/+page.svelte +++ b/packages/repl/src/routes/+page.svelte @@ -13,22 +13,22 @@ name: 'App', type: 'svelte', source: - ` - let name = 'world'; - - -

Hello {name}!

- - -` + '\n\timport Timeline from './Timeline.svelte'\n\timport Sequence from './Sequence.svelte'\n\t\n\timport { tweened } from 'svelte/motion';\n\n\n\n\t\n\t\t
\n\t\t\t

\n\t\t\t\tHello Svelte\n\t\t\t

\n\t\t\t

\n\t\t\t\tThis is a test.\n\t\t\t

\n\t\t
\n\t
\n
\n' + }, + { + name: 'Sequence', + type: 'svelte', + source: + '\n\timport { onMount, onDestroy, getContext } from 'svelte';\n\t\n\tconst timeline = getContext('x:timeline');\n\t\n\t$: ({ width, height, fps } = $timeline);\n\t\n\texport let duration = fps * 10;\n\texport let start = 0;\n\texport let track = 1;\n\t\n\t$: frame = $timeline.frame - start;\n\n\n{#if timeline}\n\t
\n\t\t\n\t
\n{/if}\n' }, { - name: 'B', + name: 'Timeline', type: 'svelte', - source: ` -` + source: '' } ] });