7 releases
Uses new Rust 2024
| new 0.0.7 | Mar 7, 2026 |
|---|---|
| 0.0.6 | Mar 2, 2026 |
| 0.0.5 | Feb 25, 2026 |
#495 in Development tools
209 downloads per month
155KB
2.5K
SLoC
[!WARNING] Onoma and all of its editor integrations are still in early development. Expect bugs, breaking changes, and other general hiccups.
Onoma
ὄνομα — Onoma (pronounced
OH-no-ma) is Greek for “name”, signifying not just a label, but the essence or character of a thing.
Onoma is a fast, language-agnostic semantic symbol indexer and fuzzy finder, which supports real-time cross-language symbol matching, without needing a full language server and without applying limits to workspace-wide queries.
It achieves this through incremental indexing with Tree-sitter and filesystem events, and includes typo-resistant fuzzy matching with a scoring system to prioritise relevant results.
While Onoma can be used as a standalone crate, its primary goal is to act as an editor-agnostic indexer and resolver which can be cross-compiled and integrated into text editors and IDEs.
Supported Languages
- Rust (
.rs) - Go (
.go) - Lua (
.lua) - Clojure (
.clj) - TypeScript (
.tsand.tsx) / JavaScript (.jsand.jsx) - Python (
.py)
Usage
1. Editor Integrations
Feel free to open an issue with ideas for additional editor integrations.
Currently, Onoma is integrated with:
- Neovim, using onoma.nvim with Snacks Picker
2. Standalone Crate
[dependencies]
onoma = "0.0.7"
Documentation
Full documentation is available on docs.rs.
Contributing
Contributions are welcome!
The core Onoma backend should contain all editor-agnostic functionality, including improvements to indexing and fuzzy matching.
For editor-specific features or changes to bindings for a particular editor, please submit pull requests in the respective editor repositories listed above.
Testing
The tests can be run with:
cargo test
Acknowledgments
- fff.nvim for inspiring the semantic fuzzy finder design in Onoma.
- snacks.nvim for the excellent picker frontend.
- frizbee for the high-performance SIMD implementation of fuzzy matching.
Dependencies
~104MB
~2M SLoC