mq_lsp/lib.rs
1//! `mq-lsp` is a Language Server Protocol (LSP) implementation for the [mq](https://mqlang.org/). It provides various language features such as syntax highlighting, code completion, go-to-definition, and more.
2//!
3//! # Features
4//!
5//! - **Initialization**: Handles the initialization of the LSP server and sets up the server capabilities.
6//! - **Diagnostics**: Publishes diagnostics information to the client.
7//! - **Hover**: Provides hover information for symbols, including type information when type checking is enabled.
8//! - **Inlay Hints**: Shows inferred type annotations inline in the editor when type checking is enabled.
9//! - **Completion**: Offers code completion suggestions.
10//! - **Go To Definition**: Allows navigation to the definition of symbols.
11//! - **References**: Finds all references to a symbol.
12//! - **Document Symbols**: Lists all symbols in a document.
13//! - **Semantic Tokens**: Provides semantic tokens for syntax highlighting.
14//! - **Formatting**: Formats the document according to the MDQ language formatting rules.
15//!
16//! # Usage
17//!
18//! To use this LSP server, you need to integrate it with an LSP client. The server reads from stdin and writes to stdout, making it compatible with various editors and IDEs that support LSP.
19pub mod capabilities;
20pub mod completions;
21pub mod document_symbol;
22pub mod error;
23pub mod execute_command;
24pub mod goto_definition;
25pub mod hover;
26pub mod inlay_hints;
27pub mod references;
28pub mod semantic_tokens;
29pub mod server;
30
31pub use server::start;