main.rs

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