Skip to main content

Crate omena_lsp_server

Crate omena_lsp_server 

Source

Modules§

tide
Tide scheduling kernel (rfcs#111): an epoch ledger with per-input high-water marks, footprint-scoped job validity, and idempotent demand lanes flushed through settle gates.

Macros§

loop_trace

Structs§

CodeActionProviderCapabilityV0
CompletionProviderCapabilityV0
DiagnosticsPipelineTierPlanV0
FrameAwareRefreshComparisonV0
FrameAwareRefreshReportV0
FrameAwareRefreshRuntimeV0
FrameAwareStyleModuleInputV0
LspDeferredDiagnosticsDispatchV0
LspDiagnosticSettings
LspDiagnosticsFollowUpEffectsV0
LspExternalSifRefreshJobV0
LspExternalSifRefreshResultV0
LspFeatureSettings
LspGlobalClassFallthroughCandidateV0
A reference that failed the bound module’s export set but resolved in the GLOBAL class universe (tier two): rendered as the globalClassFallthrough disclosure instead of a missing-selector warning. Property accesses never produce one — they have no runtime fall-through and stay strict.
LspHandlerSurfaceV0
LspMigrationPhaseV0
LspOptimizingTierFeedback
LspOwnedSourceDiagnosticsRenderInputsV0
LspOwnedStyleDiagnosticsRenderInputsV0
LspQueryDispatchV0
A dispatched read-only request paired with its loop-consistent snapshot and optional client-request completion token.
LspQuerySnapshotV0
Copy-on-write read model for dispatched queries and deferred read workers.
LspResolutionSettings
LspReverseDependencyRefreshV0
A reverse-dependency memo refresh produced as a BYPRODUCT of an off-loop selector build: the loop applies it from the completion channel instead of ever building a selector itself.
LspShellState
LspShellStateSnapshot
LspStyleDocumentSummary
LspStyleHoverCandidate
LspStyleHoverCandidatesResult
LspTextDocumentState
LspTrustBoundaryV0
LspWatchedFileChangeState
LspWorkspaceFolderState
LspWorkspaceIndexJobV0
LspWorkspaceIndexResultV0
MultiEditorDistributionV0
OmenaLspServerBoundarySummaryV0
OmenaLspServerCapabilitiesV0
RenameProviderCapabilityV0
ResolveProviderCapabilityV0
ScheduledLspOutput
SourceProviderDirectRustAdapterV0
ThinClientEndpointV0
TideWorkspaceRepublishItemV0
TideWorkspaceRepublishJobV0
TideWorkspaceRepublishResultV0
WorkspaceCapabilityV0
WorkspaceFoldersCapabilityV0

Enums§

DeferredDiagnosticsRenderInputsV0
LspDocumentOrigin
LspLoopTurnV0
One loop turn for the stdio server.

Constants§

CASCADE_AT_POSITION_REQUEST
DEBUG_STATE_REQUEST
EXPLAIN_HOVER_TRACE_REQUEST
HOVER_SUBSTRATE_WARMUP_METHOD
Worker-side resolution of a dispatched query request. Mirrors the synchronous handle_lsp_message arms exactly, including the feature gating (evaluated against the snapshot, i.e. the settings in force at dispatch time). Returns the complete JSON-RPC response; None only for messages that were never dispatchable (defensive — the loop only dispatches hover/definition requests). Internal dispatch (no client-visible response): resolve one hover against the snapshot purely to POPULATE the Arc-shared hover memos (cascade-narrowing substrate, resolver identity index) right after a republish tide settles — the user’s FIRST hover then lands warm instead of paying the substrate build interactively.
NODE_TEXT_DOCUMENT_SYNC_KIND
OPTIMIZING_DIAGNOSTICS_DELAY_MS
RUNTIME_LOOP_PROBE_REQUEST
SDK_WORKFLOW_REQUEST
SOURCE_DIAGNOSTICS_REQUEST
STYLE_CONTEXT_INDEX_REQUEST
STYLE_DIAGNOSTICS_REQUEST
STYLE_HOVER_CANDIDATES_REQUEST

Traits§

LspQueryReadView
Read-only state surface available to off-loop query work.

Functions§

apply_background_workspace_index_result
apply_deferred_external_sif_refresh_result
apply_external_sif_refresh_result_follow_up_diagnostics_effects
apply_reverse_dependency_refresh
Apply an off-loop reverse-dependency refresh (produced by a worker’s selector build, delivered through the completion channel) to the loop state’s memo. The straight-line build has no memo; the refresh is a no-op there.
apply_tide_workspace_republish_item
Loop-side apply for ONE item — the caller pumps a bounded chunk per tick (I4) and must have verified the tide generation is still current. Write-behind runs through the loop state’s real disk-cache session, then the tiered publish emits in the same shape as every other arm.
collect_background_workspace_index
collect_deferred_external_sif_refresh
collect_tide_workspace_republish_streaming
Worker-side compute, streaming (rfcs#111 §8.5): ONE shared-graph parallel wave — one memo-host sync, one substrate, one condensation — with a per-item sink that emits each target the moment its pool task finishes. Open documents were ordered first by prepare, so they converge first. The generation watch aborts disowned tides at item boundaries; the final event carries the uncovered remainder for the fallback arm.
compare_frame_refresh_against_unconditional_baseline
complete_dispatched_query_response
Choose the single client-visible response at the worker completion boundary.
complete_tide_workspace_republish
Completion: re-arm the lane; when the tide is still current, uncovered targets re-enter the per-file deferred arm so no key is silently skipped.
current_node_lsp_capability_contract
dispatched_query_internal_error_response
The dispatched request class: hover/definition REQUESTS (an id is required — without one there is nothing to respond to). Notifications named like these methods fall through to the synchronous path unchanged. JSON-RPC internal-error response for a dispatched query whose resolver panicked on the worker: the request still gets exactly one response (a silent drop would hang the client), and the worker survives to serve the rest of its queue.
dispatched_query_is_heavy
Lane routing for dispatched queries: HEAVY dispatches (codeLens, whose occurrence-index rebuild is a whole-corpus scan, and the internal substrate warmups) run on their own worker so an interactive hover / definition / documentColor never queues behind a multi-second compute. Head-of-line blocking on the single lane was measured live: a documentColor answered 3ms of work 20 SECONDS after dispatch because a codeLens rebuild held the worker.
enable_deferred_external_sif_refresh
external_sif_refresh_follow_up_diagnostics_effects
handle_lsp_message
handle_lsp_message_outputs
handle_lsp_message_scheduled_outputs
handle_lsp_message_scheduled_outputs_or_dispatch
Loop-side turn handler for the stdio server. Mirrors handle_lsp_message_scheduled_outputs except that dispatchable query requests are returned as jobs instead of being resolved inline.
hover_substrate_warmup_dispatch
The post-settle warmup dispatch: the first OPEN style document’s first hover candidate. One document suffices — the substrate the build warms is workspace-scoped, not per-document.
lsp_handler_surfaces
lsp_migration_phases
lsp_trust_boundary_contract
multi_editor_distribution_contract
omena_loop_trace_enabled
prepare_background_workspace_index_continuation_job
prepare_background_workspace_index_job
prepare_deferred_external_sif_refresh_job
prepare_tide_workspace_republish_job
Gate evaluation + snapshot capture, on the loop. idle is the courtesy input (no recent client message); aging overrides it after [TIDE_REPUBLISH_LANE_CONFIG]’s bound, the frontier never.
refresh_diagnostics_with_frame
refresh_diagnostics_with_frame_policy
resolve_deferred_diagnostics_notification
resolve_deferred_diagnostics_notification_with_reverse_refresh
The worker-side deferred compute, additionally returning the reverse-dependency refresh its selector build produced — the loop applies it from the completion channel, which is what keeps the loop-side memo fresh WITHOUT the loop ever building a selector.
resolve_dispatched_query_response
resolve_style_hover_candidates
source_provider_direct_rust_adapter_contract
summarize_omena_lsp_server_boundary
thin_client_endpoint_contract
tide_workspace_republish_flush_effects
Evaluate the workspace-republish settle gate; on flush, run the follow-up executor over the flushed demand’s targets. M2 keeps the per-file deferred executor verbatim and completes the tide at flush time — the executor swap to the off-loop generation-checked wave is exclusively M3 (rfcs#111 §12).
workspace_index_progress_end_output
workspace_status_notification
workspace_status_snapshot
Compact workspace status for the client’s status surface. Change-driven: the loop sends omena/status only when this tuple moves, so the wire cost is bounded by real state transitions, not by tick rate.