Resolves mouse screen coordinates to editor targets.
Summary
Types
@type position_result() :: {:position, MingaEditor.Mouse.Target.Buffer.position()} | {:command, term()} | :block_noop | :miss
@type state() :: MingaEditor.State.t()
@type target() :: {:buffer, MingaEditor.Mouse.Target.Buffer.t()} | {:command, term()} | :block_noop | :miss
Functions
@spec buffer_gutter_width(pid() | nil, non_neg_integer()) :: non_neg_integer()
@spec clamp_col_to_line(pid(), non_neg_integer(), non_neg_integer()) :: non_neg_integer()
@spec content_text_width(pid(), non_neg_integer(), pos_integer()) :: pos_integer()
@spec position( state() | nil, pid(), MingaEditor.Window.t() | nil, integer(), non_neg_integer(), non_neg_integer(), {pos_integer(), pos_integer(), non_neg_integer()} ) :: position_result()
@spec scroll_top( MingaEditor.Window.t() | nil, pos_integer(), pos_integer(), non_neg_integer(), pid() ) :: non_neg_integer()