🚀 oak-navigation
Code Navigation Support for Oak Languages — Traits and utilities for implementing "Go to Definition" and "Find All References" features.
🎯 Why oak-navigation?
Code navigation is fundamental to developer productivity. oak-navigation provides the building blocks for implementing navigation features in any Oak-based language tool.
✨ Key Features
- 🎯 Definition Provider —
DefinitionProvidertrait for "Go to Definition" - 🔍 References Provider —
ReferencesProvidertrait for "Find All References" - 📍 Location Type — Unified
Locationfor source positions across files - 🔎 Simple Reference Finder — Built-in name-based reference search
- 🔄 Serde Support — Optional serialization for LSP integration
🏗️ Architecture
Location— Represents a position in source code (URI + byte range)DefinitionProvider<L>— Trait for finding symbol definitionsReferencesProvider<L>— Trait for finding symbol referencesSimpleReferenceFinder— Helper for basic name-based search
🔗 Ecosystem Integration
Used by oak-lsp for LSP navigation features, oak-mcp for AI-assisted navigation, and custom IDE extensions.
📖 Documentation
For usage examples and API details, see the API documentation.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.