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