Skip to main content

Module plugin

Module plugin 

Source
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.