sem-core 0.6.2

Entity-level semantic diff engine. Extracts functions, classes, and methods from 20 languages via tree-sitter and diffs at the entity level.
Documentation
pub mod code;
pub mod csv_plugin;
#[cfg(feature = "lang-erb")]
pub mod erb;
pub mod fallback;
pub mod json;
pub mod markdown;
#[cfg(feature = "lang-svelte")]
pub mod svelte;
pub mod toml_plugin;
pub mod vue;
pub mod yaml;

use crate::parser::registry::ParserRegistry;

pub fn create_default_registry() -> ParserRegistry {
    let mut registry = ParserRegistry::new();

    registry.register(Box::new(json::JsonParserPlugin));
    registry.register(Box::new(code::CodeParserPlugin));
    #[cfg(feature = "lang-svelte")]
    registry.register(Box::new(svelte::SvelteParserPlugin));
    registry.register(Box::new(vue::VueParserPlugin));
    registry.register(Box::new(yaml::YamlParserPlugin));
    registry.register(Box::new(toml_plugin::TomlParserPlugin));
    registry.register(Box::new(csv_plugin::CsvParserPlugin));
    registry.register(Box::new(markdown::MarkdownParserPlugin));
    #[cfg(feature = "lang-erb")]
    registry.register(Box::new(erb::ErbParserPlugin));
    // Fallback must be last
    registry.register(Box::new(fallback::FallbackParserPlugin));

    registry
}