probe-code 0.6.0

AI-friendly, fully local, semantic code search tool for large codebases
Documentation
use tree_sitter::{Language as TSLanguage, Node};

/// Trait that defines the interface for all language implementations.
pub trait LanguageImpl {
    /// Get the tree-sitter language for parsing
    fn get_tree_sitter_language(&self) -> TSLanguage;

    /// Check if a node is an acceptable container/parent entity
    fn is_acceptable_parent(&self, node: &Node) -> bool;

    /// Check if a node represents a test
    fn is_test_node(&self, node: &Node, source: &[u8]) -> bool;

    /// Get the file extension for this language
    #[deprecated(since = "0.1.0", note = "this method is not used")]
    #[allow(dead_code)]
    fn get_extension(&self) -> &'static str;

    /// Find the parent function or method declaration for a node (if any)
    fn find_parent_function<'a>(&self, _node: Node<'a>) -> Option<Node<'a>> {
        // Default implementation returns None
        None
    }
}