Skip to content

AST-Based Metadata Extraction Pipeline #9

Description

@FredericoPerimLopes

🎯 Objective

Implement comprehensive AST-based metadata extraction to capture rich semantic information for improved code retrieval.

📋 Current State

  • Tree-sitter AST parsing for basic semantic type detection
  • Limited metadata extraction (only semantic_type)
  • No function signature or dependency analysis

🚀 Implementation Plan

Core Metadata Extraction Features

1. Function/Method Analysis

def extract_function_metadata(node: Node) -> dict:
    return {
        'function_name': extract_function_name(node),
        'parameters': extract_parameters_with_types(node),
        'return_type': extract_return_type_annotation(node),
        'decorators': extract_decorators(node),
        'docstring': extract_docstring(node),
        'complexity_score': calculate_cyclomatic_complexity(node)
    }

2. Class Hierarchy Analysis

def extract_class_metadata(node: Node) -> dict:
    return {
        'class_name': extract_class_name(node),
        'inheritance_chain': extract_base_classes(node),
        'interfaces': extract_implemented_interfaces(node),
        'methods': extract_class_methods(node),
        'properties': extract_class_properties(node)
    }

3. Import Dependency Mapping

def extract_import_metadata(file_content: str) -> dict:
    return {
        'direct_imports': extract_import_statements(content),
        'from_imports': extract_from_imports(content),
        'dependencies': resolve_cross_file_dependencies(content),
        'external_packages': identify_external_dependencies(content)
    }

🔧 Technical Implementation

Language-Specific Extractors

  • Python: ast + tree-sitter for comprehensive analysis
  • JavaScript/TypeScript: TypeScript compiler API integration
  • Java: JavaParser integration for full metadata
  • Go/Rust: Language-specific AST libraries

Performance Optimizations

  • Parallel processing for large files
  • Caching of complex AST operations
  • Incremental metadata updates
  • Memory-efficient AST traversal

✅ Success Criteria

  • Function signature extraction for all supported languages
  • Class inheritance chain mapping
  • Import dependency analysis
  • Docstring/comment extraction
  • Complexity metrics calculation
  • 95%+ accuracy for metadata extraction
  • <50ms processing time per file
  • Comprehensive test coverage

🔗 Dependencies

  • None (can start immediately, uses existing Tree-sitter)

🔄 Parallel Tasks

📅 Estimated Timeline

3-4 days

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions