* fix(#2004): Change path_relative to use string find and substring to avoid using regex.
- This removed the original gsub with unintentional captures in path_to_matching_str
- The original regex based code captures create a limit where input path cannot
have more than 32 special charactors ( `.` , `_` or `-`)
* style nit
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* #1961 diagnostic logging refresh_nodes_for_path
* #1961 add cycle detection to refresh_nodes_for_path
* #1961 escape special characters on when path matching during refresh
* #1961 escape special characters on when path matching during refresh
* fix(#1970): additional log function gating for efficiency when not logging
* fix(#1970): additional log function gating for efficiency when not logging
* fix(#1970): disable git integration after 10 timeouts
* fix(#1970): disable git integration after 10 timeouts
* fix(#1970): disable git integration after 10 timeouts
* fix(#1970): cleanly kill timed out git processes
* fix(#1970): revert git kill, to be completed via #1974 experiment
* fix(#1970): revert git kill, to be completed via #1974 experiment
* fix(#1970): additional log function gating for efficiency when not logging
* fix(#1970): additional log function gating for efficiency when not logging
* fix: variable width accounts for sign/number columns
* Add dynamic sizing padding options
with https://github.com/neovim/neovim/pull/20621 merged in it is now
possible to fully customize the status-column in nvim (the column on the
left containing line-numbers, fold info, signs and borders).
A fair few cool implementations have popped up like:
- https://github.com/CKolkey/config/blob/master/nvim/after/plugin/statuscolumn.lua
- https://github.com/luukvbaal/statuscol.nvim
- and my own personal one (based on CKolkey's fantastic work) https://git.hendrikpeter.net/hendrikpeter/pico-vim/-/blob/main/lua/peva/status_column.lua
The problem with nvim-tree however is that dynamic sizing doesn't take
the custom size of a status column into account and the end of file
names get clipped off. This little patch should fix that (and give some
examples to help other status_column modders get started).
Thanks for looking at this and thanks for making this amazing plugin,
I've been using it for a while and I really like it!
* allow padding function, update docs, rollback readme
* typo in example setup
* help formatting
---------
Co-authored-by: Alexander Courtis <alex@courtis.org>
* feat: max_width for adaptive_size
* view grow calculates size correctly based on sign column visibility
* limit width to a minimum of 20
* adaptive_size -> min/max table
* harden view size calculations against bad user input
* style
* add back an extra column of padding to adaptive resizing
* back out: limit width to a minimum of 20
* revert unnecessary change
* backout: view grow calculates size correctly based on sign column visibility
* remove adaptive_size from help
* backout unnecessary change M.View.config
Co-authored-by: Alexander Courtis <alex@courtis.org>
* fix(#1822): test directory capable of watching before presenting it (#1901)
* feat(git): support `DA` state
Co-authored-by: Alexander Courtis <alex@courtis.org>
* fix(#1836):add view.debounce_delay to avoid some unnecessary explorer reloads
* fixed BufReadPost & BufUnload nil pointer
* update_focused_file.debouce_delay to view.debounce_delay
* changed docs to be more accurate
* added debounce on modified update
* Using same event for filter buffer
* removed unused View.debounce_delay
* changed docs to be more accurate
Co-authored-by: doot <gugegby@gmail.com>
Co-authored-by: Alexander Courtis <alex@courtis.org>
* Outlined new options
* highlight_modified is highlight_opened_files
* prototype with autocmd
* moved modified into glyphs
* show_on_dirs and show_on_open_dirs
* icon placement before & after
* _get_filename_offset
* fixed :wq doesn't update modified indicator
* highlight_modified, signcolumn modified_placement
Refactored to make everything use HighlightedString to remove all the complex `insert_highlight` calculation.
Not tested.
* updated doc to match the reality of no multi char for glyphs.modified
* fixed git signcolumn doesn't show
* fixed highlight_modified gets replaced by highlight_opened_files
* fixed renderer.icons.show.modified = false crash
* updated doc to reflect empty icon not breaking rendering
* removed debounce_delay to implement in a later PR
* doc nit: order placement
* change modified dirs default to be consistent with git
* illegal git & modified placement changed to default
* don't assume icon exist
* nit remove comment
* Noted in doc that glyphs can't have more than 2 characters if in signcolumn
* Don't sign_define if placement isn't signcolumn
Co-authored-by: Alexander Courtis <alex@courtis.org>
* feat(#1814): added cursorline config to DEFAULT_OPTS
Extends #1814
Currently, the config cursorline is set to `true` by default.
This behaviour can only be changed by a hacky way of listening to an event, as @alex-courtis mentioned that: "The user can change this default if they want via event".
This PR generalizes the configuration to be easier to config via the function `setup()`.
* doc: add cursorline
Co-authored-by: Alexander Courtis <alex@courtis.org>
* coding style
* outlined git.show_on_open_dirs behavior
* show some icon on opendir even if show_on_open_dir=false
and show all children's status on parent
* fixed renamed icon not showing
* sorted icons
* removed DU from deleted as file will show up in tree
* fixed update_git_status in reloaders not tested
* fixed Api.git.reload()
Tested update_git_status in reloaders.lua
* sort icon only if not git signcolumn
* fixed crashing when root dir isn't git dir
* made git.show_on_dirs doc more concise
* git_statuses -> git_status for consistency
* explorer/common.lua -> explorer/node.lua
* fixed#1784 conflict
* don't order icons
* Revert "don't order icons"
This reverts commit 23f6276ef7.
* Revert "Revert "fix(#1815): don't schedule find_file calls, debounce update_focused_file with 15ms default (#1820)""
This reverts commit a8d26bb088.
* fix(#1723): find_file for externally created new file results in folder unable to be opened
* fix(#1723): find_file for externally created new file results in folder unable to be opened
* feat: allow passing a custom function as a window picker
WIP
* fix: move logic expression to if statement
If `M.window_picker.custom_function()` returns `nil` then `pick_win_id()`
will run (the or part). We don't want that. More verbose, but better.
* feat(open): add window_picker.picker
* feat(open): add window_picker.picker
* style nit
* feat(open): add window_picker.picker
* docs: add window_picker.picker documentation
* docs: add window_picker.picker documentation
Co-authored-by: Alexander Courtis <alex@courtis.org>