Fixed
- EasyMotion dimming not visible — the shade overlay (
.vim-motions-easymotion-shade) was invisible because it was a child of the zero-size absolutely-positioned wrapper div. The shade is now appended directly toscrollDOMas a sibling of the wrapper, so itsright: 0; bottom: 0resolves against the full editor dimensions. (#6) - EasyMotion labels overlapping on dense text — labels for adjacent targets (e.g.,
<leader><leader>won closely spaced words) now stack vertically instead of rendering on top of each other.renderLabels()tracks placed label bounding boxes and offsets new labels below any overlap. (#6) - EasyMotion labels on hidden text in Live Preview — word-start targets inside hidden markdown syntax (e.g., the URL portion of
[text](url)) no longer receive labels.filterVisibleTargets()deduplicates targets whosecoordsAtPos()resolves to the same pixel position, which occurs when multiple document offsets map to the boundary of a replaced decoration. (#6) - EasyMotion dimming setting required app reload — toggling Settings → Vim Motions → EasyMotion dimming now takes effect immediately. The
dimmingparameter was changed from a capturedbooleanto a() => booleangetter, so the shade state is read at motion invocation time instead of registration time.
Added
- Label font size setting — configurable font size for EasyMotion and hint mode labels via Settings → Vim Motions → Label font size (10–20px slider, default: 14). EasyMotion collision detection scales proportionally with the configured size.
- Label color customization via CSS — label colors are now overridable via CSS custom properties. EasyMotion:
--vim-motions-em-bg,--vim-motions-em-fg. Hint mode:--vim-motions-hint-bg,--vim-motions-hint-fg. All default to--text-accent/--text-on-accent.
Full Changelog: 0.17.0...0.18.0