Commit Graph

66 Commits

Author SHA1 Message Date
Phil Runninger
12dea6ccb2
Add a "copy path to clipboard" menu option (#1002)
* Add menu item to copy the node's path to the clipboard.

It works on Mac. Check Windows later.

* Handle case where clipboard is not a compiled feature of Vim.

* Change menu text if clipboard is unavailable.
2019-06-13 09:17:19 -04:00
Chris Patuzzo
84737f2ebe Add a NERDTreeMinimalMenu feature (#938)
* Extract the menu action prompts to a function

* Add a NERDTreeMinimalMenu configuration option

If this option is set, Vim’s command line displays
a single-line version of the menu:

Which action? (a*/m/d/r/o/q/c/l):

Pressing ‘a’ will call the ‘add child node’ menu
item as that is its shortcut.

The * denotes the position of the currently
selected menu item which can be changed with
NERDTreeMenuDown and Up in the usual way.

The user may wish to set these to <left>, <right>
or h, l if they prefer.

* Minimise the text once a menu item is chosen

If NERDTreeMinimalMenu is set, then echo a single
line prompt after the menu item is chosen. This
reduces noise for users who are already familiar
with how the menu works and prevents Vim scrolling
down to accommodate the menu text.

If the directory is non-empty we display
‘Delete directory?’ instead of ‘Delete?’ and the
user must still type ‘yes’ to confirm, rather than
just pressing ‘y’.

* Document the new NERDTreeMinimalMenu feature

* Tweak the format for the minimal menu prompt

As per @PhilRunninger’s suggestions:

- The menu now shows the ‘j/k/enter’ help text
- The first word of the selected item is shown*
- Use commas between menu items so that it’s
  visually distinct from the ‘j/k/enter’ text

* I tried displaying the full menuItem text, but
this can be quite long, e.g.

> (o)pen the current node with system editor

This causes the menu to jump around a lot. We
could add another minimal versions of these, but
I think the first word seems ok for now.
2019-02-24 18:01:12 -05:00
Phil Runninger
842f5cabaa Before deleting, turn off &shellslash. Restore after delete is done. 2019-02-17 22:03:49 -05:00
Phil Runninger
cce52fb9c5
Before copying, turn off &shellslash. Restore after copy is finished. (#952) 2019-02-17 18:30:10 -05:00
Phil Runninger
5e8aa9e721
Confirm the wipeout of a unsaved buffer whose file has been renamed. (#949) 2019-02-14 17:44:31 -05:00
Phil Runninger
c372911c4a
Refresh buffers after m, m operation on a folder (#888)
* WIP: Wow! That's an ugly diff. I'm not done yet, though.

* Fix the ugliness of the previous commit, and finish the work.

If the node being renamed is a directory, get a list of all open buffers
whose file lives in the old directory. If that list is not empty, ask
the user if he wants to replace the old buffers with the new files. The
logic to handle renaming a file node stays the same, although the code
has been refactored a bit.
2018-10-24 22:20:59 -04:00
Phil Runninger
f98078d3ae
Force sort to recalculate the cached sortKey. (#898)
* Force sort to recalculate the cached sortKey.

The problem in issue #880 was caused by the sort using the old sortKey.
For example, given nodes A, B, and C, if B were renamed to D, the sort
was still using B as its sortKey, thus not moving it.

It's a bit of a hack, but if we set g:NERDTreeOldSortOrder to an empty
list, the cached sortKey will be recalculated. I did the same thing for
both the Copy and Add functions as well.

* Add a comment to explain the let ... = [] statement.
2018-10-18 16:13:15 -04:00
Phil Runninger
6b6cadf86c
Use a better arg for FINDSTR when using the m,l command in Windows. (#887)
* Use a better arg for FINDSTR when using the m,l command in Windows.

* Remove trailing spaces.

* Use vim getf...() functions in place of DOS commands.

* Remove unnecessary variable.

* Put labels in the text of the file/dir listing.
2018-10-10 22:19:18 -04:00
Andrew Flockhart
9e9d16a38a Reword renamed-buffer prompt to be more clear 2018-08-04 01:16:46 -04:00
Bubba
08db3a0eea Do not need to check for unix os here. 2018-06-15 12:02:58 -04:00
Bubba
a053179d6a Use the case-insensitive regex 2018-06-15 11:29:09 -04:00
Bubba
c0d87db309 Better OSX detection 2018-06-15 10:43:20 -04:00
Phil Runninger (mac)
c4f8a0f370 Like m-c did before, create parent directories if needed on m-m. 2018-05-16 13:09:20 -04:00
Hieu Nguyen
435861ee69 Support revealing file and executing file with xdg-open for Linux 2018-04-09 19:08:09 +02:00
Phil Runninger (mac)
b37495fa98 If node isn't open, count children on disk before deleting.
Fixes #821. If a node isn't opened in NERDTree, it's children aren't
known yet, so when deleting the node (with `m`, `d`), the user isn't
properly asked to confirm the delete. It was going to the less strict
`Y`/`n` confirmation, instead of the `yes` confirmation for non-empty
directories.

This change checks to see if the node is opened already. If it is, the
existing getChildCount() function is used; otherwise, the disk is read
to get the number of children there.
2018-04-02 09:26:34 -04:00
Jason Franklin
9f985514f0 Add modelines 2017-12-17 08:43:43 -05:00
Phil Runninger
97433edd43 Merge pull request #754 from branch comma-separated-file-size
This change will display the file size (printed with the "ml"
command) in an easy-to-read format, while still displaying its
precise value.  It uses the "stat" command (with the correct
switches for Unix and OSX) to get the file size, "sed" to add the
commas, and "sed" again to replace the original size with the
modified number.
2017-11-02 08:36:07 -04:00
Mohamed Boughaba
a8c6245057 Merge pull request #756 from mboughaba/master
Previously, deleting a file in the NERDTree with "md" would cause
a new buffer to be created to fill the window(s) occupied by
a buffer on the file.  This pull request makes it so that a new
buffer is not created.  Instead, the next buffer in the buffer list
fills the window.

Fixes #755.
2017-11-02 08:26:48 -04:00
Jason Franklin
876283b07c Improve display of shell output from menu command
This small change reverts to the previous method of breaking shell
output into lines.  The reason for this is to avoid the printing of
trailing carriage return characters on Windows.
2017-08-19 09:39:25 -04:00
Jason Franklin
f4ff6dcf84 Fix a menu command that breaks under 'shellslash'
The (l) menu command breaks on Windows systems when 'shellslash' is
set.  This is due to the fact that the menu item uses a hard coded
shell command, thus relying on the use of the default Windows shell
without the 'shellslash' setting.

The pattern used for the fix is localized to the problem function.
However, this technique could easily be abstracted into its own
function to execute Windows shell commands with the default shell
throughout the NERDTree codebase.
2017-08-19 08:58:57 -04:00
Dan Schaub
682a7b64db Fix typo in argument usage in promptToRenameBuffer 2016-10-03 18:04:50 -04:00
Phil Runninger
f640646f2c Change confirmation prompt when deleting non-empty directory. 2016-09-22 16:42:17 -04:00
Phil Runninger
1a6c502f19 Merge pull request #530 from mikeperri/delete-empty-directory
Don't require user to type 'yes' to delete an empty directory
2016-09-22 16:40:25 -04:00
Zachary Voase
916f6b8f8f Use fnameescape to quote filenames for :badd. 2016-06-30 16:21:13 -07:00
Mike Perri
d2509d279e Don't require user to type 'yes' to delete an empty directory 2016-06-27 11:28:47 -05:00
Martin Grenfell
665f326577 remove dependency on b:NERDTree from classes that dont need it
Inject it where needed.
2015-11-20 01:44:12 +00:00
Martin Grenfell
d36b793656 dont use b:NERDTreeRoot internally, but leave the var there for compat
Use b:NERDTree.root instead. I will eventually remove  b:NERDTreeRoot
altogether - but this will break some other plugins so leave it for now.
2015-11-16 11:28:24 +00:00
Martin Grenfell
be8f18914c remove some unneeded header comments 2015-11-13 16:54:47 +00:00
Martin Grenfell
e27ab9c5c7 fsmenu: use nerdtree#echo* methods instead of reimplementing them 2015-11-13 10:53:42 +00:00
Martin Grenfell
5b7085d9ae fs menu: remove unused var assigns 2015-11-13 10:46:12 +00:00
Martin Grenfell
adc11983bc fs_menu: put the NERDTreeListNode* methods together 2015-11-13 10:44:27 +00:00
Phil Runninger
3fb18e7399 Switch to upper case DIR /Q, in true DOS fashion 2015-11-12 21:38:22 -05:00
Phil Runninger
f1af61ddf7 Use the system('DIR /Q...') function to display file info. 2015-11-12 21:29:34 -05:00
Phil Runninger
c60f401371 Merge (p)roperties (for Windows) into the (l)ist menu item. 2015-11-12 16:20:20 -05:00
Phil Runninger
fb030bcb1c Merge pull request #1 from scrooloose/master
Merge official code into my fork
2015-11-12 16:11:56 -05:00
Martin Grenfell
caca3af211 Merge pull request #496 from evindor/master
Fix MacOS/neovim detection for extra menu options
2015-11-12 14:23:28 +00:00
Jonathan Seidel
88104d26ac Add ability to list file metadata...
(Based on a change by github.com/apbarrero))
Add menu/list command to display file metadata
Support OSX as well as Unix
2015-11-02 11:30:16 -08:00
Arseny Zarechnev
8996ea5bb5 Fix MacOS detection for menu, fixes #478 2015-10-04 01:59:40 +01:00
Martin Grenfell
3ce33f017e fix escaping for :edit when renaming files 2014-10-29 18:35:53 +00:00
Artem Baguinski
2fd0aa3ec7 Fix reloading renamed file 2014-09-25 11:08:53 +02:00
Phil Runninger
6ccf83df24 Add menu option to display file/directory properties. 2014-09-15 11:14:44 -04:00
Martin Grenfell
23dfc6d818 continue breaking down the epic autoload module
Add 2 new classes and move code into them from autoload:

* NERDTree. Each nerdtree buffer now has a NERDTree object that holds
  the root node and will old other util functions
* UI. Each NERDTree object holds a UI object which is responsible for
  rendering, getting the current node, etc

Still a fair few methods to sort through in autoload (many of which will
end up in the above classes) - need sleep though.
2014-07-07 22:59:28 +01:00
Martin Grenfell
3863e69733 Merge pull request #316 from ZeroProbability/master
Issue 315 - Incorrect buffer deleted on file delete
2014-06-26 22:48:14 +01:00
Martin Grenfell
a45304832b Merge pull request #295 from DanielleSucher/create_parent_directories_as_needed
Create parent directories as needed when creating or copying nested nodes
2014-06-26 09:35:02 +01:00
Tristan Koch
fbab099fa9 Support space in path when renaming 2014-05-30 13:05:37 +02:00
aramasamy
13b4058f2f Issue 315 - Incorrect buffer deleted on file delete 2014-02-21 00:46:15 +00:00
Danielle Sucher
eacd5d72ec Create nested parent directories as needed
Allows the user to create or copy a nested node
in a single step with ma or mc, recursively
creating nested parent directories if needed, and
without throwing any errors if they already exist.

[Finishes #163, #34]
2013-10-12 20:18:43 -04:00
Martin Grenfell
3e44d4ea5c Merge pull request #191 from ZeusTheTrueGod/master
Improve handling obsolete buffers when renaming or deleting a file via the NERDTree 'm' menu
2012-10-18 01:11:35 -07:00
Mark Rushakoff
92a31a6fb2 Fix typo in copy action 2012-10-03 12:39:56 -07:00
ZeusTheTrueGod
6b687977d9 Better handling file renaming and deleting
If you are renaming a file via the mm hotkey and it is already opened then all
tabs and windows containing the old file will be replaced with a
new file. Current tab and windows structure is not changed anymore

If you are deleting a file via the md hotkey and it is already open, i.e.
presents in buffer lists then a buffer will be removed but a window and tab
will be kept with a ':enew' file
2012-08-26 13:23:06 +00:00