//! Storybook Language Server
//!
//! LSP server providing language support for Storybook DSL including:
//! - Real-time diagnostics
//! - Hover information
//! - Document symbols (outline)
//! - Go-to-definition
//! - Find references
//! - Autocomplete
//! - Document formatting

use tower_lsp::{
    LspService,
    Server,
};

#[tokio::main]
async fn main() {
    env_logger::init();

    let stdin = tokio::io::stdin();
    let stdout = tokio::io::stdout();

    let (service, socket) = LspService::new(storybook::lsp::StorybookLanguageServer::new);

    Server::new(stdin, stdout, socket).serve(service).await;
}
