pub struct LspTransport { /* private fields */ }Expand description
LSP Transport for communicating with language servers
Implementations§
Source§impl LspTransport
impl LspTransport
Sourcepub async fn spawn(
command: &str,
args: &[String],
timeout_ms: u64,
) -> Result<Self>
pub async fn spawn( command: &str, args: &[String], timeout_ms: u64, ) -> Result<Self>
Spawn a language server and create a transport
Sourcepub async fn request(
&self,
method: &str,
params: Option<Value>,
) -> Result<JsonRpcResponse>
pub async fn request( &self, method: &str, params: Option<Value>, ) -> Result<JsonRpcResponse>
Send a request and wait for response
Sourcepub async fn notify(&self, method: &str, params: Option<Value>) -> Result<()>
pub async fn notify(&self, method: &str, params: Option<Value>) -> Result<()>
Send a notification (no response expected)
Sourcepub async fn diagnostics_snapshot(&self) -> HashMap<String, Vec<Diagnostic>>
pub async fn diagnostics_snapshot(&self) -> HashMap<String, Vec<Diagnostic>>
Return the last diagnostics published by the language server.
Sourcepub fn diagnostics_publish_seq(&self) -> u64
pub fn diagnostics_publish_seq(&self) -> u64
Current publish sequence counter. Increments every time the language
server publishes diagnostics for any URI. Callers can read this before
a textDocument/didChange and then wait via
Self::wait_for_publish_after for the server to republish.
Sourcepub async fn invalidate_diagnostics(&self, uri: &str)
pub async fn invalidate_diagnostics(&self, uri: &str)
Remove any cached diagnostics for uri. Useful before a didChange so
stale entries can’t be returned while the server recomputes.
Sourcepub async fn wait_for_publish_after(
&self,
baseline: u64,
timeout: Duration,
) -> bool
pub async fn wait_for_publish_after( &self, baseline: u64, timeout: Duration, ) -> bool
Wait until the server publishes diagnostics with a sequence greater
than baseline, or the timeout elapses. Returns true if a new
publication arrived in time.
Sourcepub fn is_initialized(&self) -> bool
pub fn is_initialized(&self) -> bool
Check if the server is initialized
Sourcepub fn set_initialized(&self, value: bool)
pub fn set_initialized(&self, value: bool)
Mark the server as initialized
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for LspTransport
impl !RefUnwindSafe for LspTransport
impl Send for LspTransport
impl Sync for LspTransport
impl Unpin for LspTransport
impl UnsafeUnpin for LspTransport
impl !UnwindSafe for LspTransport
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request