Skip to main content

Crate rez_lsp_server

Crate rez_lsp_server 

Source
Expand description

§Rez LSP Server

A Language Server Protocol implementation for Rez package manager.

This crate provides intelligent code completion, dependency resolution, and syntax validation for Rez package.py files across all major IDEs.

§License

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

§Architecture

The server is built with a modular architecture:

  • Core: Fundamental types and traits
  • Config: Rez configuration management
  • Discovery: Package discovery and caching
  • Parser: Rez package.py file parsing
  • Resolver: Dependency resolution engine
  • LSP: Language Server Protocol implementation

§Example

use rez_lsp_server::server::RezLanguageServer;
use tower_lsp::{LspService, Server};

#[tokio::main]
async fn main() {
    let stdin = tokio::io::stdin();
    let stdout = tokio::io::stdout();

    let (service, socket) = LspService::new(RezLanguageServer::new);
    Server::new(stdin, stdout, socket).serve(service).await;
}

Re-exports§

pub use core::Error;
pub use core::Result;
pub use server::RezLanguageServer;

Modules§

config
Configuration management for the Rez LSP server.
core
Core types and traits for the Rez LSP server.
discovery
Package discovery implementation for Rez.
parser
Package parsing implementation for Rez.
performance
Performance monitoring and optimization for the Rez LSP server.
resolver
Dependency resolution implementation for Rez.
server
LSP server implementation for Rez.
validation
Syntax validation for Rez package.py files.

Macros§

time_async_operation
Macro for timing async operations.
time_operation
Macro for timing operations.