#reference #navigation #goto-definition

nightly oak-navigation

Symbol navigation, definition lookup, and reference tracking for the Oak framework

6 releases

Uses new Rust 2024

new 0.0.6 Mar 4, 2026
0.0.5 Mar 3, 2026
0.0.4 Feb 14, 2026
0.0.2 Jan 30, 2026

#433 in Text editors

Download history 110/week @ 2026-01-27 102/week @ 2026-02-03 278/week @ 2026-02-10 152/week @ 2026-02-17 198/week @ 2026-02-24

760 downloads per month
Used in 124 crates (7 directly)

MPL-2.0 license

300KB
4.5K SLoC

🚀 oak-navigation

Crates.io Documentation

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 ProviderDefinitionProvider trait for "Go to Definition"
  • 🔍 References ProviderReferencesProvider trait for "Find All References"
  • 📍 Location Type — Unified Location for 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 definitions
  • ReferencesProvider<L> — Trait for finding symbol references
  • SimpleReferenceFinder — 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.

Dependencies

~5–7.5MB
~63K SLoC