Manages LSP completion request lifecycle.
Summary
Types
Exclusive completion trigger phase tracked in the Editor.
Cursor position captured when completion was triggered.
Role assigned to a completion request reference within a batch.
Completion bridge state tracked in the Editor.
Request tracking fact returned to the Editor-global LSP owner.
Functions
Accepts one identity-checked provider batch into the active session.
Starts resolve ownership for the currently selected stable item.
Dismisses any active completion state and cancels debounce timer ownership.
Called when the debounce timer fires.
Returns the latest-wins request generation.
Returns the text typed since the trigger position (for prefix filtering).
Continues an active session, refreshing only incomplete providers for identifier input.
Checks whether the given character should trigger completion.
Returns initial completion bridge state.
Installs an updated pure session transition.
Retriggers only incomplete providers with LSP trigger kind 3.
Returns whether an active session has provider work that must refresh after input.
Returns the stable completion session, when one is active.
Synchronizes session selection after a user navigation transition.
Records the request reference for an exact resolve identity.
Types
@type phase() :: :idle | {:debounced, reference(), [pid()], pid(), non_neg_integer(), position()} | {:pending, position()}
Exclusive completion trigger phase tracked in the Editor.
@type position() :: {non_neg_integer(), non_neg_integer()}
Cursor position captured when completion was triggered.
@type response_role() :: :primary | :secondary
Role assigned to a completion request reference within a batch.
@type t() :: %MingaEditor.CompletionTrigger{ gen: non_neg_integer(), phase: phase(), session: Minga.Editing.Completion.Session.t() | nil }
Completion bridge state tracked in the Editor.
@type tracking_fact() :: {reference(), response_role(), Minga.Editing.Completion.Item.provider_id(), pid(), pid(), non_neg_integer(), reference(), non_neg_integer(), position()}
Request tracking fact returned to the Editor-global LSP owner.
Functions
@spec accept_batch(t(), Minga.Editing.Completion.ProviderBatch.t()) :: {:ok, t()} | :stale
Accepts one identity-checked provider batch into the active session.
@spec begin_resolve(t(), Minga.Editing.Completion.Item.t(), reference() | nil) :: {:ok, t(), Minga.Editing.Completion.Session.resolve_identity()} | :stale
Starts resolve ownership for the currently selected stable item.
Dismisses any active completion state and cancels debounce timer ownership.
@spec flush_debounce(t(), non_neg_integer()) :: {t(), [tracking_fact()]}
Called when the debounce timer fires.
@spec generation(t()) :: non_neg_integer()
Returns the latest-wins request generation.
@spec get_typed_since_trigger(pid() | Minga.Buffer.CursorContext.t(), position()) :: String.t()
Returns the text typed since the trigger position (for prefix filtering).
@spec maybe_retrigger(t(), String.t(), pid(), Minga.Buffer.CursorContext.t()) :: {t(), [tracking_fact()]}
Continues an active session, refreshing only incomplete providers for identifier input.
@spec maybe_trigger(t(), String.t(), pid(), Minga.Buffer.CursorContext.t()) :: {t(), [tracking_fact()]}
Checks whether the given character should trigger completion.
@spec new() :: t()
Returns initial completion bridge state.
@spec put_session(t(), Minga.Editing.Completion.Session.t()) :: t()
Installs an updated pure session transition.
@spec retrigger_incomplete(t(), Minga.Buffer.CursorContext.t()) :: {t(), [tracking_fact()]}
Retriggers only incomplete providers with LSP trigger kind 3.
Returns whether an active session has provider work that must refresh after input.
@spec session(t()) :: Minga.Editing.Completion.Session.t() | nil
Returns the stable completion session, when one is active.
@spec sync_selection(t(), Minga.Editing.Completion.t()) :: t()
Synchronizes session selection after a user navigation transition.
@spec track_resolve( t(), Minga.Editing.Completion.Session.resolve_identity(), reference() ) :: {:ok, t()} | :stale
Records the request reference for an exact resolve identity.