mq_dap/lib.rs
1//! Debug Adapter Protocol (DAP) implementation for mq.
2//!
3//! This crate provides a DAP server for debugging mq scripts, enabling integration
4//! with IDEs and editors that support the Debug Adapter Protocol.
5//!
6//! # Features
7//!
8//! - Full DAP protocol support for mq debugging
9//! - Breakpoint management
10//! - Step-through execution (step in, step out, step over)
11//! - Variable inspection
12//! - Stack trace visualization
13//! - Expression evaluation in debug context
14//!
15//! # Usage
16//!
17//! The DAP server can be started programmatically or as part of an editor integration:
18//!
19//! ```rust,ignore
20//! use mq_dap::start;
21//!
22//! #[tokio::main]
23//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
24//! start().await?;
25//! Ok(())
26//! }
27//! ```
28//!
29//! # Protocol Support
30//!
31//! This implementation supports the Debug Adapter Protocol as specified by Microsoft.
32//! The server communicates over stdin/stdout using JSON-RPC messages.
33//!
34//! # Integration
35//!
36//! This DAP implementation is designed to work with:
37//! - Visual Studio Code
38//! - Neovim with DAP support
39//! - Other editors supporting the Debug Adapter Protocol
40//!
41//! # Architecture
42//!
43//! The crate is organized into:
44//! - `adapter`: DAP adapter implementation
45//! - `protocol`: DAP message types and protocol handling
46//! - `executor`: Debug execution engine
47//! - `handler`: Request and event handlers
48//! - `server`: DAP server implementation
49
50pub mod adapter;
51pub mod error;
52pub mod executor;
53pub mod handler;
54pub mod log;
55pub mod protocol;
56pub mod server;
57
58pub use server::start;