rez_lsp_server/lib.rs
1//! # Rez LSP Server
2//!
3//! A Language Server Protocol implementation for Rez package manager.
4//!
5//! This crate provides intelligent code completion, dependency resolution,
6//! and syntax validation for Rez package.py files across all major IDEs.
7//!
8//! ## License
9//!
10//! Licensed under the Apache License, Version 2.0 (the "License");
11//! you may not use this file except in compliance with the License.
12//! You may obtain a copy of the License at
13//!
14//! <http://www.apache.org/licenses/LICENSE-2.0>
15//!
16//! Unless required by applicable law or agreed to in writing, software
17//! distributed under the License is distributed on an "AS IS" BASIS,
18//! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19//! See the License for the specific language governing permissions and
20//! limitations under the License.
21//!
22//! ## Architecture
23//!
24//! The server is built with a modular architecture:
25//! - **Core**: Fundamental types and traits
26//! - **Config**: Rez configuration management
27//! - **Discovery**: Package discovery and caching
28//! - **Parser**: Rez package.py file parsing
29//! - **Resolver**: Dependency resolution engine
30//! - **LSP**: Language Server Protocol implementation
31//!
32//! ## Example
33//!
34//! ```rust,no_run
35//! use rez_lsp_server::server::RezLanguageServer;
36//! use tower_lsp::{LspService, Server};
37//!
38//! #[tokio::main]
39//! async fn main() {
40//! let stdin = tokio::io::stdin();
41//! let stdout = tokio::io::stdout();
42//!
43//! let (service, socket) = LspService::new(RezLanguageServer::new);
44//! Server::new(stdin, stdout, socket).serve(service).await;
45//! }
46//! ```
47
48pub mod config;
49pub mod core;
50pub mod discovery;
51pub mod parser;
52pub mod performance;
53pub mod resolver;
54pub mod server;
55pub mod validation;
56
57// Re-export commonly used types
58pub use core::{Error, Result};
59pub use server::RezLanguageServer;