Line data Source code
1 : -- lua/yoda/commands/dev_setup/rust.lua
2 : -- Rust development environment setup commands
3 :
4 1 : local M = {}
5 :
6 1 : local notify = require("yoda-adapters.notification")
7 :
8 1 : function M.setup()
9 22 : vim.api.nvim_create_user_command("YodaRustSetup", function()
10 : local logger = require("yoda-logging.logger")
11 : logger.set_strategy("console")
12 : logger.set_level("info")
13 :
14 : logger.info("🦀 Setting up Rust development environment...")
15 :
16 : -- Check if Mason is available
17 : local mason_ok, mason = pcall(require, "mason")
18 : if not mason_ok then
19 : notify.notify("❌ Mason not available. Install via :Lazy sync first", "error")
20 : return
21 : end
22 :
23 : -- Install Rust tools via Mason
24 : logger.info("Installing rust-analyzer via Mason...")
25 : vim.cmd("MasonInstall rust-analyzer")
26 :
27 : logger.info("Installing codelldb (Rust debugger) via Mason...")
28 : vim.cmd("MasonInstall codelldb")
29 :
30 : -- Notify user
31 : notify.notify(
32 : "🦀 Rust tools installation started!\n"
33 : .. "Installing: rust-analyzer, codelldb\n"
34 : .. "Check :Mason for progress.\n"
35 : .. "Restart Neovim after installation completes.",
36 : "info",
37 : { title = "Yoda Rust Setup" }
38 : )
39 :
40 : logger.info("✅ Rust setup initiated. Restart Neovim after Mason installation completes.")
41 11 : end, { desc = "Install Rust development tools (rust-analyzer, codelldb) via Mason" })
42 12 : end
43 :
44 1 : return M
|