# `MingaEditor.Session.HoverObservation`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_editor/session/hover_observation.ex#L1)

Transient pointer observation used for Cmd/Ctrl-hover navigation.

The link and the cell that produced it change together. Keeping both in one
value prevents a stale deduplication cell from outliving its visible link.
This value is frame-local and is never included in tab snapshots.

# `link`

```elixir
@type link() :: {position(), position()} | nil
```

# `position`

```elixir
@type position() :: {non_neg_integer(), non_neg_integer()}
```

A buffer position as `{line, byte_col}`.

# `t`

```elixir
@type t() :: %MingaEditor.Session.HoverObservation{
  cell: position() | nil,
  link: link()
}
```

# `at_cell?`

```elixir
@spec at_cell?(t(), position()) :: boolean()
```

Returns whether this observation was resolved at the given cell.

# `clear`

```elixir
@spec clear(t()) :: t()
```

Clears the complete transient hover observation.

# `observe_cell`

```elixir
@spec observe_cell(t(), position() | nil) :: t()
```

Records the pointer cell that produced the current observation.

# `observe_link`

```elixir
@spec observe_link(t(), link()) :: t()
```

Records the currently resolved navigation link.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
