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:
- External LSP Servers (rust-analyzer, typescript-language-server, pylsp, etc.)
- Configured IDE Rules (YAML/JSON configuration)
- Built-in Language Providers (Rust, TypeScript, Python)
- 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
- Theme
Loader - Custom theme loader
- Theme
Manager - Theme manager for runtime theme management and switching
- Theme
Registry - Theme registry for storing and managing themes
- Theme
Reset Manager - Theme reset manager for resetting themes to their default state
Enums§
- Color
Support - Terminal color support levels