89 lines
3.1 KiB
Lua
89 lines
3.1 KiB
Lua
-- ============================================================================
|
|
-- CRATES.NVIM: Rust Cargo.toml dependency management
|
|
-- ============================================================================
|
|
-- Provides inline version information and management for Rust crate dependencies.
|
|
-- Features: Auto-detect outdated/yanked crates, version popups, LSP integration,
|
|
-- and cmp completion for crate names and versions.
|
|
-- Keymaps:
|
|
-- <leader>ct - Toggle crates display
|
|
-- <leader>cr - Reload crates
|
|
-- <leader>cv - Show versions popup
|
|
-- <leader>cf - Show features popup
|
|
-- <leader>cd - Show dependencies popup
|
|
-- <leader>cu - Update crate
|
|
-- <leader>cU - Upgrade crate
|
|
-- ============================================================================
|
|
return {
|
|
"saecki/crates.nvim",
|
|
event = { "BufRead Cargo.toml" },
|
|
dependencies = { "nvim-lua/plenary.nvim" },
|
|
opts = {
|
|
smart_insert = true,
|
|
insert_closing_quote = true,
|
|
autoload = true,
|
|
autoupdate = true,
|
|
autoupdate_throttle = 250,
|
|
loading_indicator = true,
|
|
date_format = "%Y-%m-%d",
|
|
thousands_separator = ",",
|
|
notification_title = "crates.nvim",
|
|
curl_args = { "-sL", "--retry", "1" },
|
|
max_parallel_requests = 80,
|
|
open_programs = { "xdg-open", "open" },
|
|
expand_crate_moves_cursor = true,
|
|
enable_update_available_warning = true,
|
|
on_attach = function(bufnr) end,
|
|
text = {
|
|
loading = " Loading",
|
|
version = " %s",
|
|
prerelease = " %s",
|
|
yanked = " %s",
|
|
nomatch = " No match",
|
|
upgrade = " %s",
|
|
error = " Error fetching crate",
|
|
},
|
|
highlight = {
|
|
loading = "CratesNvimLoading",
|
|
version = "CratesNvimVersion",
|
|
prerelease = "CratesNvimPreRelease",
|
|
yanked = "CratesNvimYanked",
|
|
nomatch = "CratesNvimNoMatch",
|
|
upgrade = "CratesNvimUpgrade",
|
|
error = "CratesNvimError",
|
|
},
|
|
popup = {
|
|
autofocus = false,
|
|
hide_on_select = false,
|
|
copy_register = '"',
|
|
style = "minimal",
|
|
border = "rounded",
|
|
show_version_date = true,
|
|
show_dependency_version = true,
|
|
max_height = 30,
|
|
min_width = 20,
|
|
padding = 1,
|
|
},
|
|
completion = {
|
|
cmp = {
|
|
enabled = true,
|
|
},
|
|
},
|
|
lsp = {
|
|
enabled = true,
|
|
on_attach = function(client, bufnr) end,
|
|
actions = true,
|
|
completion = true,
|
|
hover = true,
|
|
},
|
|
},
|
|
keys = {
|
|
{ "<leader>ct", "<cmd>lua require('crates').toggle()<cr>", desc = "Toggle crates" },
|
|
{ "<leader>cr", "<cmd>lua require('crates').reload()<cr>", desc = "Reload crates" },
|
|
{ "<leader>cv", "<cmd>lua require('crates').show_versions_popup()<cr>", desc = "Show versions" },
|
|
{ "<leader>cf", "<cmd>lua require('crates').show_features_popup()<cr>", desc = "Show features" },
|
|
{ "<leader>cd", "<cmd>lua require('crates').show_dependencies_popup()<cr>", desc = "Show dependencies" },
|
|
{ "<leader>cu", "<cmd>lua require('crates').update_crate()<cr>", desc = "Update crate" },
|
|
{ "<leader>cU", "<cmd>lua require('crates').upgrade_crate()<cr>", desc = "Upgrade crate" },
|
|
},
|
|
}
|