MingaEditor.CompletionTrigger (Minga v0.1.0)

Copy Markdown View Source

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.

t()

Completion bridge state tracked in the Editor.

Request tracking fact returned to the Editor-global LSP owner.

Functions

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).

Checks whether the given character should trigger completion.

Returns initial completion bridge state.

Types

phase()

@type phase() ::
  :idle
  | {:debounced, reference(), [pid()], pid(), non_neg_integer(), position()}
  | {:pending, position()}

Exclusive completion trigger phase tracked in the Editor.

position()

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

Cursor position captured when completion was triggered.

response_role()

@type response_role() :: :primary | :secondary

Role assigned to a completion request reference within a batch.

t()

@type t() :: %MingaEditor.CompletionTrigger{gen: non_neg_integer(), phase: phase()}

Completion bridge state tracked in the Editor.

tracking_fact()

@type tracking_fact() ::
  {reference(), response_role(), pid(), pid(), non_neg_integer(),
   non_neg_integer(), position()}

Request tracking fact returned to the Editor-global LSP owner.

Functions

dismiss(bridge)

@spec dismiss(t()) :: t()

Dismisses any active completion state and cancels debounce timer ownership.

flush_debounce(bridge, gen)

@spec flush_debounce(t(), non_neg_integer()) :: {t(), [tracking_fact()]}

Called when the debounce timer fires.

generation(completion_trigger)

@spec generation(t()) :: non_neg_integer()

Returns the latest-wins request generation.

get_typed_since_trigger(buffer_pid, arg)

@spec get_typed_since_trigger(pid(), position()) :: String.t()

Returns the text typed since the trigger position (for prefix filtering).

maybe_trigger(bridge, char, buffer_pid)

@spec maybe_trigger(t(), String.t(), pid()) :: {t(), [tracking_fact()]}

Checks whether the given character should trigger completion.

new()

@spec new() :: t()

Returns initial completion bridge state.