Skip to main content

nash_cli/cmd/
lsp.rs

1use miette::Result;
2use tokio_util::compat::{TokioAsyncReadCompatExt, TokioAsyncWriteCompatExt};
3use tower_lsp_server::{LspService, Server};
4
5#[derive(clap::Args, Debug)]
6pub struct Args;
7
8pub async fn exec(_: Args) -> Result<()> {
9    let (service, socket) = LspService::new(nash_language_server::Server::new);
10    Server::new(
11        tokio::io::stdin().compat(),
12        tokio::io::stdout().compat_write(),
13        socket,
14    )
15    .serve(service)
16    .await;
17
18    Ok(())
19}