use sql_lsp::SqlLspServer;
use tower_lsp::{LspService, Server};
#[tokio::main]
async fn main() {
tracing_subscriber::fmt()
.with_env_filter(
tracing_subscriber::EnvFilter::try_from_default_env()
.unwrap_or_else(|_| tracing_subscriber::EnvFilter::new("info")),
)
.with_writer(std::io::stderr) .init();
tracing::info!("SQL LSP server starting");
let args: Vec<String> = std::env::args().collect();
if args.len() > 1 && (args[1] == "--version" || args[1] == "-v") {
println!("sql-lsp {}", env!("CARGO_PKG_VERSION"));
return;
}
let stdin = tokio::io::stdin();
let stdout = tokio::io::stdout();
let (service, socket) = LspService::new(SqlLspServer::new);
tracing::info!("SQL LSP server initialized, starting service");
Server::new(stdin, stdout, socket).serve(service).await;
tracing::info!("SQL LSP server shutting down");
}