* Define default values for new variables governing new "Default Open".
"Default Open" means to open a file with the Enter key (which of course
can be changed.) The key can be changed in the vimrc, and there is a
variable for specifying the Opener parameters for opening the node. This
lets the user decide whether Enter (or another key) will open a file in
the current tab or a new one, and whether or not to open the file again
in the tab or jump to a window where the file is already open.
* Remove the old mapping for <CR>, a duplicate of 'o'.
<CR> will be defined like all the other keys, in plugin/NERD_tree.vim
* Assign functions to the new <CR> key mapping.
Three separate functions handle directories, files, and bookmarks.
* Rename variables: NERDTreeCustomOpen and NERDTreeCustomOpenArgs
* Add documentation for NERDTreeCustomOpenArgs and NERDTree-<CR>.
* Make key mapping variables be indexed in the Vim help
* Remove angle brackets from <CR> to see if help navigation improves.
* Rename functions from defaultOpen... to customOpen...
* Use separate options for file and directory nodes.
* Update documentation for separate file/directory options.
* Update version number and change log.
* Change CR to <CR> in help tags.
* Fix missing backtick in patch number.
* Update the quickhelp text.
* Update Pull Request template.
* Update change log with simpler formatting of patch number.
* Get NERDTree version number directly from CHANGELOG.md
* Reformat the lists of contributors in the Change Log.
* Initialize the version text, just in case the while loop finds nothing.
* Better default node delimiter, based on presence of +conceal feature.
* Update documentation for node delimiter.
* Fix IF logic, and remove debug statements.
* Rewrite the NERDTreeNodeDelimiter help text to reflect new behavior.
* Change "NERD tree" to "NERDTree" and fix spacing in doc file.
* 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.