Commit Graph

54 Commits

Author SHA1 Message Date
Ian Homer
949913f186 feat(api): rename_basename API and action (#1791)
* relative rename action

* 🔥 remove debug print statement

* 🐛 better handling of dot files

Also pickout extension in filename with more one dot

* 🔧 keymap e for relative-rename action

* 📝 update help with relative-rename mapping

*  add API for rename_relative

* 🚨 correct lint warnings

* rename_relative -> rename_root

* stylua

* ♻️ use fnamemodify instead of custom logic

* 💥 refactor renaming api using vim filename modifiers

Rename API now supports filename modifiers as arguments, although
only with limited support of options. The function signature however
will allow improvements going forward. The API signature is backward
compatible, although the behviour has changed as per the next comment.

This change changes the default behaviour of the renames, rename_full is
what rename was, rename now just renames the tail (i.e. the filename)

* 🐛 make api rename, without args, functional

*  allow modifier argument to be used in API call

* 📝 update documentation with new command name

* rename-file.fn takes only a modifier as argument

* add Api.fs.rename_basename, specify modifiers for rename, rename_sub

* add Api.fs.rename_node

* rename-file tidy allowed modifiers

* 🐛 fix bugs after last refactoring

rename ":t" and ":t:r" was moving file to root of project and not
maintaining sub-directory

* 🐛 correct absolute rename

which was loosing sub-directory on rename

* 🔥 remove debug print statements

* stylua

Co-authored-by: Alexander Courtis <alex@courtis.org>
2022-12-16 13:32:48 +11:00
Alexander Courtis
c5dc80c36b feat(view): add filters.git_clean, filters.no_buffer (#1784)
* feat(view): add filters.git_clean

* feat(view): add filters.git_clean

* feat(view): add filters.no_buffer

* feat(view): filters.no_buffer misses unloaded, handles buffer in/out

* feat(view): filters.no_buffer matches directories specifically

* feat(view): filters.no_buffer clarify targets

* feat: add placeholder filters.diagnostics_ok, refactor filters

* feat(view): remove placeholder filters.diagnostics_ok
2022-12-10 15:55:33 +11:00
Alexander Courtis
8cc369695b fix: replace vim.* "requires" with explicit calls to vim functions (#1701) 2022-11-06 10:37:33 +11:00
kylo252
6ca6f99e76 feat(notify): add notify.threshold (#1693)
* feat: configurable notification level

add `notify.threshold` to setup opts

* feat: configurable notification level: add threshold example doc

* feat: configurable notification level: log always comes last

Co-authored-by: Alexander Courtis <alex@courtis.org>
2022-11-01 10:24:40 +11:00
Alexander Courtis
49c32c0dda Revert "fix(#1676) case insensitive mapping key remove and override (#1682)"
This reverts commit 5a798b3be0.
2022-10-25 08:00:17 +11:00
Alexander Courtis
5a798b3be0 fix(#1676) case insensitive mapping key remove and override (#1682)
* fix(#1676): remove_keymaps matches case insensitively

* fix(#1676): mappings.list.n.key matches case insensitively for overrides
2022-10-24 14:51:07 +11:00
Hoang Nguyen
a73d0d4800 feat(file-popup): add actions.file_popup.open_win_config
* file-popup: add nvim_open_win configuration

* docs: update file-popup configuration
2022-08-08 10:52:14 +10:00
Alexander Courtis
cfc4692a3f fix(#1479): apply remove_keymaps to default mappings 2022-08-02 09:29:57 +10:00
Kian-Meng Ang
2928f8fe31 fix(docs): typos (#1470) 2022-07-27 13:48:14 +02:00
Kiyan
64cc3c17e1 feat(mapping): deprecate user mappings and add on_attach (#1424) 2022-07-26 11:09:39 +02:00
kiyan
21fadc1f38 chore: move nvim-tree.utils.warn -> notify.warn
add notify.error and notify.info
2022-07-18 13:46:11 +02:00
Kiyan
26512c369f feat(marks): add bulk move action (#1419) 2022-07-17 08:25:11 +02:00
kiyan
80dc86e874 refactor(actions): use vim.keymap.set/del 2022-07-14 09:57:37 +02:00
Kiyan
df92f1527f feat(bookmarks): add bookmark feature (#1412) 2022-07-11 10:00:12 +02:00
Kiyan
831f1158c3 refactor(actions): move actions into semantic modules (#1410) 2022-07-10 09:47:52 +02:00
kiyan
63831d5179 refactor(actions): move on_keypress to dispatch module 2022-07-09 11:43:58 +02:00
Alexander Courtis
80d4f28383 feat(#1245): add next_diag_item and prev_diag_item actions 2022-07-03 16:04:49 +10:00
Kiyan
e6c1b4cd5b chore(setup): make setup idempotent (#1340)
Co-authored-by: Alexander Courtis <alex@courtis.org>
2022-06-26 12:14:03 +02:00
Kiyan
b0d27c09b6 feat(explorer): add filesystem watchers (#1304)
* feat(explorer): add experimental watchers

This commit introduces watchers to update the tree.
This behavior is introduced behind an "filesystem_watchers" option
which should prevent instabilities.
It will become the default at some point.

Co-authored-by: Alexander Courtis <alex@courtis.org>
2022-06-05 12:39:39 +02:00
Alexander Courtis
8198fa01fc doc: default mappings 2022-05-30 12:53:28 +10:00
emmanueltouzery
3806653d75 new option: close windows displaying removed files (#1300) 2022-05-29 11:23:01 +02:00
Kiyan
3a95c5a9cf feat(actions): expand all under folder (#1292) 2022-05-29 11:15:32 +02:00
Alexander Courtis
3ba383d591 chore/remove globals (#1279)
* remove renderer globals: nvim_tree_add_trailing nvim_tree_highlight_opened_files nvim_tree_root_folder_modifier nvim_tree_special_files

* remove renderer globals: nvim_tree_icon_padding

* remove renderer globals: nvim_tree_symlink_arrow

* remove renderer globals: nvim_tree_show_icons, nvim_tree_show_icons

* remove renderer globals: nvim_tree_git_hl

* remove renderer globals: nvim_tree_group_empty

* remove renderer globals: respect_buf_cwd

* remove renderer globals: nvim_tree_create_in_closed_folder

* remove globals: consistency in legacy checks

* remove renderer globals: nvim_tree_special_files

* renderer.icons.symbols -> glyphs
2022-05-28 11:08:40 +10:00
Kiyan
6343813a35 feat(live-filter): add ability to live filter out nodes in the tree (#1056) 2022-05-17 10:03:49 +02:00
Lò [By The Way]
83fe370d52 Added actions.opts.use_sys_clipboard, [issue: 789 ] (#1141) 2022-04-10 15:39:36 +02:00
Alexander Courtis
a50fd77c99 #857 add filter_custom action, filter_ignored->filter_git_ignored (#1077) 2022-03-18 11:30:30 +01:00
Alexander Courtis
19075f41e8 File logging (#1053)
* add file logging infrastructure

* log git runner operations

* log configuration and mappings

* document file logging infrastructure

* style fixes

* stylua fixes

* document log file locations
2022-03-07 08:44:37 +01:00
Kiyan
0816064a8b chore: add stylua to format the codebase, and run on CI (#1055) 2022-03-06 17:33:30 +01:00
Andreas Bissinger
c25be06612 feat: close file info popup if on same node (#1054) 2022-03-06 13:07:12 +01:00
smhc
f6aba661ec Close help on q/close instead of ignore keypress (#1043)
Co-authored-by: Shane Hird <shane.hird@csgicorp.com>
2022-03-03 23:43:14 +01:00
Andreas Bissinger
50a927f176 feat: add popup information (#1042) 2022-03-03 21:13:10 +01:00
Andreas Bissinger
4fedb93cec feat: add new keybinding "b" to run a command in the focused node (#1024) 2022-03-03 09:05:03 +01:00
Andreas Bissinger
48e76bc031 feat: Add a new keybinding to search and expand a certain path (#1014) 2022-02-22 23:36:59 +01:00
kiyan
f8f297acbf feat: add vinegar abilities to the tree
fixes #860
2022-02-21 21:42:43 +01:00
Andreas Bissinger
9f3dc98de7 feat: Add a new keybinding "W" to collapse the whole tree (#1013) 2022-02-21 13:46:55 +01:00
wongxy
41f51508e3 fix: use "" as flag to remove default mappings (#1011) 2022-02-20 11:29:09 +01:00
Alexander Courtis
44ffcb6f4b #998 allow users to unmap keys, remove user keys from default multi key maps (#1000) 2022-02-19 16:50:27 +01:00
Alexander Courtis
070a57a195 #973 copy action_cb for view.mappings.custom_only (#997) 2022-02-19 16:44:26 +01:00
Kiyan
6da7467944 refacto: buffer management, setup fixes, autocmd fixes (#967) 2022-02-14 19:16:45 +01:00
kiyan
ea92e7bf7c refacto: set tree explorer in the global state
also remove the redraw method and use renderer.draw immediately
2022-02-07 22:07:08 +01:00
kiyan
47ccc2913f refacto: move toggle help and filter toggles into actions
also fix explorer to properly remove element on update when filter is
applied
2022-02-07 20:43:24 +01:00
kiyan
923e034668 refacto: sort actions declaration, remove close from main file
fixes #921
- use view.close instead of nvim-tree.close
- put preview code inside the execution logic on keypress
- sort keys in keypress_funcs
- remove empty buffer when hijacking window
2022-02-06 19:25:23 +01:00
kiyan
23c95a674f chore: move refresh/reloaders into actions.reloaders 2022-02-06 16:24:14 +01:00
kiyan
1fe29f8eef chore: move g:nvim_tree_quit_on_open into open_file action config 2022-02-05 18:42:08 +01:00
kiyan
4a9e53143b refacto: ubiquitous language renaming
BREAKING
- rename all 'entry' to 'node' or '_node' if shadowing
- rename all 'entries' to 'nodes'
2022-02-05 18:10:09 +01:00
kiyan
f74dd24c58 refacto: move some code into actions
(non breaking, old assignments link to new assignments)
- move lib.collapse-all into actions/collapse-all
- move lib.dir-up into actions/dir-up
- move lib.change-dir into actions/change-dir
- use setup option for change-dir global (and use the old option for
  setup)
2022-02-05 17:42:40 +01:00
kiyan
8c4fd519b6 chore(refacto): move parent and sibling functions into actions
BREAKING CHANGE:
- move parent_node and sibling functions from lib to
  actions/movements.lua.
2022-02-05 17:08:11 +01:00
kiyan
b5c2e52ed0 fix(actions): help, close and custom only
fixes #908
2022-01-21 15:56:29 +01:00
kiyan
da302ea3b1 fix(actions): remove nvim_tree_callback from edit_no_picker 2022-01-21 12:37:47 +01:00
Sander van Harmelen
14bdf134f9 Add a mode that allows edit without the picker (#873) 2022-01-21 12:36:28 +01:00