nvrim/lib.rs
1//! Expose Rust helpers for my Nvim config to Lua via [`nvim_oxi`].
2//!
3//! Provide namespaced dictionaries for diagnostics, status UI (statusline / statuscolumn), CLI search flags,
4//! buffer text, keymaps, colorscheme & style options, test running, and misc extensions.
5//!
6//! Each top‑level key is either:
7//! - a table of related functions / data (e.g. `diagnostics`, `statusline`, `cli`)
8//! - or a standalone function / value.
9
10use ytil_noxi::Dictionary;
11
12#[macro_use]
13mod macros;
14
15/// [`nvim_oxi::api::Buffer`] helpers.
16mod buffer;
17/// CLI flags for `fd` and `ripgrep`.
18mod cli;
19/// User commands.
20mod cmds;
21/// Colorscheme setup.
22mod colorscheme;
23/// Diagnostics filtering / formatting / sorting.
24mod diagnostics;
25/// Core (non‑plugin) keymaps.
26pub mod keymaps;
27pub mod layout;
28/// Utilities to handle linters output
29mod linters;
30/// Custom build plugins.
31mod plugins;
32/// Style options.
33mod style_opts;
34/// `vim.opts` utilities. Avoids intra-doc links to private items for stable docs; uses plain function calls for error
35/// notifications.
36pub mod vim_opts;
37
38/// Plugin entry point.
39///
40/// Returns a namespaced [`Dictionary`] whose values are grouped
41/// sub‑dictionaries (diagnostics, UI, CLI flags, keymaps, etc.) plus a
42/// few standalone helpers.
43#[ytil_noxi::plugin]
44fn nvrim() -> Dictionary {
45 ytil_noxi::dict! {
46 "buffer": buffer::dict(),
47 "cli": cli::dict(),
48 "cmds": cmds::dict(),
49 "colorscheme": colorscheme::dict(),
50 "diagnostics": diagnostics::dict(),
51 "keymaps": keymaps::dict(),
52 "linters": linters::dict(),
53 "layout": layout::dict(),
54 "plugins": plugins::dict(),
55 "style_opts": style_opts::dict(),
56 "vim_opts": vim_opts::dict(),
57 }
58}