Commit Graph

548 Commits

Author SHA1 Message Date
alvan
98a5d1fca7 Use event BufLeave instead of BufWinLeave to record screen state to avoid undefined b:NERDTree error
Use event BufLeave instead of BufWinLeave to record screen state. The BufWinLeave event also triggered when exiting(:qa), will cause an undefined b:NERDTree error.
2014-07-09 15:20:24 +08:00
Martin Grenfell
23dfc6d818 continue breaking down the epic autoload module
Add 2 new classes and move code into them from autoload:

* NERDTree. Each nerdtree buffer now has a NERDTree object that holds
  the root node and will old other util functions
* UI. Each NERDTree object holds a UI object which is responsible for
  rendering, getting the current node, etc

Still a fair few methods to sort through in autoload (many of which will
end up in the above classes) - need sleep though.
2014-07-07 22:59:28 +01:00
Martin Grenfell
f982f61e8a continue breaking up the autoload/nerdtree god module 2014-07-07 21:34:57 +01:00
Martin Grenfell
b33d6daf0b remove the NERDChristmasTree option
If users want to customise the tree colours, this can be done trivially
in their vimrc. e.g.

    hi link NERDTreeFile error
2014-06-29 19:53:57 +01:00
Martin Grenfell
0928b5b026 Merge pull request #251 from pendulm/master
fix typo and smart close single child directory
2014-06-27 19:25:48 +01:00
Martin Grenfell
8b48413155 rename NERDTreeWildIgnore option and refactor the usage of it
Rename it to the more intention revealing NERDTreeRespectWildIgnore.

Use it directly in the `globpath()` call rather than surrounding if
statement. Its subjective, but I find this clearer.

Add an initializer for the option.
2014-06-26 10:02:42 +01:00
Martin Grenfell
23d2d19846 Merge pull request #331 from jinnko/add-bookmarks-sort-flag
Add flag to disable/enable bookmark sorting
2014-06-26 09:27:58 +01:00
Jaeho Shin
43842e0de5 Option for mixing dot files when sorting
NERDTree can now optionally ignore the dot at the beginning of hidden
filenames for sorting to show them next to normal files if
`g:NERDTreeSortHiddenFirst` is set to 0.  (By default it's set to 1 to
preserve the current behavior.)  This is just like what GNU ls does when
`LC_COLLATE` environment variable is set to `en_US`.
2014-06-09 23:11:44 -07:00
Jinn Koriech
e38d8a8340 Add flag to disable/enable bookmark sorting
The bookmarks are normally sorted, however with a newly introduced
flag this can be disabled.
2014-04-24 15:51:55 +01:00
pendulm
60683f1cce Fix typo Casade to Cascade 2013-04-22 23:35:15 +08:00
Martin Grenfell
eaf19734e7 move the class files out of the plugin dir
On some new versions of vim these files were being loaded before the
main NERD_tree.vim which was causing errors as dependencies werent
loaded in time. Move the classes into lib - so vim wont try to load them
until we tell it
2013-04-13 20:32:25 +01:00
Martin Grenfell
9a341ec18f fix a bug where the user couldnt override the mapping for <cr> 2013-04-09 10:10:14 +01:00
Martin Grenfell
40d05ace57 catch an error thrown when refreshing a dir with a FIFO or socket 2013-01-30 13:54:30 +00:00
Martin Grenfell
64cb6204cc move a couple of functions into NERDTreeCreator
The "next buffer name" functions are only used in NERDTreeCreator so put
them there.
2013-01-09 09:51:28 +00:00
Martin Grenfell
c3b63d2fd9 add some class methods to wrap the NERDTreeCreator public methods
This is needed because some versions of vim dont let you chain method
calls together. So do the work in NERDTreeCreator instead of forcing all
callers to break the New().createXXX() calls out onto 2 lines with an
intermediate variable.

Fixes #226.
2013-01-09 00:43:37 +00:00
Dmitry Kasimtsev
f5956dbbcf fixed error messages on copy node in NERDTree buffer 2013-01-08 17:17:04 +02:00
Martin Grenfell
25b80b8a16 extract the tree creation functions out into their own class
Add the NERDTreeCreator class.

Stick all functions related to creating a primary/secondary/mirror
nerdtree in there. We may break this down further in the future, but
this is a good starting point.

Make some of the interface binding functions in autoload/nerdtree
public. This is needed since we are accessing some of them from
NERDTreeCreator. Should be temporary until we get some kind of proper
interface binding system set up.
2013-01-08 00:04:30 +00:00
Martin Grenfell
29d3db8ffe fix a couple of function calls that should have been renamed
Call nerdtree#echo, not s:echo. This was changed in the big refactor.

Fixes #224.
2013-01-06 00:56:22 +00:00
Martin Grenfell
2eff928e7c some cosmetic updates to the class files
* fix the fold markers (they were unnecessarily deep)
* always have one line under each method
* update some of the fold comments -> always use FUNCTION in all caps
* add a modeline to each class file
2013-01-05 12:30:07 +00:00
Martin Grenfell
cc0777b792 move KeyMap_Invoke into the autoload file
This will keep the class file cleaner, and may also fix #223
2013-01-05 11:44:48 +00:00
Martin Grenfell
8a984260e7 manually apply #220 to fix NERDTreeFind for hidden dirs 2013-01-05 01:48:13 +00:00
Martin Grenfell
fb4a5a116a decompose the giant NERD_tree.vim file
* Move the classes out into `plugin/nerdtree/<classname>`.
* Move the other functions out into `autoload/nerdtree.vim`.

Stuff still to do:

* extract out at least one view class from `autoload/nerdtree` -
  something like NERDTreeWindow
* figure out which functions in autoload/nerdtree should be scoped to
  the script instead of public
2013-01-05 01:08:06 +00:00
Chris Perl
bb1390c0c7 Fix s:Path.Resolve to it handles '/' properly 2012-12-10 14:44:01 -05:00
Martin Grenfell
1dc3891f96 Merge pull request #204 from techlivezheng/feature/chrootcwd
Add a NERDTreeCWD command to change tree root to CWD
2012-11-12 02:10:45 -08:00
Martin Grenfell
dff80ff7d0 Merge pull request #203 from techlivezheng/feature/find-in-existing-window
Reveal the current editing file in current NERDTree window instaead initiating a new one
2012-11-12 02:06:22 -08:00
Martin Grenfell
30a770aab0 add Path.isUnixHiddenFile and refactor to use it 2012-11-12 10:01:15 +00:00
Techlive Zheng
072d46880a Add a NERDTreeCWD command to change tree root to CWD 2012-11-05 19:11:44 +08:00
Techlive Zheng
c59ac8fba1 Make NERDTreeFind use an existing NERDTree window 2012-11-05 01:25:11 +08:00
Techlive Zheng
ce6c347f85 Make NERDTreeFind work on hidden files 2012-11-05 01:25:11 +08:00
Joseph Thomson
16268c9c21 Fix call to globpath() for Vim 7.2 and below.
globpath() takes an extra optional parameter in Vim 7.3, but this
breaks NERD tree on earlier versions.
2012-10-29 16:30:29 +00:00
Martin Grenfell
d62180d0ff Merge pull request #150 from cperl82/issue-144
Replace virtcol() with len() in handleLeftClick().
2012-10-15 05:55:21 -07:00
Martin Grenfell
b64f4428c1 default NERDTreeCasadeOpenSingleChildDir to 1 2012-07-05 15:51:13 +01:00
pendulm
29e687978b add option NERDTreeCasadeOpenSingleChildDir and function
TreeDirNode.openAlong for Issues #179.
2012-07-05 22:26:57 +08:00
Martin Grenfell
dbeb1947ea Merge pull request #172 from stephenprater/master
Files matching wildignore patterns are not shown in NERDTree
2012-06-30 01:59:22 -07:00
Frank S
87208d210b Fixed typo. changing s:clearBoomarks to s:clearBookmarks. 2012-06-27 20:07:52 -07:00
A.G. Russell Knives
121607b351 ignore wildignore setting 2012-06-14 09:57:24 -05:00
Martin Grenfell
2cb0fc78fb add autocmds for fugitive integration
Add 2 autocmds - NERDTreeInit and NERDTreeNewRoot. These are called when
a tree is created and when the root is changed. The goal is to give the
fugitive plugin something to listen for so it can add the G* commands to
nerdtree buffers in git repo dirs.
2012-04-02 14:51:19 +01:00
Chris Perl
94b2db2de6 Replace virtcol() with len() in handleLeftClick().
When 'virtualedit' is set, the column where the cursor resides can no longer be
relied on for determining the number of elements in the 'line' list for
iterating.  Replacing virtcol() with len() seems to work correctly and not
result in E684 errors.  Fixes Issue #144
2012-03-17 09:36:47 -04:00
Martin Grenfell
678bb28168 add NERDTreeFocus command - calls the NERDTreeFocus() function 2012-02-17 15:31:37 +00:00
Martin Grenfell
aa1e7d642f fix previewing of directory nodes
Previously if we used the gi/gs mappings on a dir node/bookmark the
cursor would end up in the new window. Now it stays in the current
window as expected
2012-02-16 16:31:50 +00:00
Martin Grenfell
7e7e761d7f Merge pull request #122 from cperl82/fixes
Add calls to NERDTreeAddKeyMap for previewing Bookmarks
2012-02-16 08:16:51 -08:00
Martin Grenfell
0b3b8f7833 add NERDTreeFocus function 2012-02-16 16:11:44 +00:00
Andrew Radev
71465f79b1 Don't output a message on opening a file node 2012-02-14 12:38:52 +02:00
Andrew Radev
ff0816979c Remove second "edit" from Opener 2012-02-14 12:38:23 +02:00
Chris Perl
30cc73d6ed Make handling of '<>' notation more robust.
Previous case could fail with something like '<Tab><Tab>'.  Cases like
that should be handled correctly now.
2012-01-27 00:12:33 -05:00
Martin Grenfell
7fbb77c067 fix the ctrl-j/ctrl-k mappings 2012-01-26 23:59:07 +00:00
Chris Perl
f29d6a4f0f Escape mappings that use '<>' notation.
KeyMap.bind() does not gracefully handle use of '<>' notation.  For
example, trying to call NERDTreeAddKeyMap() with a 'key' argument of
'<Leader>e'.  There were some workarounds KeyMap.bind() to help with
this by specifically allowing you to leave off the '<>' parts for
'<C-...>', '<M-...>' and mouse mappings and it would add them back for
you before creating the mapping.  This commit reverts some of that logic
and simply says that if the key starts with '<', replace it with <lt>.
2012-01-26 17:06:42 -05:00
Chris Perl
597cccce0f Add calls to NERDTreeAddKeyMap for previewing Bookmarks
These calls to NERDTreeAddKeyMap use the same callback as when these
keys are mapped with a 'scope' of "Node."  This should not pose a
problem though as s:previewNodeCurrent, s:previewNodeHSplit and
s:previewNodeVSplit all just call the passed in node's open() method,
which gets passed on to an Opener object.
2012-01-25 15:57:41 -05:00
Martin Grenfell
eced5f98a0 Merge pull request #110 from cperl82/fixes
Symlinks Not Showing as Symlinks
2012-01-11 12:19:41 -08:00
Martin Grenfell
20f7ab8ade map <cr> to the default o mapping (again)
this was broken in one of the recent "epic refactor" commits
2012-01-11 20:03:56 +00:00
Martin Grenfell
e5682d3948 dont close the tree window when using the 'preview' maps 2012-01-11 19:55:27 +00:00
Martin Grenfell
b843635a50 fix NERDTreeQuitOnOpen option 2012-01-11 19:55:18 +00:00
Chris Perl
ba74b99fd7 Add s:Path.Resolve function to address trailing slash issues.
The core issue is that in some versions of vim resolve() will remove trailing
slashes, while in others it will not.  This lead to commit
bc745b6e99 attempting to address a double slash
problem.  However, that broke symlink detection on systems where resolve()
removes trailing slashes.  This new function just calls vim's resolve()
function, but removes trailing slashes if they exist.
2012-01-11 10:55:39 -05:00
Chris Perl
6d0183ea78 Revert "Fixed resolve() double endslash defect"
This reverts commit bc745b6e99.  This
broke symlink detection on systems where vim's resolve() removes the
trailing slash from a path.
2012-01-11 09:31:03 -05:00
Twinside
5c01c5acd8 Deactivating folds in NERDtree buffer 2012-01-11 15:20:57 +01:00
Martin Grenfell
6d83575490 remove a now misleading comment 2012-01-11 13:46:46 +00:00
Martin Grenfell
e51a40c0d8 make the mouse work as expected with NERDTreeMouseMode
This was broken at some point - fix it.
2012-01-11 13:44:19 +00:00
Martin Grenfell
53bc77644c refactor KeyMap so we dont use index() on an array of objects
Dont do `remove(array_of_prototype_obs, index(...)))`. In the past this
has been found to cause seg faults when the objects get large.
2012-01-11 13:08:08 +00:00
Martin Grenfell
6782ec0104 make the default keymap generation happen only once
Previously we are doing this every time a nerdtree window was created -
which is wrong and was removing custom mappings from users that overrode
default key mappings.

Now we only generate the defaults once.
2012-01-11 13:06:15 +00:00
Martin Grenfell
588e71c1e9 unlet TreeDirNode.openInNewTab since we are overriding it
Older versions of vim require you to unlet a dictionary function if you
are replacing it (i.e. overriding it in a prototype OO scenario). The
unlet call got lost in the recent refactoring.
2012-01-11 09:09:38 +00:00
Martin Grenfell
6b7c9aa5c8 update the method comment for TreeDirNode.open 2012-01-10 09:31:07 +00:00
Martin Grenfell
5e53df769d fix a bug with the T (open in new tab silently) mapping 2012-01-10 09:31:07 +00:00
Martin Grenfell
3b325f6812 rename 'split' to 'where' in the open() interface 2012-01-10 09:31:07 +00:00
Martin Grenfell
4f1a205c83 add Opener class to handle opening nodes/bookmarks
Move the code to split windows and open nodes and bookmarks out into a
dedicated class. This will remove duplication and remove and centralise
a concern from the other classes.
2012-01-10 09:31:06 +00:00
Martin Grenfell
3620029ae0 make Bookmark use the new open() interface 2012-01-10 09:31:06 +00:00
Martin Grenfell
217d9f6651 Merge pull request #78 from actionshrimp/master
Add windows network share support
2012-01-06 14:39:21 -08:00
Dave Aitken
ba3d43138a Added comment to clarify which part of the path is the 'drive' for windows network shares 2012-01-06 19:36:26 +00:00
Martin Grenfell
e027681803 wrap a couple of wincmd calls in s:exec
this is to prevent autocmds from being fired when the tree is closed
2012-01-06 19:24:35 +00:00
Martin Grenfell
57ccede250 trivial comment change 2012-01-06 15:05:47 +00:00
Martin Grenfell
04dbae2cb4 remove s:openEntrySplit as it is not needed anymore 2012-01-06 15:02:55 +00:00
Martin Grenfell
af13711fac rename 'preview' to 'stay' and standardize the 'keepopen' name 2012-01-06 14:54:19 +00:00
Martin Grenfell
92248f92ca make TreeDirNode use the new open() interface 2012-01-06 14:47:10 +00:00
Martin Grenfell
9832d4a84a fix Bookmark so it uses the new TreeFileNode.open method 2012-01-06 13:39:18 +00:00
Martin Grenfell
b7cdc191ca refactor the TreeFileNode*open* methods
Make these all go through .open() and pass in args to control the
behaviour. Deprecate the old `openSplit`, `openVSplit` and
`openInNewTab` methods and make them private.

This makes the API a lot cleaner - it was getting pretty messy in this
regard.
2012-01-05 20:07:53 +00:00
Martin Grenfell
54fab2f2e5 add dir and file flags to NERDTreeIgnore regexes
This allows users to specify whether each regex in NERDTreeIgnore should
apply to only files or only dirs.
2012-01-05 11:41:51 +00:00
Martin Grenfell
4337022524 dont convert windows paths to lower case when :editing
This fixes #89.
2012-01-05 08:24:15 +00:00
Martin Grenfell
3be5f5ddd8 fix a bug for files that begin with +/-/~ chars
First, set the tree parts regex appropriately depending on
g:NERDTreeDirArrows.

Second, fix an edge case when trying to edit a file like +foo where the
+ meant 'foo' was being interpreted as an arg to the :edit cmd
2012-01-04 13:52:44 +00:00
Martin Grenfell
33a64260cd add NERDTreeCustomIgnoreFilter hook
this gives users a chance to filter out nodes using whatever logic they
please
2012-01-04 11:13:03 +00:00
Martin Grenfell
1848a2cf9d fix a bug when activating bookmarks 2012-01-04 10:44:17 +00:00
Martin Grenfell
c431d38d97 dont use VimEnter to cache bookmarks and load plugins
Just call these functions directly at the bottom of the nerdtree script.
This simplifies things and fixes #99.
2012-01-04 10:41:33 +00:00
Martin Grenfell
ebb2835c45 fix a bug where keymaps were failing with :set ignorecase 2012-01-04 09:43:07 +00:00
Martin Grenfell
98b2fa5104 make a syntax fix for certain versions of vim
It seems that some versions of vim done like the syntax of:
    function("foo")()

so refactor it slightly.
2012-01-04 09:27:06 +00:00
Martin Grenfell
a63c8a2ec8 use the keymap api for the mouse mappings 2012-01-04 00:13:57 +00:00
Martin Grenfell
aca917b4ca make a small fix for the left mouse button 2012-01-04 00:13:38 +00:00
Martin Grenfell
4425627683 refactor option checking to simplify and remove duplication 2012-01-03 23:30:57 +00:00
Martin Grenfell
b16a663618 Merge pull request #104 from cperl82/fixes
stayInCurrentTab fix
2012-01-03 15:22:10 -08:00
Martin Grenfell
62c94e272f fix the mouse mappings 2012-01-03 22:43:18 +00:00
Martin Grenfell
0c12f6fe10 update quickhelp for custom mappings
dont display quickhelp for a mapping if there is no text to display -
this prevents all the default mappings from being displayed under the
"custom mappings" section.
2012-01-03 16:08:10 +00:00
Martin Grenfell
b0e2ed1cc7 remove a trivial piece of old debugging code 2012-01-03 15:33:37 +00:00
Martin Grenfell
a1d528ae92 make the standard mappings use the key api 2012-01-03 11:44:30 +00:00
Martin Grenfell
b5fd460560 rework the keymap API
Add "scope" to it. This allows the user to specify that keymaps should
 apply to files/directories/bookmarks or everything. This will reduce
the amount of 'if empty(node)' checks that are done
2011-12-29 20:33:34 +00:00
Martin Grenfell
205367ab3f update changelog/credits and bump to version 4.2.0 2011-12-28 13:16:57 +00:00
Martin Grenfell
7ff9def95b fix mixed indenting 2011-12-27 22:18:28 +00:00
Benjamin Geiger
b3b394c329 Open NERDTreeFind tree at CWD if current file is below it. 2011-12-27 22:15:31 +00:00
Chris Perl
01f683c3c4 stayInCurrentTab fix 2011-12-22 15:53:26 -05:00
Martin Grenfell
23d1746bbf refactor tree window creation to remove duplication
create s:setCommonBufOptions() with the previously duplicated parts of
s:initNerdTreeInPlace() and s:createTreeWin()
2011-12-21 14:43:20 +00:00
Martin Grenfell
aa28ae7863 Merge pull request #87 from scottstvnsn/master
Add nolist to buffer options.
2011-12-21 06:40:49 -08:00
Martin Grenfell
b528910e7a dont add a trailing slash to auto-named bookmarked dirs
this breaks the highlighting of the nerdtree buffer, and seems dodgy
2011-12-21 13:20:09 +00:00
Min-Young Wu
dcccd0e532 Defaulting bookmark name to file/dir name
Note that for directories, there is a trailing slash
2011-12-21 13:15:56 +00:00
Martin Grenfell
af833e3006 remove the now unused s:setupSyntaxHighlighting() 2011-12-21 12:51:32 +00:00