pub enum IndexingState {
Unknown,
Loading,
Ready,
}Expand description
Workspace-indexing readiness of a routed LSP server.
Tracked separately from the initialize/initialized handshake
completion (ServerState::is_ready). A server can finish the handshake
and still be mid-index for tens of seconds afterward, during which
whole-workspace queries (hover, definition, references, completions,
code actions) can silently return an empty/null result
indistinguishable from a genuine “nothing found”.
Unknown and Ready are treated identically by
Translator::wait_for_indexing_ready (proceed without waiting): a server
that never emits a recognized readiness signal must never be penalized
with an artificial delay, and the only way to tell “no signal ever comes”
apart from “just hasn’t reported yet” would require guessing at a
server’s protocol support, so both stay unblocked. Only Loading – a
positive signal that indexing is actively in progress – triggers a
bounded wait.
Variants§
Unknown
No recognized workspace-readiness signal has been observed for this server yet.
Loading
A recognized signal reported that indexing is still in progress.
Ready
A recognized signal reported that the initial workspace load is complete.
Trait Implementations§
Source§impl Clone for IndexingState
impl Clone for IndexingState
impl Copy for IndexingState
Source§impl Debug for IndexingState
impl Debug for IndexingState
Source§impl Default for IndexingState
impl Default for IndexingState
impl Eq for IndexingState
Source§impl PartialEq for IndexingState
impl PartialEq for IndexingState
impl StructuralPartialEq for IndexingState
Auto Trait Implementations§
impl Freeze for IndexingState
impl RefUnwindSafe for IndexingState
impl Send for IndexingState
impl Sync for IndexingState
impl Unpin for IndexingState
impl UnsafeUnpin for IndexingState
impl UnwindSafe for IndexingState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.