LSP coordination state for the Editor.
Groups the Editor's LSP-related fields into a focused sub-struct: server status tracking, cached responses (code lenses, inlay hints, selection ranges), and debounce timers for highlight and inlay hint requests.
All mutations go through functions on this module. Other modules
read fields directly but never do %{lsp | field: value}.
Summary
Functions
Appends a single resolved code lens entry.
Cancels the highlight debounce timer and clears the reference.
Cancels the inlay hint debounce timer and clears the reference.
Clears the highlight debounce timer reference without cancelling it.
Clears the inlay hint debounce timer reference without cancelling it.
Clears the stored selection ranges and resets the index.
Moves the selection range index forward (expand) by one step.
Replaces the stored code lenses.
Sets the highlight debounce timer reference.
Sets the inlay hint debounce timer and records the viewport top.
Replaces the stored inlay hints.
Stores a selection range chain and resets the index to 0.
Moves the selection range index backward (shrink) by one step.
Updates a single server's status and re-derives the aggregate status.
Types
@type server_status() :: :starting | :initializing | :ready | :crashed
@type t() :: %MingaEditor.State.LSP{ code_lenses: [map()], highlight_debounce_timer: reference() | nil, inlay_hint_debounce_timer: reference() | nil, inlay_hints: [map()], last_inlay_viewport_top: non_neg_integer() | nil, selection_range_index: non_neg_integer(), selection_ranges: [map()] | nil, server_statuses: %{required(atom()) => server_status()}, status: MingaEditor.Shell.Traditional.Modeline.lsp_status() }
Functions
Appends a single resolved code lens entry.
Cancels the highlight debounce timer and clears the reference.
Cancels the inlay hint debounce timer and clears the reference.
Clears the highlight debounce timer reference without cancelling it.
Clears the inlay hint debounce timer reference without cancelling it.
Clears the stored selection ranges and resets the index.
Moves the selection range index forward (expand) by one step.
Replaces the stored code lenses.
Sets the highlight debounce timer reference.
@spec set_inlay_hint_timer(t(), reference(), non_neg_integer()) :: t()
Sets the inlay hint debounce timer and records the viewport top.
Replaces the stored inlay hints.
Stores a selection range chain and resets the index to 0.
Moves the selection range index backward (shrink) by one step.
Updates a single server's status and re-derives the aggregate status.
When status is :stopped, the server is removed from the map entirely.