1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! Mason-style LSP and developer-tool installer.
//!
//! `hjkl-anvil` is the tool-installation sibling of `hjkl-bonsai`. Where
//! bonsai manages tree-sitter grammars, anvil manages language servers,
//! formatters, linters, and debug adapters — using the same XDG path
//! conventions and compile-time embedded catalog pattern.
//!
//! # Features
//!
//! ## `sync` (dev-only)
//!
//! Enables the `sync-anvil` xtask binary that regenerates `anvil.toml` from
//! the upstream `mason-org/mason-registry` JSON artifact. Not needed by
//! downstream consumers — it pulls in `reqwest`, `zip`, and `serde_json`.
//!
//! Maintainers run:
//! ```text
//! cargo run -p hjkl-anvil --features sync --bin sync-anvil -- --pin <tag>
//! ```
//!
//! # Quick start
//!
//! ```rust
//! use hjkl_anvil::{Registry, ToolCategory};
//!
//! let registry = Registry::embedded().expect("embedded catalog must load");
//! println!("catalog has {} tools", registry.len());
//!
//! if let Some(spec) = registry.get("rust-analyzer") {
//! println!("rust-analyzer v{}", spec.version);
//! }
//!
//! for name in registry.by_category(ToolCategory::Lsp) {
//! println!(" lsp: {name}");
//! }
//! ```
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;