Infinite loop (lint hammering server every 2s):
- Add applyingLints ref; set true before clearLintMarks() and
editor.view.dispatch(tr), false after
- onUpdate returns early when applyingLints is true, so applying
marks no longer reschedules a lint check or triggers a save
Popover disappearing before you can interact:
- Render via createPortal(…, document.body) — completely outside the
editor DOM, no stacking context or overflow clipping can interfere
- onMouseDown={e => e.preventDefault()} on the popover prevents the
editor from losing focus before the button click fires
- Removed setLintPopover(null) from the top of runLint — the popover
was being force-closed on every auto-check cycle
Debounce: 1.5 s → 3 s — checks after a genuine pause, not mid-word
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The file is empty.
Description
Languages
JavaScript
74.5%
CSS
24.6%
HTML
0.6%
Dockerfile
0.3%