feat: trash support for linux and mac (#165)
* wip: skeleton code for trash adapter * refactor: split trash implementation for mac and linux * fix: ensure we create the .Trash/$uid dir * feat: code complete linux trash implementation * doc: write up trash features * feat: code complete mac trash implementation * cleanup: remove previous, terrible, undocumented trash feature * fix: always disabled trash * feat: show original path of trashed files * doc: add a note about calling actions directly * fix: bugs in trash implementation * fix: schedule_wrap in mac trash * doc: fix typo and line wrapping * fix: parsing of arguments to :Oil command * doc: small documentation tweaks * doc: fix awkward wording in the toggle_trash action * fix: warning on Windows when delete_to_trash = true * feat: :Oil --trash can open specific trash directories * fix: show all trash files in device root * fix: trash mtime should be sortable * fix: shorten_path handles optional trailing slash * refactor: overhaul the UI * fix: keep trash original path vtext from stacking * refactor: replace disable_changes with an error filter * fix: shorten path names in home directory relative to root * doc: small README format changes * cleanup: remove unnecessary preserve_undo logic * test: add a functional test for the freedesktop trash adapter * test: more functional tests for trash * fix: schedule a callback to avoid main loop error * refactor: clean up mutator logic * doc: some comments and type annotations
This commit is contained in:
parent
d8f0d91b10
commit
6175bd6462
27 changed files with 1580 additions and 229 deletions
20
lua/oil/adapters/trash/windows.lua
Normal file
20
lua/oil/adapters/trash/windows.lua
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
-- Work in progress
|
||||
local M = {}
|
||||
|
||||
-- ---@return string
|
||||
-- local function get_trash_dir()
|
||||
-- -- TODO permission issues when using the recycle bin. The folder gets created without
|
||||
-- -- read/write perms, so all operations fail
|
||||
-- local cwd = vim.fn.getcwd()
|
||||
-- local trash_dir = cwd:sub(1, 3) .. "$Recycle.Bin"
|
||||
-- if vim.fn.isdirectory(trash_dir) == 1 then
|
||||
-- return trash_dir
|
||||
-- end
|
||||
-- trash_dir = "C:\\$Recycle.Bin"
|
||||
-- if vim.fn.isdirectory(trash_dir) == 1 then
|
||||
-- return trash_dir
|
||||
-- end
|
||||
-- error("No trash found")
|
||||
-- end
|
||||
|
||||
return M
|
||||
Loading…
Add table
Add a link
Reference in a new issue