* 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
We were passing in `style = "minimal"` to `nvim_open_win`, which sets a
lot of default window options. If we remove that, the style of the
floating window will match the other oil windows. Users can use
`float.override` to set `style = "minimal"` if they want the previous
behavior.
This was only necessary to begin with because I was using `vim.wo` to
set window options. I mistakenly thought that would set the option as
window-local, but it did not. This was fixed in
6f8bf067c0. Now all the window options
should function as expected without the extra logic.
Originally I set the default value to `n` because I wanted users to be
aware of the magic ID number at the start of the line if they were
editing a buffer. With the recent improvements to the cursor placement,
I think that it's no longer necessary. Most normal edits should just
work as expected now, and it's a nicer experience if the visuals don't
jump around when you enter visual/insert mode.
If you rename a file to have a `/` at the end, oil will detect the
change as a delete + new directory. Similarly, if you delete the
trailing `/` from a directory, it will delete the dir and create a new
file. This should help with the case where you want to create a new file
but forgot to add the trailing `/` and now you have a file instead.
Previously we were forcing the cursor to be after the hidden ID at the
start, but that still meant that it would end up on top of the icon.
This made rename operations slightly more annoying than necessary, since
you would need to first move the cursor forward to the file name. Now,
the cursor will be locked to the beginning of the filename unless there
is a mutable column earlier in the row.
If you use oil and you want to still use netrw, set
`default_file_explorer = false`.
It is nonsensical to both use netrw _and_ have oil hijack directory
buffers (which was the case for the default config). It also causes
undefined behavior and bugs. When `default_file_explorer = true` (the
default) oil will now disable netrw for you.