🚀 oak-folding
Code Folding Support for Oak Languages — Identify collapsible regions in source code for IDE outline views and editor folding.
🎯 Why oak-folding?
Code folding helps developers manage large files by collapsing sections of code. oak-folding provides a trait-based interface for identifying foldable regions in any Oak-supported language.
✨ Key Features
- 📁 Folding Provider Trait —
FoldingProviderfor language-specific folding logic - 🎯 Folding Range Types — Comments, imports, and custom regions
- 📍 Precise Ranges — Byte-offset based for accurate folding
- 🔄 Serde Support — Optional serialization for LSP integration
🏗️ Architecture
FoldingRange— Represents a foldable region with optional kindFoldingRangeKind— Comment, Imports, or RegionFoldingProvider<L>— Trait for providing folding ranges
🔗 Ecosystem Integration
Used by oak-lsp for textDocument/foldingRange support, IDE extensions for code outline views, and code formatters.
📖 Documentation
For usage examples and API details, see the API documentation.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.