* Fix new NERDTrees' width when previous one was in the only window.
When leaving a NERDTree buffer, its window's width is remembered so that
that width can be used when showing the buffer again in a new window. If
NERDTree is the only window when leaving the buffer, it remembers the
whole width of the editor. When a new NERDTree window is created, it is
sized such that there is only a very small window for files to be opened
into.
To fix this, if NERDTree is the ONLY window, remember its width as the
value of g:NERDTreeWinSize, not the width of the editor.
* Update version number in change log.
* Limit opening or previewing into a split window to only file nodes.
* Prevent previwing directory nodes, which would create another NERDTree.
* Refactor the previewBookmark code to open directories a better way.
* Update version number in change log.
* Update documentation.
* Add open/preview in split/vsplit to bookmarks.
* Make preview split/vsplit bookmark work only on file nodes.
* Add quickhelp text for split/vsplit commands on bookmarks.
* Handle previewing directory bookmarks properly.
* Update documentation: bookmarks can be opened in a split/vsplit.
* Update version number in change log.
* Closes#1136. Allow concealed characters to show another character.
conceallevel=3 always hides the character, but conceallevel=2 allows an
alternate character to be displayed instead.
* Update version number in changelog.
* support for default viewer in Windows
* updated changelog
* Update nerdtree_plugin/fs_menu.vim
Co-authored-by: Phil Runninger <PhilRunninger@users.noreply.github.com>
* Update nerdtree_plugin/fs_menu.vim
Co-authored-by: Phil Runninger <PhilRunninger@users.noreply.github.com>
Co-authored-by: Phil Runninger <PhilRunninger@users.noreply.github.com>
* * fix duplicated slash in s:Path.isUnder() (on windows OS, for root directory on drive Path.str() return path with [back]slash)
* * Rewrite NERDTreePath.isUnder() and NERDTreePath.isAncestor() for direct comparison of paths without transformations
* Remove trailing slash, so we don't end up with two on root folder.
The str() function returns "C:\" on the root folder and "C:\temp" on
non-root folders, one with and one without a trailing backslash. This
inconsistency needs to be handled so the stridx() function will work
correctly.
* Make sure the change also works in a non-windows file system.
This commit handles an edge case that can be triggered with these
commands:
:cd /home/me
:e /foobar.txt (an existing file)
:NERDTreeFind
What happened was the root directory name '/' was being Resolved(), and
the trailing (and only) slash was being removed. The NERDTree was then
created in the current working directory, instead of the root directory.
:NERDTreeFind then wasn't able to find foobar.txt, and printed an error.
* Remove degugging statements.
* * ambiguity issue fix
Co-authored-by: Phil Runninger <philrunninger@gmail.com>
* Fix example code for the NERDTreeAddKeyMap function.
The quickhelpText didn't match what the statement in the callback
function actually did.
* Update version number in change log.
* Don't recreate the NERDTree if its root is the same as being requested.
* Use single quotes per Vint's style recommendation.
* Update version number in changelog.
* Use a simpler method of getting the NERDTree root path.
* Remove variable. Just compare agains the function call's result.
* Improve "g:NERDTreeQuickLook()"
The following improvements were made...
- Use variable sigils
- Shorten a local variable name
- Prefer an early return over testing for a negative
- Switch to single quotes
- Call "shellescape()" to pass a command argument [IMPORTANT!]
The final change is a critical fix for the security and reliability
of this function (see ":h system()").
Similar fixes for the other functions in this script will follow.
* Improve "g:NERDTreeRevealInFinder()"
This commit makes several style improvements and adds a missing call
to the "shellescape()" function.
See also: 56cfbcff1e
* Improve "g:NERDTreeExecuteFile()"
Refer to: 56cfbcff1e
* Improve "g:NERDTreeRevealFileLinux()"
Refer to: 56cfbcff1e
* Improve "g:NERDTreeExecuteFileLinux()"
Refer to: 56cfbcff1e
* Properly reveal "/" on Linux
This commit handles the edge case where a user invokes the "reveal"
function on "/" on a Linux box. There is nothing to do but open the
root directory itself since "/" has no parent.
* Update the "CHANGELOG.md" file
* Add final missing "shellescape()" calls
I initially thought that there were several more locations where
a call to "shellescape()" was required but omitted. However, there
are only two. I suppose I should have taken the time to look.
Fixing these was easy. I would be surprised if this change breaks
anything on the user side.
* Update the "CHANGELOG.md" file (again)
Use a more fitting description of the change...
* Fix infinity loop in FindParentVCSRoot (on windows os with 'set shellslash' in vimrc and no VCS in path)
* update CHANGELOG.md
* Update CHANGELOG.md
Co-Authored-By: Phil Runninger <PhilRunninger@users.noreply.github.com>
Co-authored-by: evgenij.vidershpan <evgenij.vidershpan@yandex.ru>
Co-authored-by: Phil Runninger <PhilRunninger@users.noreply.github.com>
* File Move: Escape existing directory name when looking for open files.
* Update version number in change log.
Co-authored-by: Phil Runninger <prunninger@vhtcx.com>
There was a fix in #1043 which improves the behavior for non saved
filenames. Those are not on disk, but also not empty. This lead to an
issue #1059 where actual "empty files" like created with vim-startify or
stdin lead to an error. This change fixes this by adapting the order of
the tests. It'll print "no file for the current buffer" for empty files.
Solves #1059
* Change CWD when switching tabs to the tab's NERDTree root.
* Remove commented-out code.
* List the new possible value for NERDTreeChDirMode in doc.
* Add new option to select between `:cd` and `:tcd`.
* Document the new NERDTreeUseTCD option.
* Update version number in change log.
* 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.