Skip to content

Commit 82c6f3c

Browse files
committed
Add stack trace tooltips to cell errors
1 parent e471777 commit 82c6f3c

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

TODO.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,3 +147,5 @@
147147
- Special keys bar buttons cause active element blur when double tapped on
148148
iOS
149149
- Side-scrolling special keys bar on iOS inserts on pointer up
150+
- Accidentally typing "RC" while typing another formula can cause everything
151+
to hang

src/Cell.svelte

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@
156156
let selected = $derived(globals.selected);
157157
let value = $derived(cell.value);
158158
let errorText = $derived(cell.errorText);
159+
let errorStack = $derived(cell.errorStack);
159160
let style = $derived(cell.style);
160161
let element = $derived(cell.element);
161162
@@ -243,7 +244,7 @@
243244
spellcheck="false"
244245
></textarea>
245246
{:else if errorText != null}
246-
<div class="text error">{errorText}</div>
247+
<div class="text error" title={errorStack}>{errorText}</div>
247248
{:else if element != null}
248249
<div bind:this={innerNode} class="element"></div>
249250
{:else}

src/classes.svelte.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,7 @@ export class Sheet {
488488
$effect(() => {
489489
cell.style = "";
490490
cell.errorText = undefined;
491+
cell.errorStack = undefined;
491492
cell.element = undefined;
492493

493494
// Re-run this effect if rows or columns are added or removed
@@ -562,12 +563,14 @@ export class Sheet {
562563
.catch((e) => {
563564
set(undefined);
564565
cell.errorText = `Error: ${e?.message ?? e}`;
566+
cell.errorStack = e?.stack;
565567
});
566568
},
567569
);
568570
} catch (e) {
569571
if (!(e instanceof ParseError)) {
570572
cell.errorText = `Error: ${e.message}`;
573+
cell.errorStack = e?.stack;
571574
cell.value.rederive([], (_, set) => set(undefined));
572575
} else {
573576
cell.value.rederive([], (_, set) => set(cell.formula));
@@ -680,6 +683,7 @@ export class Cell {
680683
value = $state();
681684
style = $state("");
682685
errorText = $state();
686+
errorStack = $state();
683687
element = $state();
684688
formula = $state();
685689
td = $state();

0 commit comments

Comments
 (0)