* 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.
* Add function to preview bookmarks.
File bookmarks are previewed like regular file nodes.
Directory bookmarks are located with NERDTreeFind in the current tree.
* Update help doc to include the new bookmark preview functionality.
* Update documentation for new NERDTreeQuitOnOpen values.
* Modify use of NERDTreeQuitOnOpen, keeping current behavior.
* If applicable, close the bookmarks table before opening the target.
* Add a new NERDTree buffer command to edit the bookmarks file.
* Update the mini-help panel with missing bookmark commands.
* Update the help file with the new :EditBookmarks command.
* Add new command to open NERDTree in the root of a VCS repository.
* Add another example to the help file.
* Refactor and make NERDTreeVCS work on Windows.
* Don't crash when NERDTreeVCS is given a nonexistent folder.
* Move VCS code to a plugin script.
* Add some documentation to the top of vcs.vim.
* Change the default node delimiter to the BELL character, \x07.
* Syntax match by ASCII code, vs. string concatenation.
* Document the NERDTreeNodeDelimiter setting.
* Clean up the documentation markup.
* Remove apostrophes, since the NERDTree settings aren't vim options.
* Use backticks to hot-link the referenced vim options.
* Add a modeline.
* Update the title and the About section of the documentation.
* Fix typo, and clarify branches of code in Github.
* Fix wrapping to 78, and remove colorcolumn setting from modeline.
* Change the ASCI Art title, and give credit for it.
* Change the word option to setting, and redo the word wrapping.
I want to reserve the word 'option' to mean only Vim options that are
changed with the `:set` command. Since we need to use `:let` to
establish the values for the NERDTree variables, I choose to call them
settings instead.
* Realign hot-links with concealed markup tags taken into account.
* Text alignment, typo fixes, and wordsmithing the About section.
* Introduce a flag to to sort by the node's modification time.
This flag is part of the NERDTreeSortOrder list. '[[timestamp]]' sorts
oldest to newest, while '[[-timestamp]]' sorts newest to oldest. Its
position in the array determines whether it is the primary sort (first
position) or secondary sort (any other position). The remaining elements
in the array describe the other sort level following all prior rules. If
needed, a tertiary sort is done alphabetically on the filename.
Examples:
['[[timestamp]]'] - oldest to newest
['\/$','*','[[-timestamp]]'] - dirs, then files, each newest first.
When using this flag, performance is slowed a little because the sortKey
is always recalculated with every sort. Why? Because if a file is saved
(either in vim or by an outside program), NERDTree needs to go back out
to the shell to get the new modification time.
* Update NERDTreeSortOrder documentation.
The new `[[timestamp]]' and '[[-timestamp]]' flags are added to support
sorting by modification time.
* Fix the inequality. Must be >= to force recalculation of _sortKey.
* Move `let path=` closer to where it's used.