Expand description
Refactoring and modernization helpers. Import optimization for Perl modules
This module analyzes import statements and usage to optimize imports by:
- Detecting unused imports and symbols
- Finding duplicate import statements
- Consolidating imports to reduce clutter
- Generating optimized import statements
§LSP Workflow Integration
Import optimization operates within the Perl LSP analysis pipeline: Parse → Index → Navigate → Complete → Analyze
- Parse Stage: Identifies import statements during Perl source analysis
- Index Stage: Builds symbol index and resolves import dependencies
- Navigate Stage: Tracks cross-file import dependencies for refactoring
- Complete Stage: Generates optimized import statements for code actions
- Analyze Stage: Updates workspace symbols and reference tracking
Critical for maintaining clean imports in enterprise Perl development workflows where large Perl codebases require systematic dependency management.
§Performance
- Time complexity: O(n) over import statements with O(1) symbol lookups
- Space complexity: O(n) for import maps and symbol sets (memory bounded)
- Optimizations: Fast-path parsing and deduplication to keep performance stable
- Benchmarks: Typically <5ms per file in large workspace scans
- Large file scaling: Designed to scale across large file sets (50GB PST-style)
§Example
ⓘ
use perl_parser::import_optimizer::ImportOptimizer;
use std::path::Path;
let optimizer = ImportOptimizer::new();
let analysis = optimizer.analyze_file(Path::new("script.pl"))?;
let optimized_imports = optimizer.generate_optimized_imports(&analysis);
println!("{}", optimized_imports);Structs§
- Duplicate
Import - A module that is imported multiple times
- Import
Analysis - Result of import analysis containing all detected issues and suggestions
- Import
Entry - A single import statement discovered during analysis
- Import
Optimizer - Import optimizer for analyzing and optimizing Perl import statements
- Missing
Import - A symbol that is used but not imported
- Organization
Suggestion - A suggestion for improving import organization
- Text
Edit - TextEdit for import optimization (local type for byte-offset ranges)
- Unused
Import - An import statement containing unused symbols
Enums§
- Suggestion
Priority - Priority level for organization suggestions