fix: trash.cmd defaults to 'trash' on macos and windows, document option (#2336)
* fix: trash.cmd defaults to 'trash' on macos * fix: macOS and windows default trash commands, allow trash on all OS * fix: windows default trash command doc * fix: trash.cmd message
This commit is contained in:
parent
904f95cd9d
commit
0a54dcb76b
@ -1148,8 +1148,10 @@ Configuration options for trashing.
|
||||
|
||||
*nvim-tree.trash.cmd*
|
||||
The command used to trash items (must be installed on your system).
|
||||
The default is shipped with glib2 which is a common linux package.
|
||||
Type: `string`, Default: `"gio trash"`
|
||||
The default `"gio trash"` is shipped with glib2 which is a common linux package.
|
||||
macOS default `"trash"` requires the homebrew package `trash`
|
||||
Windows default `"trash"` requires `trash-cli` or similar
|
||||
Type: `string`, Default: `"gio trash"` or `"trash"`
|
||||
|
||||
*nvim-tree.actions*
|
||||
Configuration for various actions.
|
||||
@ -2291,7 +2293,6 @@ vim.keymap.set("n", "<leader>ms", require("nvim-tree.api").marks.navigate.select
|
||||
10. OS SPECIFIC RESTRICTIONS *nvim-tree-os-specific*
|
||||
|
||||
macOS
|
||||
- Trash is unavailable
|
||||
- Rename to different case is not possible when using a case insensitive file
|
||||
system.
|
||||
|
||||
|
||||
@ -669,6 +669,13 @@ local function validate_options(conf)
|
||||
end
|
||||
end
|
||||
|
||||
--- Apply OS specific localisations to DEFAULT_OPTS
|
||||
local function localise_default_opts()
|
||||
if utils.is_macos or utils.is_windows then
|
||||
DEFAULT_OPTS.trash.cmd = "trash"
|
||||
end
|
||||
end
|
||||
|
||||
function M.purge_all_state()
|
||||
require("nvim-tree.watcher").purge_watchers()
|
||||
view.close_all_tabs()
|
||||
@ -687,6 +694,8 @@ function M.setup(conf)
|
||||
|
||||
M.init_root = vim.fn.getcwd()
|
||||
|
||||
localise_default_opts()
|
||||
|
||||
legacy.migrate_legacy_options(conf or {})
|
||||
|
||||
validate_options(conf)
|
||||
|
||||
@ -29,22 +29,9 @@ function M.fn(node)
|
||||
return
|
||||
end
|
||||
|
||||
-- configs
|
||||
if utils.is_unix or utils.is_windows then
|
||||
if M.config.trash.cmd == nil then
|
||||
M.config.trash.cmd = "trash"
|
||||
end
|
||||
if M.config.ui.confirm.trash == nil then
|
||||
M.config.ui.confirm.trash = true
|
||||
end
|
||||
else
|
||||
notify.warn "Trash is currently a UNIX only feature!"
|
||||
return
|
||||
end
|
||||
|
||||
local binary = M.config.trash.cmd:gsub(" .*$", "")
|
||||
if vim.fn.executable(binary) == 0 then
|
||||
notify.warn(binary .. " is not executable.")
|
||||
notify.warn(string.format("trash.cmd '%s' is not an executable.", M.config.trash.cmd))
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user