Skip to main content

Crate reovim_server

Crate reovim_server 

Source
Expand description

Reovim Server - the editing engine.

This crate provides the server-side implementation of reovim:

  • Session management with shared state
  • Buffer operations via kernel
  • gRPC v2 protocol services

§Architecture

The server follows mechanism/policy separation (Unix philosophy):

  • Server provides WHAT: raw buffer data, cursor position, options
  • Client decides HOW: rendering, gutters, decorations, themes

§Example

use reovim_server::{Server, ServerConfig};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = ServerConfig::grpc(12540);
    let server = Server::new(config);
    server.run().await?;
    Ok(())
}

Re-exports§

pub use app::AppState;
pub use config::ServerConfig;
pub use config::TransportMode;
pub use registry::CommandQuerySnapshot;
pub use registry::CommandRegistry;
pub use registry::KeymapRegistry;
pub use registry::ModeEntry;
pub use registry::ModeRegistry;
pub use session::Session;
pub use session::SessionId;
pub use session::SessionRegistry;
pub use session::SessionState;
pub use session::SyntaxStreamState;

Modules§

app
Application state for the server.
config
Server configuration types.
debug
Debug infrastructure for post-mortem analysis.
grpc
gRPC v2 protocol implementation.
registry
Registries for modes, commands, and keymaps.
session
Session management for the server.

Structs§

Server
The reovim server.
SyntaxSessionState
Per-session syntax state stored in ExtensionMap.

Enums§

KeyLookupResult
Result of key lookup after policy is applied.

Type Aliases§

SessionFactory
Session factory function type.