Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 09:09

Added

  • animfx.setup(config) registers effects declaratively — a table mapping
    events to an effect or a list of them. Re-running replaces its own
    registrations without affecting on() calls.
  • effects.range_flash highlights an arbitrary column-aware range, falling
    back to the '[ / '] change marks; clamps out-of-range coordinates.
  • animfx.sources — curated, opt-in adapters that emit animfx events from
    Neovim happenings. First source: on_yank() (emits "Yank" with the yanked
    range). Combined with range_flash, this reimplements yank highlighting
    through the registry (see examples/yank-highlight.lua).
  • effects.blink (flash a line on/off N times) and effects.virt_badge
    (end-of-line virtual-text label that clears after a duration).
  • animfx.enable() / animfx.disable() / animfx.is_enabled() global switch.
    Effects are also skipped during macro record/replay by default
    (vim.g.animfx_animate_in_macros opts back in).
  • More sources: sources.on_diagnostic() (emits "Diagnostic" with
    { buf, count }) and sources.on_search() (wraps n/N, emits "Search"
    with the landing position).
  • effects.shake — jitters a floating cue at the cursor (best-effort error
    feedback; Neovim can't move a non-floating window).
  • sources.on_harpoon() — the motivating integration: emits "HarpoonAdd"
    when a file is added to a harpoon list (v2), no-op if harpoon is absent.
    See examples/harpoon-add.lua. Verified against real harpoon in the
    integration suite.