* Save/Set screen state also on WinLeave and WinEnter.
The particular use case here is when switching tabs with `gt` and the
NERDTrees have been mirrored.
* Update version number and change log.
* Wrap saveScreenState's statements in a try-catch block.
If you're in NERDTree, and you press : to open a command line, and then
press Ctrl+F to open the [Command Line] window, you will see errors
related to switching windows while in this function. (Those commands are
not allowed while in the [Command Line] window.) The try-catch block
handles the errors, preventing their being displayed.
* Update version number in change log.
* If file path doesn't exist, :NERDTreeFind its parent directory instead.
This happens in the following scenario:
```
:edit path/new_file
:NERDTreeFind
```
Instead of an error message about an **invalid path**, this change will
now find the parent directory instead. It will not work if the new file
is **path/new_folder/new_file**, and that's OK because even vim itself
cannot handle both the new folder and the new file; `:w` won't create
the new folder.
* Update version number in change log.
* Change version change from PATCH to MINOR.
* Reintroduce lost variable: splitMode.
* Add a space between splitMode and "split". `verticalsplit` is invalid.
* Update version number, and add attributions (PR authors)
* add option to spawn split from previous window
* Update some comments and remove debugging statement.
* Simplify the code, and make it respect NERDTreeWinPos and 'splitbelow'.
* Better logic for getting NERDTree window number when not active window.
* Use common functions for splitting windows. Make splitting respect user.
The placement of split windows now respects the user's choices for the
splitright and splitbelow settings, and the g:NERDTreeWinPos variable.
* Update version number in change log.
The ‘copy (p)ath to clipboard’ menu item was added
recently in this pull request:
https://github.com/scrooloose/nerdtree/pull/1002/files
However, this caused the NERDTreeMinimalMenu to
display ‘copy’ instead of ‘(p)ath’ because it was
simply using the first word of the item’s text.
This change fixes that bug by using a regex to
pick out the first word beginning with ‘(’
* Use :edit in openExplorer to allow NERDTreeHijackNetrw to do its thing.
* Remove commented-out code.
* Make `e` work on file nodes, opening a new NERDTree or netrw buffer.
* Update change log.
* Add ability to sort by extension and file size.
Use the tags [[extension]], [[size]], or [[-size]] in the
g:NERDTreeSortOrder list to accomplish this sorting.
* Prevent metadata tags being misused in getSortOrderIndex().
* Apply metadata tags only to files.
* Update NERDTreeSortOrder in help file.
* Update version number in CHANGELOG.
* Add an optional parameter to neredtree#exec to suppress all events.
The value doesn't matter, but 1 is a good choice. Its presence is an
indicator that tells NERDTree to tell Vim to ignore all events. I'm not
yet sure if there needs to be an else section to that if block. It may
be OK to allow all events to fire in the right situations.
* Supress events in all intermediate nerdtree#exec calls.
Finding all the right function calls is the key here.
* Make ignoreAll a required parameter to nerdtree#exec().
* Put required ignoreAll argument (==0) in where it's now needed.
* Ignore events when creating a new vertical split.
* Ignore events when closing NERDTree. This may need to be reverted.
* Remove debugging statment and commented-out code.
* Wrap remaining buffer/window-switching commands in nerdtree#exec().
* Update version number.
* Add a space between arguments in nerdtree#exec() calls.
* Revert "Use :mode only in neovim. MacVim still needs to use :redraw! (#1019)"
This reverts commit 4ac07f52a3.
* If not Neovim, use `:redraw!` as was done before.
* Update version number.
* Fix punctuation in NERDTree Menu instructions.
* Use :mode only in neovim. MacVim still needs to use :redraw!
* Make nerdtree#redraw do both redraw and redraw! based on a parameter.
* Make bang a required parameter.
* Replace all redraw statments with call nerdtree#redraw function calls.
* Update version in change log.
* Use :mode instead of :redraw! when updating screen.
In neovim, it will actually clear the whole screen, whereas, redraw!
does not.
* Update version number in change log.
* When searching for root line num, stop at the end of the file.
When using the following NERDTreeStatusLine, Vim would lock up and not
work anymore. The problem was that when trying to find the root line
number, the loop was continuing past the end of the file, looping
"forever". The fix was to simply stop at the end of the file.
let g:NERDTreeStatusline = "%{exists('g:NERDTreeFileNode')&&" .
\ "has_key(g:NERDTreeFileNode.GetSelected(),'path')?" .
\ "g:NERDTreeFileNode.GetSelected().path.getLastPathComponent(0):''}"
* Update change log.
* 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.
* Fix NERDTree opening with the wrong size.
There were two commands that seemed to be causing the NERDTree window to
open in exactly half the screen width. They are:
- silent! execute 'edit ' . t:NERDTreeBufName in _createTreeWin()
- setlocal nobuflisted in _setCommonBufOptions()
These commands were reseting the width of NERDTree. The solution I chose
was to resize the window after creating the new window, and then to set
winfixwidth before setting the other common buffer options.
* Update change log and version number.
* Update CHANGELOG and change it to Markdown format.
* Add PR template with checklist for advancing the version number.
* Update version number.
* Change PR number in change log and PR template.
* 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.
* Fix "R doesn't work when doing 'vim <folder>'" a different way.
Instead of assigning a value to t:NERDTreeBufName for a window tree,
which is used to determine if NERDTree is open, simply also look at the
current buffer's name to see if it matches the NERDTree pattern.
* Replace hardcoded buffer name prefix with BufNamePrefix() function.
* Add debugging messages to diagnose issue #931.
* Echo the CWD and NERDTree root too.
* Ensure DirArrows are trimmed to a single character.
Actually, it's up to the user to make sure it's a single character after
leading and trailing spaces are removed. Spaces need to be removed so
that an accurate level of indentation can be calculated.
* Remove debugging statements
* Simplify the algorithm for calculating indentation level.
1. Replace the DirArrows with a single space.
2. Count the leading spaces.
3. Divide by 2.
This allows users to specify multi-character arrows, where a spaces
prevent characters printing on top of each other.