FSM state for substitute confirm mode (:%s/old/new/gc).
Tracks the list of matches, the current match index, the pattern and replacement strings, the original buffer content, and which matches the user has accepted for replacement.
Summary
Types
@type match_pos() :: Minga.Editing.Search.Match.t()
A match position: {line, col, length}.
@type t() :: %Minga.Mode.SubstituteConfirmState{ accepted: [non_neg_integer()], count: non_neg_integer() | nil, current: non_neg_integer(), matches: [match_pos()], original_content: String.t(), pattern: String.t(), replacement: String.t() }