Commit Graph

1268 Commits

Author SHA1 Message Date
Phil Runninger
2cbc76bbfd
Fix NERDTree opening with the wrong size. (#1008)
* 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.
2019-06-27 01:34:10 -04:00
Phil Runninger
347a58b0b0
Update Changelog and create PR Template (#1007)
* 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.
2019-06-27 01:28:45 -04:00
Phil Runninger (mac)
33fe2fdf16 Switch to new issue template paradigm, with separate templates. 2019-06-20 08:50:48 -04:00
Phil Runninger
c46fbd21e3
Spacing changes in issue template 2019-06-20 08:17:50 -04:00
Phil Runninger (mac)
b213fae779 Update the issue template. Shout out to @ryanoasis for the inspiration. 2019-06-19 18:38:57 -04:00
Phil Runninger (mac)
b9a421b2d5 Remove the bug.md template. Not able to make multiple templates. 2019-06-19 16:02:55 -04:00
Phil Runninger (mac)
254f7678f3 Move bug.md to its proper folder. 2019-06-19 15:50:35 -04:00
Phil Runninger (mac)
318fb2d0de Add new issue template, just for bugs. 2019-06-19 15:45:22 -04:00
Phil Runninger
9bedadd062
Refresh a dir_node if the file wasn't found in it, and look once more. (#1005) 2019-06-18 10:27:00 -04:00
Phil Runninger
12dea6ccb2
Add a "copy path to clipboard" menu option (#1002)
* 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.
2019-06-13 09:17:19 -04:00
Phil Runninger
70dc34cb69
Enable root refresh on "vim ." a different way than #999. (#1001)
* 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.
2019-06-13 09:16:56 -04:00
Phil Runninger
28eb47e267
Fix refreshroot (#999)
* Set t:NERDTreeBufName when creating a window tree.

* Change folding markers.
2019-06-07 21:41:47 -04:00
Daniel Manary
67fa9b3116 Change version check to look for 03 not 30 (#994)
My Vim reports as 704 when it is version 7.4, so this number should be 703 not 730
2019-05-09 16:25:36 -04:00
Phil Runninger
a3f0e66793
Change minimum vim (#991)
* Add a new function to implement and() from vim 7.4.

* Change minimum required version of vim to 7.3.
2019-05-09 10:12:25 -04:00
Phil Runninger (mac)
3c06335782 Escape the DirArrow strings in substitute function. 2019-04-23 10:26:30 -04:00
Phil Runninger
9226eab2a8
Allow multi-character DirArrows (#985)
* 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.
2019-04-22 15:58:06 -04:00
Phil Runninger
e126b8745d
Remove redraw! while still clearing last message empty string. (#979) 2019-04-16 09:55:20 -04:00
Phil Runninger (mac)
7513f256aa Fixes #970. Restore silent parameter to _initChildren.
https://github.com/ryanoasis/vim-devicons uses this function directly
with silent set to 1.
2019-03-26 11:57:21 -04:00
Terry Ding
839cddc750 fix _initChildren function value set to numChildrenCached error (#969) 2019-03-26 02:03:12 -04:00
Phil Runninger
e3e600608a
On Windows, do a case-insensitive comparison of paths. (#967) 2019-03-25 22:32:07 -04:00
Phil Runninger
0efbdfbc5a
Remove the "Please wait... DONE" messages. (#966) 2019-03-25 22:29:21 -04:00
Phil Runninger
288669db1f
Smarter delimiter default (#963)
* 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.
2019-03-07 08:24:17 -05:00
Spencer
e1916d6fe7 Update directory .vimdc readme example (#961)
* set pwd for new window

* adding 'cd '.argv()[0] explination

* spacing

* exe

* [0]
2019-03-05 11:25:49 -05:00
Chris Patuzzo
84737f2ebe Add a NERDTreeMinimalMenu feature (#938)
* 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.
2019-02-24 18:01:12 -05:00
Phil Runninger
b6cde142dd
Preview bookmarks (#956)
* 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.
2019-02-22 08:21:20 -05:00
Phil Runninger
9eda9ce6a1
Add new value to NERDTreeQuitOnOpen to close bookmark table (#955)
* Update documentation for new NERDTreeQuitOnOpen values.

* Modify use of NERDTreeQuitOnOpen, keeping current behavior.

* If applicable, close the bookmarks table before opening the target.
2019-02-21 07:47:15 -05:00
Phil Runninger
2e0b101d57
Add an :EditBookmarks command to edit the bookmarks file (#954)
* 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.
2019-02-20 23:57:51 -05:00
Phil Runninger (mac)
f4d2b301b7 Merge branch 'master' of github.com:scrooloose/nerdtree 2019-02-18 15:53:39 -05:00
Phil Runninger (mac)
4ef9967e29 Update the documentation to better explain the delimiter character. 2019-02-18 15:52:23 -05:00
Phil Runninger
842f5cabaa Before deleting, turn off &shellslash. Restore after delete is done. 2019-02-17 22:03:49 -05:00
Phil Runninger
cce52fb9c5
Before copying, turn off &shellslash. Restore after copy is finished. (#952) 2019-02-17 18:30:10 -05:00
Phil Runninger
c05615fd80
Set a maximum window size when zooming. (#950) 2019-02-15 03:10:28 -05:00
Phil Runninger
5e8aa9e721
Confirm the wipeout of a unsaved buffer whose file has been renamed. (#949) 2019-02-14 17:44:31 -05:00
Phil Runninger
74be22deb7
Escape a backslash so it can be used in a key mapping. (#948) 2019-02-14 15:28:30 -05:00
zcodes
8cc154d4b0 fixed root path error for windows (#935)
* fixed root path error for windows

* simplify condition check
2019-02-01 07:50:55 -05:00
Phil Runninger
72c3656799
Add new command to open NERDTree in the root of a VCS repository. (#872)
* 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.
2018-12-12 13:30:13 -05:00
Phil Runninger
a4dd4e1dce
Restore getDirChildren for use in nerdtree-project-plugin. (#929)
This function was added to support a separate plugin:
https://github.com/scrooloose/nerdtree-project-plugin.git. It was
subsequently removed without recognizing its contribution to the
external plugin. This commit restores that function so NERDTree projects
will work.
2018-12-11 22:44:55 -05:00
Phil Runninger (mac)
c1876da09c Change things up with the artwork on the "cover" of the help doc. 2018-12-06 19:29:25 -05:00
Phil Runninger (mac)
743b849dcf Add a happy little tree to the "cover" of the help document. 2018-12-06 15:07:13 -05:00
Phil Runninger
ffa8be8aa7
Document NERDTreeNodeDelimiter #912 (#926)
* 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.
2018-12-06 01:08:16 -05:00
Arvid Gerstmann
c905a5d7b8 Allow modification of menu keybindings (#923) 2018-11-29 09:17:39 -05:00
Phil Runninger
370eb5bcb4
Add two more disqualifications for isCascadable(). (#914)
* Add two more disqualifications for isCascadable().

A directory that is bookmarked or that is a symlink to another location
has trailing text indicating so. This extra text causes problem when
cascading with a directory underneath it, so disable it in this case.

* Add comments to explain the new exclusions for bookmarks and symlinks.
2018-11-20 13:33:23 -05:00
Phil Runninger (mac)
f406af39cf Merge branch 'master' of github.com:scrooloose/nerdtree 2018-11-12 11:18:07 -05:00
Phil Runninger (mac)
64c3a6aed3 Change the containedin to ALL to conceal delmiter after filename. 2018-11-12 11:17:20 -05:00
Kristijan Husak
6fe967b3b3 Allow highlighting more than one flag. (#908) 2018-11-05 10:12:07 -05:00
Phil Runninger (mac)
8d005db94f Use substitute() for backward compatibility. Change conceallevel to 3. 2018-10-31 08:45:43 -04:00
Phil Runninger
91e0f2253f
Support unusual characters in file and directory names (#868)
* Use a delimiter in node to separate file/dir name from the rest.

* Switch warning message to use nerdtree#deprecated function.

* Compress the space between the tree symbols and the node.

* Include the delimiter when calculating indent or getting filename.

* Don't need to strip leading delimiter. It will already be gone.

* Simplify the way the delimiter is being used.

I don't know what I was thinking. The delimiter doesn't need to be used
to separate every indicator on the node's text, ie.

Bad:    Tree|GenericFlags|Filename|ExecutableFlag|Link|ReadonlyFlag
Better: Tree GenericFlags|Filename|ExecutableFlag Link ReadonlyFlag

This was unnecessary, given that we're only interested in the filename.
So, just one pair of delimiters is all we need. That greatly simplifies
the _stripMarkup function, and restores a bunch of other statements to
what they already are in the master branch.

* Add syntax highlighting to conceal the delimiter

* Put a if has("conceal") check around the syntax statement using it.

* Make concealment work correctly for LinkFile and readonly files.

* Use highlight Ignore if conceal isn't available.

This is probably the best we can do, especially if some other character
must be used in place of nbsp.

* Make the regex better match the original, but more compact.

It was allowing 2+ spaces, instead of only 1+.

* Fix the syntax highlighing of delimiters around NERDTreeExecFile.

* Bug fix: Parse . and .. from path string with trailing slash.

* Fix unresponsive cascaded directories.

Using ':' as a more visible delimiter, when directories are cascaded,
the line appears in NERDTree like so:

▾ :lib/::nerdtree/:

Before this commit, the s:UI._stripMarkup function was leaving the
internal delimiters in place (lib/::nerdtree/). Now they are removed,
resulting in a valid path (lib/nerdtree/).

* Use .= to shorten statement. Use clearer substitutes to get node name.

* Remove node delimiters that terminate the line.

* If flags are needed after the node name, then put another delimiter
before them.
* When joining directory nodes for cascaded display, strip off the
delimiter from the child node(s).
* Remove the unnecessary substitution of doubled intermediate
delimiters, since they're not in there anymore.

* DRY up the addition of the 2nd delimiter, and use only 1 for all tags.
2018-10-24 22:41:13 -04:00
Phil Runninger
c372911c4a
Refresh buffers after m, m operation on a folder (#888)
* WIP: Wow! That's an ugly diff. I'm not done yet, though.

* Fix the ugliness of the previous commit, and finish the work.

If the node being renamed is a directory, get a list of all open buffers
whose file lives in the old directory. If that list is not empty, ask
the user if he wants to replace the old buffers with the new files. The
logic to handle renaming a file node stays the same, although the code
has been refactored a bit.
2018-10-24 22:20:59 -04:00
Phil Runninger
388623e702
Support sorting files and directories by modification time. (#901)
* 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.
2018-10-24 22:18:18 -04:00
Phil Runninger
92a20c0736
Bug fix: Parse . and .. from path string with trailing slash. (#899) 2018-10-24 22:14:18 -04:00