#symbols #extract #indexing

nightly oak-symbols

Symbol extraction and management 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

#383 in Text editors

Download history 106/week @ 2026-01-27 102/week @ 2026-02-03 277/week @ 2026-02-10 155/week @ 2026-02-17 198/week @ 2026-02-24

762 downloads per month
Used in 125 crates (3 directly)

MPL-2.0 license

300KB
4.5K SLoC

🚀 oak-symbols

Crates.io Documentation

Symbol Management for Oak Languages — Extract and manage symbol information for document outlines, workspace search, and navigation.

🎯 Why oak-symbols?

Symbols are the building blocks of code — functions, classes, variables, and more. oak-symbols provides a unified interface for extracting symbol information from syntax trees.

✨ Key Features

  • 📊 Symbol Provider TraitSymbolProvider for symbol extraction
  • 🔍 Symbol Information — Rich type with name, role, location, and container
  • 🌐 Universal Provider — Built-in UniversalSymbolProvider for any Oak language
  • 📂 Document & Workspace — Document-level and workspace-wide symbol queries
  • 🔄 Serde Support — Optional serialization for LSP integration

🏗️ Architecture

  • SymbolInformation — Symbol name, role, URI, range, and container
  • SymbolProvider<L> — Trait for document and workspace symbol queries
  • UniversalSymbolProvider — Ready-to-use provider for any language

🔗 Ecosystem Integration

Used by oak-lsp for textDocument/documentSymbol and workspace/symbol, oak-structural-view for outline views, and oak-mcp for AI-assisted symbol discovery.

📖 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.5–8MB
~73K SLoC