* create a explorer command that opens a window tree at specified
directory
* update CHANGELOG.md
* Update CHANGELOG.md
* revert CHANGELOG.md
* CreateExplorerTree matches :Explore command
* prevent empty split when calling NERDTreeExplorer with invalid arg from modified buffer
* NERDTreeExplore/CreateExploreTree checks for hidden and
autowriteall settings
* Added NERDTreeCaseInsensitiveFS option.
* check against g:NERDTreeCaseInsensitiveFS with path.equals method
* Fixed issues in comments and added nerdtree#runningMac
* Using nerdtree#runningMac instead of manual checks for mac
* Better implementation
* Updated documentation
* Added notice about the flag
* Updated the documentation
* Added support for g:NERDTreeCaseSensitiveFS = 3
* Better comments
* Exported caseSensitiveFS check as a function
* Put `Callback` function variables in local scope.
This change prevents conflict with other `Callback` functions that are
defined elsewhere in global scope.
* Update version number in change log.
* Replace #and() with two more-specific functions.
* Push NERDTreeQuitOnOpen checking earlier in the call stack.
* Fix bug in `go` key for file bookmarks. It was behaving like `gs`.
* Fix the `o` mapping for bookmark nodes and the g:NERDTree reference.
* Use get() function to shorten if statement logic.
* Update version number in change log.
* Remove obsolete reference to MERDTreeQuitOnOpen in comment.
* Removed directory separator from sort key
Directories had an additional separator appended to them which caused improper comparisons for other directories that shared similar prefixes.
* Updated changelog
* Add ability to specify a path to be ignored.
This ignore expression compares itself against the whole path of the
node, instead of just the tail component of the node.
* Remove debug statements and make it work on Windows.
* Restore the original self.str() to get OS-specific paths for comparing.
Using the UI-formatted path had two problems.
1. It always appended a forward slash at the end of the path, which was
unnecessary and made patterns like '/tmp/cache$[[path]]' not work as
expected.
2. It always used forward slashes to join the path components. I thought
this would be a good thing, but there's no reason to force Windows
users to use that syntax. They'll just need to remember to escape the
backslashes, like so: '\\Temp\\cache$[[path]]'
* Add documentation for the new [[path]] tag for NERDTreeIgnore.
* Replace the abbreviation 'dir' with the full word 'directory'.
* Update version number in change log.
* Make sure a mirrored NERDTree is displayed at correct width.
* Remove references to unused variables.
b:NERDTreeOldWindowSize was referenced, but never set anywhere. No need
to keep it around.
* Refactor: Initialize variables a different way.
Using the get() function allows us to "let" variables more directly,
without using the execute command or requiring strings to be escaped.
This also eliminates the s:initVariable function. The new format is
shown below, and defines a default value if the user didn't provide a
value in the vimrc file.
let g:var = get(g: 'var', 'default value')
* Update version number in change log.
* Fix alignment of `let g:var = get(g:, 'var', <default>)` statements.
* Add a function to compare path objects.
* Remove redundant node comparison function, and rename the ones left.
* Remove the compareTo function in the Path object.
Use nerdtree#compareNodePaths(p1,p2) instead. There was no need for two
comparison functions that do the same thing. They were a little
different in their details, but that shouldn't be the case. Having only
one such function makes better sense and is easier to maintain.
* Update version number in change log.
* Replace s:Path.Slash() with nerdtree#slash().
* Check the value of &shell when determining the slash under Windows.
* Leave &shellslash unchanged when forming copy/delete commands.
* Fix fold marker.
* Update version number in change log.
* Add abort attribute to nerdtree#slash() to satisfy Vim style guide.
Co-authored-by: Phil Runninger <prunninger@vhtcx.com>
* 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.
* 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.
* * 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>
* 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...
* 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.