1 unstable release
new 0.1.0 | Jan 18, 2025 |
---|
#301 in Cargo plugins
61 downloads per month
1.5MB
790 lines
๐ cargo.nvim
๐ฆ A Neovim plugin that provides seamless integration with Rust's Cargo commands. Execute Cargo commands directly from Neovim with a floating window interface.
โจ Features
- ๐ง Execute Cargo commands directly from Neovim
- ๐ช Real-time output in floating windows
- ๐จ Syntax highlighting for Cargo output
- โก Asynchronous command execution
- ๐ Auto-closing windows on command completion
- โจ๏ธ Easy keyboard shortcuts for window management
contents
๐ฅ Installation
Using lazy.nvim
{
"nwiizo/cargo.nvim",
build = "cargo build --release",
config = function()
require("cargo").setup({
float_window = true,
window_width = 0.8,
window_height = 0.8,
border = "rounded",
auto_close = true,
close_timeout = 5000,
})
end,
ft = { "rust" },
cmd = {
"CargoBench",
"CargoBuild",
"CargoClean",
"CargoDoc",
"CargoNew",
"CargoRun",
"CargoTest",
"CargoUpdate"
}
}
Using packer.nvim
use {
"nwiizo/cargo.nvim",
run = "cargo build --release",
config = function()
require("cargo").setup({
float_window = true,
window_width = 0.8,
window_height = 0.8,
border = "rounded",
auto_close = true,
close_timeout = 5000,
})
end,
}
๐ Requirements
- ๐ป Neovim >= 0.9.0
- ๐ฆ Rust and Cargo installed on your system
๐ ๏ธ Available Commands
- ๐
:CargoBench
- Run benchmarks - ๐๏ธ
:CargoBuild
- Build the project - ๐งน
:CargoClean
- Remove generated artifacts - ๐
:CargoDoc
- Generate project documentation - โจ
:CargoNew
- Create a new Cargo project - โถ๏ธ
:CargoRun
- Run the project - ๐งช
:CargoTest
- Run tests - ๐
:CargoUpdate
- Update dependencies
โ๏ธ Configuration
You can customize cargo.nvim by passing options to the setup function:
require("cargo").setup({
-- Window settings
float_window = true, -- Use floating window
window_width = 0.8, -- Window width (80% of editor width)
window_height = 0.8, -- Window height (80% of editor height)
border = "rounded", -- Border style ("none", "single", "double", "rounded")
-- Auto-close settings
auto_close = true, -- Auto close window on success
close_timeout = 5000, -- Close window after 5000ms
-- Command settings
commands = {
bench = { nargs = "*" }, -- Command arguments configuration
build = { nargs = "*" },
clean = { nargs = "*" },
doc = { nargs = "*" },
new = { nargs = 1 },
run = { nargs = "*" },
test = { nargs = "*" },
update = { nargs = "*" },
}
})
โจ๏ธ Key Mappings
In the floating window:
q
or<Esc>
- Close the window<C-c>
- Cancel the running command and close the window
๐ฅ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- ๐ด Fork the repository
- ๐ฟ Create a feature branch
- โ๏ธ Commit your changes
- ๐ Push to the branch
- ๐ซ Open a Pull Request
๐ License
MIT License - see the LICENSE file for details.
๐ Acknowledgements
This plugin is inspired by various Neovim plugins and the Rust community.
Dependencies
~8โ21MB
~290K SLoC