Expand description
Plugin system for language extensibility Plugin system for language support.
This module provides a trait-based plugin architecture that allows sqry to support multiple programming languages through both built-in (statically linked) and external (dynamically loaded in Phase 3+) plugins.
§Architecture
- LanguagePlugin trait: Core trait that all language plugins must implement
- PluginManager: Manages plugin registration and lookup
- Built-in plugins: Statically linked plugins (Rust, JS, TS, Python, Go)
- External plugins (Phase 3+): Dynamically loaded plugins from disk
§Example
use sqry_core::plugin::{PluginManager, LanguagePlugin};
// Create manager with built-in plugins
let manager = PluginManager::new();
// Lookup plugin by file extension
if let Some(plugin) = manager.plugin_for_extension("rs") {
let metadata = plugin.metadata();
println!("Found {} plugin v{}", metadata.name, metadata.version);
}Re-exports§
pub use error::PluginError;pub use error::PluginResult;pub use manager::PluginManager;pub use safe_parse::CancellationFlag;pub use safe_parse::SafeParser;pub use safe_parse::SafeParserConfig;pub use types::LanguageMetadata;pub use types::LanguagePlugin;
Modules§
- error
- Error types for the plugin system.
- manager
- Plugin manager for language plugin registration and lookup.
- safe_
parse - Safe parsing utilities with resource limits.
- types
- Core plugin types and traits.