* feat: allow multiple hlgroups inside one column
* types: refactor formatting of highlight types
* types: LuaLS can't infer type information from unpack
---------
Co-authored-by: Steven Arcangeli <506791+stevearc@users.noreply.github.com>
* Implement actions for sending oil entries to quickfix/location-list
* Use vim.notify instead of vim.notify_once in util quickfix function
* Remove redundant files/directories options for sending to qf
always send just files
* set qflist/loclist with a single call
* Add type annotations and default values for send_to_quickfix
* In visual mode, send only selected items to qf
* perf: only execute on current buffer since this event is called on each buffer
* fix: only execute `SessionLoadPost` autocommand when a full session is loaded
For posterity: this was a very painful lesson. Turns out "BufDelete"
doesn't mean "buffer was deleted", it means "buffer was deleted from the
buffer list". If you set nobuflisted, BufDelete will be triggered even
though the buffer is still loaded and active.
* 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.