* feat: copy/paste to system clipboard on macOS
* stylua
* feat: copy/paste to system clipboard on linux
* force mime type
* fix string.gsub
* vim.uv or vim.loop
* fix stylua
* support gnome directly
* support wayland
* refactor: extract clipboard actions into separate file
* fix: copy/paste in KDE
* refactor: simplify file loading
* fix: copy/paste on x11
* fix: better error message when clipboard command not found
* fix: paste on mac
* fix: pasting in Gnome
* feat: support pasting multiple files
* feat: support copying multiple files to clipboard
---------
Co-authored-by: Steve Walker <65963536+etherswangel@users.noreply.github.com>
Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>
* fix bug of disable_preview
file should not loaded if disable_preview is true
* refeactor function open_preview about disable_preview
switch the condition checking `disable_preview` of `if`
move the longer condition to the `elseif`
swap their repective code blocks to maintain the same functionality
* refactor: simplify conditionals
* fix: missing then
---------
Co-authored-by: Steven Arcangeli <506791+stevearc@users.noreply.github.com>
* feat: hidden highlights
* feat: OilHidden for hidden highlights instead of Comment
* fix: add the new combinatoric highlight groups
* perf: get rid of a call to is_hidden_file
* fix: tweak the default highlight group links
* fix: update function call in unit tests
---------
Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>
* feat: auto-quit vim if oil is closed as last buffer
* rename auto_close_vim to auto_close_last_buffer
* rework actions.close to be more like actions.cd
* fix: configure close action correctly
* add type annotation, future proofing
* fix: typo
* fix: typo
* refactor: better type annotations and backwards compatibility
---------
Co-authored-by: Steven Arcangeli <506791+stevearc@users.noreply.github.com>
* Initial implementation of scratch based preview
* Fix call to buf is valid in loop
* Fixing call to be made only from the main event loop
* Improve handling of large files from @pkazmier
* Better error handling and simplifying the code
* Default to old behavior
* Add documentation
* Fix readfile
* Fix the configuration
* refactor: single config enum and load real buffer on BufEnter
* doc: regenerate documentation
---------
Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>
* replace cwd path in actual path
* move get_title to utils
* add documentation
* rename
* add method doc
* add comment
* fallback to 0 for winid
* add missing property definition for relative_win_title
* only replace when at the start of the path
* simplify
* minor change
* add entry point to customize floating window title for oil-buffer
* remove config parameter
* cleanup
* add documentation
* move get_win_title to top and pass winid as parameter
* add get_win_title to type definition for oil.setup
* remove empty line
* adjust comment
---------
Co-authored-by: Philipp Oeschger <philippoeschger@Philipps-Air.fritz.box>
This allows for using get_current_dir in cases where currently hovered
buffer is not the desired Oil buffer (e.g. displaying directories for
multiple different Oil buffers)
* fix: set floating window win_options when buffer changes
* fix: set win options even when float border is "none"
---------
Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>
* implement floating window
* reset width on closing window
* use gap from new config parameter
* use minimal style for preview in floating
* lower z-index
* add configuration of preview position in floating window
* fix in verions earlier than nvim 0.10
* close preview on opening floating window
Close the any existing preview because otherwise strange errors happen when the preview is open and the floating window is opened at the same time.
* reset formatting changes
* remove empty line
* change z-index of preview window to floating window z-index
* add configurations to oil.txt
* formatting
* add auto configuration
* update oil doc
* refactor: move logic into layout.lua and eliminate flicker
* fix: floating preview window title is file name
* doc: clarify default_file_explorer
* refactor: don't need a preview_gap option
* refactor: only find preview win in current tabpage
---------
Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>
* Fixed drive browsing on windows
* Fixed naming
* fix: Uppercase drive letter only
* updated: Filter out network drives on windows
* Update files.lua
* Update files.lua
* fixed: mapped drives
* addslash to check for double slash
* Fixed indents
* Reverted addslash change
* Fixed windows initial buffer name
* Reverted formatting
* Cleaned up callback
* Fix addslash to handle \ too
* Allow running tests workflow from fork
* Fix workflow
* Test
* Tests
* refactor: readability and comments
* fix: convert buffer name to posix when hijacking directory
---------
Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>
The previous mechanism used histget() to get the last command or
expression to detect if the user issued a `:wq` or similar. This had the
issue where if a user issued a `:wq`, started vim again, then entered
oil and saved via some mechanism that is _not_ a command (e.g. a
keymap), we would incorrectly detect that `:wq` and exit after saving.
The new mechanism tracks all keypresses and may end up with false
negatives (e.g. ":wqaff<backspace><backspace>ll"), but those are less
frustrating than false positives.
* fix: close preview window when leaving oil buffer
* refactor: try different approach for closing the preview window
* fix: use util.is_oil_bufnr
---------
Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>
* feat: do not close preview when cd into dir
* refactor: add helper method to run function after oil buffer loads
* Keep preview window open
* Remove some test logic
* Use `run_after_load` when moving to parent directory
* Remove unnecessary update of current window
* refactor: create helper function for updating preview
---------
Co-authored-by: Steven Arcangeli <stevearc@stevearc.com>