Skip to main content

Module language

Module language 

Source
Expand description

Language adapter trait for tree-sitter integration.

Each programming language supported by codemod-pilot must implement the LanguageAdapter trait. This provides tree-sitter grammar access and language-specific metadata such as file extensions, statement types, and identifier node types.

§Implementing a new language

use codemod_core::LanguageAdapter;
use tree_sitter::Language;

pub struct RustAdapter;

impl LanguageAdapter for RustAdapter {
    fn name(&self) -> &str { "rust" }
    fn language(&self) -> Language { tree_sitter_rust::LANGUAGE.into() }
    fn file_extensions(&self) -> &[&str] { &["rs"] }
    fn statement_node_types(&self) -> &[&str] { &["let_declaration", "expression_statement"] }
    fn expression_node_types(&self) -> &[&str] { &["call_expression", "binary_expression"] }
    fn identifier_node_types(&self) -> &[&str] { &["identifier", "type_identifier"] }
}

Traits§

LanguageAdapter
Trait for language-specific adapters.