main.rs

 1mod buf_pool;
 2mod config;
 3mod lsp;
 4mod mcp;
 5
 6use clap::Parser;
 7use std::sync::Arc;
 8
 9use config::{CommandLineArgs, Config};
10use tracing_subscriber::EnvFilter;
11
12#[tokio::main]
13async fn main() -> anyhow::Result<()> {
14    tracing_subscriber::fmt()
15        .with_env_filter(EnvFilter::from_default_env().add_directive(tracing::Level::DEBUG.into()))
16        .with_writer(std::io::stderr)
17        .with_ansi(false)
18        .init();
19
20    let args = CommandLineArgs::parse();
21    let config = Arc::new(Config::load(&args.config).await?);
22
23    let (mcp_server, lsp_client) = mcp::setup(config).await?;
24    mcp_server.run(lsp_client).await?;
25
26    Ok(())
27}