Crate ricecoder_ide

Crate ricecoder_ide 

Source
Expand description

IDE Integration for RiceCoder

This crate provides IDE integration for RiceCoder, enabling seamless integration with popular IDEs and editors (VS Code, vim, neovim, emacs). It implements an LSP-first provider chain that queries external LSP servers for semantic intelligence and falls back through configured rules, built-in providers, and generic features.

§Architecture

The IDE integration follows a provider chain pattern:

  1. External LSP Servers (rust-analyzer, typescript-language-server, pylsp, etc.)
  2. Configured IDE Rules (YAML/JSON configuration)
  3. Built-in Language Providers (Rust, TypeScript, Python)
  4. Generic Text-based Features (fallback for any language)

§Configuration

IDE integration is configured through YAML/JSON files with support for:

  • IDE-specific settings (VS Code, vim, neovim, emacs)
  • Provider chain configuration
  • LSP server configuration
  • Custom IDE rules

§Example

use ricecoder_ide::config::ConfigManager;
use ricecoder_ide::manager::IdeIntegrationManager;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Load configuration
    let config = ConfigManager::load_from_file("config/ide-integration.yaml").await?;

    // Create IDE integration manager
    let manager = IdeIntegrationManager::new(config).await?;

    // Handle IDE requests
    // ...

    Ok(())
}

Re-exports§

pub use builtin_provider::PythonProvider;
pub use builtin_provider::RustProvider;
pub use builtin_provider::TypeScriptProvider;
pub use config::ConfigManager;
pub use config_hot_reload::ConfigHotReloadCoordinator;
pub use config_validation::ConfigValidator;
pub use configured_rules_provider::ConfiguredRulesProvider;
pub use editor_config::CompletionSettings;
pub use editor_config::DiagnosticsSettings;
pub use editor_config::EmacsConfig;
pub use editor_config::EditorConfigError;
pub use editor_config::HoverSettings;
pub use editor_config::TerminalEditorConfig;
pub use editor_config::VimConfig;
pub use error::IdeError;
pub use external_lsp_provider::ExternalLspProvider;
pub use generic_provider::GenericProvider;
pub use hot_reload::HotReloadManager;
pub use hot_reload::ConfigChangeCallback;
pub use hot_reload::ProviderAvailabilityCallback;
pub use ide_config_applicator::IdeConfigApplicator;
pub use ide_config_applicator::IdeSpecificSettings;
pub use ide_config_applicator::IdeType;
pub use lsp_monitor::LspMonitor;
pub use lsp_monitor::LspHealthStatus;
pub use manager::IdeIntegrationManager;
pub use provider::IdeProvider;
pub use provider::ProviderChain;
pub use provider_chain::ProviderChainManager;
pub use provider_chain::ProviderRegistry;
pub use provider_error_handling::ProviderErrorContext;
pub use provider_error_handling::ProviderErrorHandler;
pub use provider_error_handling::RecoveryStrategy;
pub use response_formatter::ResponseFormatter;
pub use themes::IdeThemeConfig;
pub use themes::IdeThemeIntegration;
pub use themes::IdeThemeManager;
pub use types::*;

Modules§

builtin_provider
Built-in language providers implementation
config
Configuration management for IDE integration
config_hot_reload
Configuration hot-reload integration
config_validation
Configuration validation for IDE integration
configured_rules_provider
Configured rules provider implementation
editor_config
error
Error types for IDE integration
external_lsp_provider
External LSP provider implementation
generic_provider
Generic text-based provider implementation
hot_reload
Hot-reload support for configuration and provider availability changes
ide_config_applicator
IDE-specific configuration applicator Applies IDE-specific settings and behavior based on IDE type
lsp_monitor
LSP server availability monitoring
manager
IDE Integration Manager
provider
Provider traits and interfaces for IDE features
provider_chain
Provider chain implementation for IDE features
provider_error_handling
Error handling for provider chain
response_formatter
IDE response formatting
themes
IDE Theme System
types
Core data types for IDE integration

Structs§

Color
Color definition
Theme
Theme definition
ThemeLoader
Custom theme loader
ThemeManager
Theme manager for runtime theme management and switching
ThemeRegistry
Theme registry for storing and managing themes
ThemeResetManager
Theme reset manager for resetting themes to their default state

Enums§

ColorSupport
Terminal color support levels