commit b252a1250afa754eed885edcd1ccf4fa34709f0d
parent dae5c93fecc97d2c87a582a38b99b3d0b2e27626
Author: Martin Grenfell <martin_grenfell@msn.com>
Date: Thu, 12 Jun 2008 21:14:07 +1200
rename 'marks' to 'bookmarks'
Diffstat:
| M | doc/NERD_tree.txt | | | 80 | ++++++++++++++++++++++++++++++++++++++++--------------------------------------- |
| M | plugin/NERD_tree.vim | | | 318 | ++++++++++++++++++++++++++++++++++++++++---------------------------------------- |
2 files changed, 200 insertions(+), 198 deletions(-)
diff --git a/doc/NERD_tree.txt b/doc/NERD_tree.txt
@@ -22,7 +22,7 @@ CONTENTS *NERDTree-contents*
1.Intro...................................|NERDTree|
2.Functionality provided..................|NERDTreeFunctionality|
2.1 Global commands...................|NERDTreeGlobalCommands|
- 2.2 Mark commands.....................|NERDTreeMarkCommands|
+ 2.2 Bookmark commands.................|NERDTreeBookmarkCommands|
2.3 NERD tree mappings................|NERDTreeMappings|
2.4 The filesystem menu...............|NERDTreeFilesysMenu|
3.Options.................................|NERDTreeOptions|
@@ -86,20 +86,20 @@ The following features and functionality are provided by the NERD tree:
------------------------------------------------------------------------------
2.1. Global Commands *NERDTreeGlobalCommands*
-:NERDTree [<start-directory> | <mark-name>] *:NERDTree*
+:NERDTree [<start-directory> | <bookmark>] *:NERDTree*
Opens a fresh NERD tree. The root of the tree depends on the argument
given. There are 3 cases: If no argument is given, the current directory
- will be used. If a directory is given, that will be used. If a mark name
- is given, the corresponding directory will be used. For example: >
+ will be used. If a directory is given, that will be used. If a bookmark
+ name is given, the corresponding directory will be used. For example: >
:NERDTree /home/marty/vim7/src
- :NERDTree foo (foo is the name of a mark)
+ :NERDTree foo (foo is the name of a bookmark)
<
-:NERDTreeFromMark <mark-name> *:NERDTreeFromMark*
- Opens a fresh NERD tree with the root initialized to dir for <mark-name>.
+:NERDTreeFromBookmark <bookmark> *:NERDTreeFromBookmark*
+ Opens a fresh NERD tree with the root initialized to dir for <bookmark>.
This only reason to use this command over :NERDTree is for the completion
- (which is for marks rather than directories).
+ (which is for bookmarks rather than directories).
-:NERDTreeToggle [<start-directory> | <mark-name>] *:NERDTreeToggle*
+:NERDTreeToggle [<start-directory> | <bookmark>] *:NERDTreeToggle*
If a NERD tree already exists for this tab, it is reopened and rendered
again. If no NERD tree exists for this tab then this command acts the
same as the |:NERDTree| command.
@@ -108,39 +108,41 @@ The following features and functionality are provided by the NERD tree:
Close the NERD tree in this tab.
------------------------------------------------------------------------------
-2.2. Mark Commands *NERDTreeMarkCommands*
-
-Marks in the NERD tree are a way to tag files or directories of interest. For
-example, you could use marks to tag all of your project directories. See also
-|:NERDTreeFromMark|.
-
-:Mark <name>
- Mark the current node as <name>. If there is already a <name> mark, it is
- overwritten. <name> must consist of alphanumeric characters and
- underscores.
-
-:MarkToRoot <mark>
- Make the directory corresponding to <mark> the new root. If a treenode
- corresponding to <mark> is already cached somewhere in the tree then the
- current tree will be used, otherwise a fresh tree will be opened. Note
- that if <mark> points to a file then its parent will be used instead.
-
-:RevealMark <mark>
+2.2. Bookmark Commands *NERDTreeBookmarkCommands*
+
+Bookmarks in the NERD tree are a way to tag files or directories of interest.
+For example, you could use bookmarks to tag all of your project directories.
+See also
+|:NERDTreeFromBookmark|.
+
+:Bookmark <name>
+ Bookmark the current node as <name>. If there is already a <name>
+ bookmark, it is overwritten. <name> must consist of alphanumeric
+ characters and underscores.
+
+:BookmarkToRoot <bookmark>
+ Make the directory corresponding to <bookmark> the new root. If a treenode
+ corresponding to <bookmark> is already cached somewhere in the tree then
+ the current tree will be used, otherwise a fresh tree will be opened.
+ Note that if <bookmark> points to a file then its parent will be used
+ instead.
+
+:RevealBookmark <bookmark>
If the node is cached under the current root then it will be revealed
(i.e. directory nodes above it will be opened) and the cursor will be
placed on it.
-:OpenMark <mark>
- <mark> must point to a file. The file is opened as though |NERDTree-o| was
- applied. If the node is cached under the current root then it will be
+:OpenBookmark <bookmark>
+ <bookmark> must point to a file. The file is opened as though |NERDTree-o|
+ was applied. If the node is cached under the current root then it will be
revealed and the cursor will be placed on it.
-:ClearMarks [<marks>]
- Remove all the given marks. If no marks are given then remove all marks on
- the current node.
+:ClearBookmarks [<bookmarks>]
+ Remove all the given bookmarks. If no bookmarks are given then remove all
+ bookmarks on the current node.
-:ClearAllMarks
- Remove all marks.
+:ClearAllBookmarks
+ Remove all bookmarks.
------------------------------------------------------------------------------
2.3. NERD tree Mappings *NERDTreeMappings*
@@ -516,7 +518,7 @@ NERD tree. These options should be set in your vimrc.
|NERDTreeIgnore| Tells the NERD tree which files to ignore.
-|NERDTreeMarksFile| Where the marks are stored.
+|NERDTreeBookmarksFile| Where the bookmarks are stored.
|NERDTreeMouseMode| Tells the NERD tree how to handle mouse
clicks.
@@ -667,11 +669,11 @@ The file filters can be turned on and off dynamically with the |NERDTree-f|
mapping.
------------------------------------------------------------------------------
- *NERDTreeMarksFile*
+ *NERDTreeBookmarksFile*
Values: a path
-Default: $HOME/.NERDTreeMarks
+Default: $HOME/.NERDTreeBookmarks
-This is where marks are saved. See |NERDTreeMarkCommands|.
+This is where bookmarks are saved. See |NERDTreeBookmarkCommands|.
------------------------------------------------------------------------------
*NERDTreeMouseMode*
diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim
@@ -41,7 +41,7 @@ if !exists("g:NERDTreeIgnore")
let g:NERDTreeIgnore = ['\~$']
endif
call s:InitVariable("g:NERDTreeHighlightCursorline", 1)
-call s:InitVariable("g:NERDTreeMarksFile", expand('$HOME') . '/.NERDTreeMarks')
+call s:InitVariable("g:NERDTreeBookmarksFile", expand('$HOME') . '/.NERDTreeBookmarks')
call s:InitVariable("g:NERDTreeMouseMode", 1)
call s:InitVariable("g:NERDTreeNotificationThreshold", 100)
call s:InitVariable("g:NERDTreeShowFiles", 1)
@@ -141,13 +141,13 @@ endif
command! -n=? -complete=dir NERDTree :call s:InitNerdTree('<args>')
command! -n=? -complete=dir NERDTreeToggle :call s:Toggle('<args>')
command! -n=0 NERDTreeClose :call s:CloseTreeIfOpen()
-command! -n=1 -complete=customlist,s:FindMarks NERDTreeFromMark call s:InitNerdTree('<args>')
+command! -n=1 -complete=customlist,s:FindBookmarks NERDTreeFromBookmark call s:InitNerdTree('<args>')
" SECTION: Auto commands {{{1
"============================================================
"Save the cursor position whenever we close the nerd tree
exec "autocmd BufWinLeave *". s:NERDTreeWinName ."* :call <SID>SaveScreenState()"
-"cache marks when vim loads
-autocmd VimEnter * call <SID>ReadMarks()
+"cache bookmarks when vim loads
+autocmd VimEnter * call <SID>ReadBookmarks()
"SECTION: Classes {{{1
"============================================================
@@ -180,15 +180,15 @@ function! s:CompareNodes(n1, n2)
return a:n1.path.CompareTo(a:n2.path)
endfunction
-"FUNCTION: oTreeFileNode.ClearMarks() {{{3
-function! s:oTreeFileNode.ClearMarks() dict
- let marks = s:GetMarks()
- for i in keys(marks)
- if marks[i].Equals(self.path)
- call remove(marks, i)
+"FUNCTION: oTreeFileNode.ClearBookmarks() {{{3
+function! s:oTreeFileNode.ClearBookmarks() dict
+ let bookmarks = s:GetBookmarks()
+ for i in keys(bookmarks)
+ if bookmarks[i].Equals(self.path)
+ call remove(bookmarks, i)
end
endfor
- call self.path.CacheMarkNames()
+ call self.path.CacheBookmarkNames()
endfunction
"FUNCTION: oTreeFileNode.Copy(dest) {{{3
function! s:oTreeFileNode.Copy(dest) dict
@@ -813,16 +813,23 @@ endfunction
"============================================================
let s:oPath = {}
let oPath = s:oPath
-"FUNCTION: oPath.CacheMarkNames() {{{3
-function! s:oPath.CacheMarkNames() dict
- let self.markNames = []
- let marks = s:GetMarks()
- for k in keys(marks)
- if marks[k].Equals(self)
- call add(self.markNames, k)
+"FUNCTION: oPath.BookmarkNames() {{{3
+function! s:oPath.BookmarkNames() dict
+ if !exists("self.bookmarkNames")
+ call self.CacheBookmarkNames()
+ endif
+ return self.bookmarkNames
+endfunction
+"FUNCTION: oPath.CacheBookmarkNames() {{{3
+function! s:oPath.CacheBookmarkNames() dict
+ let self.bookmarkNames = []
+ let bookmarks = s:GetBookmarks()
+ for k in keys(bookmarks)
+ if bookmarks[k].Equals(self)
+ call add(self.bookmarkNames, k)
endif
endfor
- return self.markNames
+ return self.bookmarkNames
endfunction
"FUNCTION: oPath.ChangeToDir() {{{3
function! s:oPath.ChangeToDir() dict
@@ -1120,13 +1127,6 @@ function! s:oPath.Equals(path) dict
return self.Str(0) == a:path.Str(0)
endfunction
-"FUNCTION: oPath.MarkNames() {{{3
-function! s:oPath.MarkNames() dict
- if !exists("self.markNames")
- call self.CacheMarkNames()
- endif
- return self.markNames
-endfunction
"FUNCTION: oPath.New() {{{3
"
"The Constructor for the Path object
@@ -1187,7 +1187,7 @@ endfunction
"FUNCTION: oPath.Refresh() {{{3
function! s:oPath.Refresh() dict
call self.ReadInfoFromDisk(self.StrForOS(0))
- call self.CacheMarkNames()
+ call self.CacheBookmarkNames()
endfunction
"FUNCTION: oPath.Rename() {{{3
@@ -1256,9 +1256,9 @@ endfunction
function! s:oPath.StrDisplay() dict
let toReturn = self.GetLastPathComponent(1)
- let marks = self.MarkNames()
- if !empty(marks)
- let toReturn .= ' {' . join(marks, ',') . '}'
+ let bookmarks = self.BookmarkNames()
+ if !empty(bookmarks)
+ let toReturn .= ' {' . join(bookmarks, ',') . '}'
endif
if self.isSymLink
@@ -1402,60 +1402,60 @@ function! s:BufInWindows(bnum)
return cnt
endfunction " >>>
-"FUNCTION: s:ClearAllMarks() {{{2
-"delete all marks
-function! s:ClearAllMarks()
- for name in keys(g:NERDTreeMarks)
+"FUNCTION: s:ClearAllBookmarks() {{{2
+"delete all bookmarks
+function! s:ClearAllBookmarks()
+ for name in keys(g:NERDTreeBookmarks)
let node = {}
try
- let node = s:GetNodeForMark(name, 1)
+ let node = s:GetNodeForBookmark(name, 1)
catch /NERDTree/
endtry
- call remove(g:NERDTreeMarks, name)
+ call remove(g:NERDTreeBookmarks, name)
if !empty(node)
- call node.path.CacheMarkNames()
+ call node.path.CacheBookmarkNames()
endif
endfor
- call s:WriteMarks()
+ call s:WriteBookmarks()
endfunction
-"FUNCTION: s:GetNodeForMark(name, searchFromAbsoluteRoot) {{{2
-"get the treenode for the mark with the given name
+"FUNCTION: s:GetNodeForBookmark(name, searchFromAbsoluteRoot) {{{2
+"get the treenode for the bookmark with the given name
"
"Args:
-"name: name of mark
+"name: name of bookmark
"searchFromAbsoluteRoot: specifies wheather we should search from the current
"tree root, or the highest cached node
-function! s:GetNodeForMark(name, searchFromAbsoluteRoot)
+function! s:GetNodeForBookmark(name, searchFromAbsoluteRoot)
try
- let mark = s:GetMarks()[a:name]
+ let bookmark = s:GetBookmarks()[a:name]
catch /E716/ "key not in dictionary error
- throw "NERDTree.MarkDoesntExist no mark found with name: " . a:name
+ throw "NERDTree.BookmarkDoesntExist no bookmark found with name: " . a:name
endtry
let searchRoot = a:searchFromAbsoluteRoot ? s:AbsoluteTreeRoot() : t:NERDTreeRoot
- let targetNode = searchRoot.FindNode(mark)
+ let targetNode = searchRoot.FindNode(bookmark)
if empty(targetNode)
- throw "NERDTree.MarkNotFound no node was found for mark: " . a:name
+ throw "NERDTree.BookmarkNotFound no node was found for bookmark: " . a:name
endif
return targetNode
endfunction
"FUNCTION: s:InitNerdTree(name) {{{2
"Initialise the nerd tree for this tab. The tree will start in either the
-"given directory, or the directory associated with the given mark
+"given directory, or the directory associated with the given bookmark
"
"Args:
-"name: the name of a mark or a directory
+"name: the name of a bookmark or a directory
function! s:InitNerdTree(name)
let path = {}
- if count(keys(s:GetMarks()), a:name)
- let path = s:GetMarks()[a:name]
+ if count(keys(s:GetBookmarks()), a:name)
+ let path = s:GetBookmarks()[a:name]
else
let dir = a:name == '' ? expand('%:p:h') : a:name
let dir = resolve(dir)
try
let path = s:oPath.New(dir)
catch /NERDTree.Path.InvalidArguments/
- call s:Echo("No mark or directory found for: " . a:name)
+ call s:Echo("No bookmark or directory found for: " . a:name)
return
endtry
if !path.isDirectory
@@ -1486,15 +1486,15 @@ function! s:InitNerdTree(name)
call s:RenderView()
call s:PutCursorOnNode(t:NERDTreeRoot, 0, 0)
endfunction
-" Function: s:ReadMarks() {{{2
-function! s:ReadMarks()
- if filereadable(g:NERDTreeMarksFile)
- let marks = s:GetMarks()
- let markStrings = readfile(g:NERDTreeMarksFile)
- for i in markStrings
+" Function: s:ReadBookmarks() {{{2
+function! s:ReadBookmarks()
+ if filereadable(g:NERDTreeBookmarksFile)
+ let bookmarks = s:GetBookmarks()
+ let bookmarkStrings = readfile(g:NERDTreeBookmarksFile)
+ for i in bookmarkStrings
let key = substitute(i, '^\(\w.\{-}\) .*$', '\1', '')
let path = substitute(i, '^\w.\{-} \(.*\)$', '\1', '')
- let marks[key] = s:oPath.New(path)
+ let bookmarks[key] = s:oPath.New(path)
endfor
endif
endfunction
@@ -1503,14 +1503,14 @@ endfunction
function! s:TreeExistsForTab()
return exists("t:NERDTreeRoot")
endfunction
-" Function: s:WriteMarks() {{{2
-function! s:WriteMarks()
- let marks = s:GetMarks()
- let markStrings = []
- for k in keys(marks)
- call add(markStrings, k . ' ' . marks[k].StrForOS(0))
+" Function: s:WriteBookmarks() {{{2
+function! s:WriteBookmarks()
+ let bookmarks = s:GetBookmarks()
+ let bookmarkStrings = []
+ for k in keys(bookmarks)
+ call add(bookmarkStrings, k . ' ' . bookmarks[k].StrForOS(0))
endfor
- call writefile(markStrings, g:NERDTreeMarksFile)
+ call writefile(bookmarkStrings, g:NERDTreeBookmarksFile)
endfunction
" SECTION: Public Functions {{{1
@@ -1776,13 +1776,13 @@ function! s:DumpHelp()
let @h=@h."\" ". g:NERDTreeMapQuit .": Close the NERDTree window\n"
let @h=@h."\" ". g:NERDTreeMapHelp .": toggle help\n"
let @h=@h."\" \n\" ----------------------------\n"
- let @h=@h."\" Mark commands~\n"
- let @h=@h."\" :Mark <name>\n"
- let @h=@h."\" :MarkToRoot <mark>\n"
- let @h=@h."\" :RevealMark <mark>\n"
- let @h=@h."\" :OpenMark <mark>\n"
- let @h=@h."\" :ClearMarks [<marks>]\n"
- let @h=@h."\" :ClearAllMarks\n"
+ let @h=@h."\" Bookmark commands~\n"
+ let @h=@h."\" :Bookmark <name>\n"
+ let @h=@h."\" :BookmarkToRoot <bookmark>\n"
+ let @h=@h."\" :RevealBookmark <bookmark>\n"
+ let @h=@h."\" :OpenBookmark <bookmark>\n"
+ let @h=@h."\" :ClearBookmarks [<bookmarks>]\n"
+ let @h=@h."\" :ClearAllBookmarks\n"
else
let @h="\" Press ". g:NERDTreeMapHelp ." for help\n"
endif
@@ -1818,10 +1818,10 @@ function! s:EchoError(msg)
call s:Echo(a:msg)
echohl normal
endfunction
-" FUNCTION: s:FindMarks(A,L,P) {{{2
-" completion function for the mark commands
-function! s:FindMarks(A,L,P)
- let keys = keys(s:GetMarks())
+" FUNCTION: s:FindBookmarks(A,L,P) {{{2
+" completion function for the bookmark commands
+function! s:FindBookmarks(A,L,P)
+ let keys = keys(s:GetBookmarks())
return filter(keys, 'v:val =~ "^' . a:A . '"')
endfunction
"FUNCTION: s:FindNodeLineNumber(treenode){{{2
@@ -1886,13 +1886,13 @@ function! s:FindRootNodeLineNumber()
return rootLine
endfunction
-" FUNCTION: s:GetMarks(name) {{{2
-" getter/lazy initializer for the g:NERDTreeMarks hash
-function! s:GetMarks()
- if !exists("g:NERDTreeMarks")
- let g:NERDTreeMarks = {}
+" FUNCTION: s:GetBookmarks(name) {{{2
+" getter/lazy initializer for the g:NERDTreeBookmarks hash
+function! s:GetBookmarks()
+ if !exists("g:NERDTreeBookmarks")
+ let g:NERDTreeBookmarks = {}
endif
- return g:NERDTreeMarks
+ return g:NERDTreeBookmarks
endfunction
"FUNCTION: s:GetPath(ln) {{{2
"Gets the full path to the node that is rendered on the given line number
@@ -2356,19 +2356,19 @@ function! s:SetupSyntaxHighlighting()
syn match treeHelp #^" .*# contains=treeHelpKey,treeHelpTitle,treeFlag,treeToggleOff,treeToggleOn,treeHelpCommand
"highlighting for sym links
- syn match treeLink #[^-| `].* -> # contains=treeMark
+ syn match treeLink #[^-| `].* -> # contains=treeBookmark
"highlighting for readonly files
- syn match treeRO #[0-9a-zA-Z]\+.*\[RO\]# contains=treeFlag,treeMark
+ syn match treeRO #[0-9a-zA-Z]\+.*\[RO\]# contains=treeFlag,treeBookmark
- "highlighting for marks
- syn match treeMark # {.*}#hs=s+1
+ "highlighting for bookmarks
+ syn match treeBookmark # {.*}#hs=s+1
"highlighing for directory nodes and file nodes
syn match treeDirSlash #/#
syn match treeDir #[^-| `].*/# contains=treeLink,treeDirSlash,treeOpenable,treeClosable
- syn match treeFile #|-.*# contains=treeLink,treePart,treeRO,treePartFile,treeMark
- syn match treeFile #`-.*# contains=treeLink,treePart,treeRO,treePartFile,treeMark
+ syn match treeFile #|-.*# contains=treeLink,treePart,treeRO,treePartFile,treeBookmark
+ syn match treeFile #`-.*# contains=treeLink,treePart,treeRO,treePartFile,treeBookmark
syn match treeCWD #^/.*$#
if g:NERDChristmasTree
@@ -2398,7 +2398,7 @@ function! s:SetupSyntaxHighlighting()
hi def link treeOpenable Title
hi def link treeFlag ignore
hi def link treeRO WarningMsg
- hi def link treeMark Statement
+ hi def link treeBookmark Statement
hi def link NERDTreeCurrentNode Search
endfunction
@@ -2437,7 +2437,7 @@ function! s:StripMarkupFromLine(line, removeLeadingSpaces)
"strip off any read only flag
let line = substitute (line, s:tree_RO_str_reg, "","")
- "strip off any mark flags
+ "strip off any bookmark flags
let line = substitute (line, ' {[^}]*}', "","")
let wasdir = 0
@@ -2552,16 +2552,48 @@ function! s:BindMappings()
exec "nnoremap <silent> <buffer> ". g:NERDTreeMapOpenExpl ." :call <SID>OpenExplorer()<cr>"
- command! -buffer -nargs=1 Mark :call <SID>MarkNode('<args>')
- command! -buffer -complete=customlist,s:FindMarks -nargs=1 RevealMark :call <SID>RevealMark('<args>')
- command! -buffer -complete=customlist,s:FindMarks -nargs=1 OpenMark :call <SID>OpenMark('<args>')
- command! -buffer -complete=customlist,s:FindMarks -nargs=* ClearMarks call <SID>ClearMarks('<args>')
- command! -buffer -complete=customlist,s:FindMarks -nargs=+ MarkToRoot call <SID>MarkToRoot('<args>')
- command! -buffer -nargs=0 ClearAllMarks call <SID>ClearAllMarks() <bar> call <SID>RenderView()
- command! -buffer -nargs=0 ReadMarks call <SID>ReadMarks() <bar> call <SID>RenderView()
- command! -buffer -nargs=0 WriteMarks call <SID>WriteMarks()
+ command! -buffer -nargs=1 Bookmark :call <SID>BookmarkNode('<args>')
+ command! -buffer -complete=customlist,s:FindBookmarks -nargs=1 RevealBookmark :call <SID>RevealBookmark('<args>')
+ command! -buffer -complete=customlist,s:FindBookmarks -nargs=1 OpenBookmark :call <SID>OpenBookmark('<args>')
+ command! -buffer -complete=customlist,s:FindBookmarks -nargs=* ClearBookmarks call <SID>ClearBookmarks('<args>')
+ command! -buffer -complete=customlist,s:FindBookmarks -nargs=+ BookmarkToRoot call <SID>BookmarkToRoot('<args>')
+ command! -buffer -nargs=0 ClearAllBookmarks call <SID>ClearAllBookmarks() <bar> call <SID>RenderView()
+ command! -buffer -nargs=0 ReadBookmarks call <SID>ReadBookmarks() <bar> call <SID>RenderView()
+ command! -buffer -nargs=0 WriteBookmarks call <SID>WriteBookmarks()
endfunction
+" FUNCTION: s:BookmarkNode(name) {{{2
+" Associate the current node with the given name
+function! s:BookmarkNode(name)
+ if a:name !~ '^[0-9a-zA-Z_]*$'
+ call s:Echo("Bookmarks must be named using numbers, letters and underscores only")
+ return
+ endif
+
+ let currentNode = s:GetSelectedNode()
+ if currentNode != {}
+ let bookmarks = s:GetBookmarks()
+ let bookmarks[a:name] = currentNode.path
+ call currentNode.path.CacheBookmarkNames()
+ call s:WriteBookmarks()
+ call s:RenderView()
+ else
+ call s:Echo("select a node first")
+ endif
+endfunction
+" FUNCTION: s:BookmarkToRoot(name) {{{2
+" Make the node for the given bookmark the new tree root
+function! s:BookmarkToRoot(name)
+ try
+ let targetNode = s:GetNodeForBookmark(a:name, 1)
+ catch /NERDTree.BookmarkNotFound/
+ let bookmarks = s:GetBookmarks()
+ let targetNode = s:oTreeFileNode.New(bookmarks[a:name])
+ endtry
+ call targetNode.MakeRoot()
+ call s:RenderView()
+ call s:PutCursorOnNode(targetNode, 0, 0)
+endfunction
"FUNCTION: s:CheckForActivate() {{{2
"Checks if the click should open the current node, if so then activate() is
"called (directories are automatically opened if the symbol beside them is
@@ -2620,30 +2652,30 @@ function! s:ChRoot()
call s:PutCursorOnNode(t:NERDTreeRoot, 0, 0)
endfunction
-" FUNCTION: s:ClearMarks(marks) {{{2
-function! s:ClearMarks(marks)
- let marks = s:GetMarks()
- if a:marks == ''
+" FUNCTION: s:ClearBookmarks(bookmarks) {{{2
+function! s:ClearBookmarks(bookmarks)
+ let bookmarks = s:GetBookmarks()
+ if a:bookmarks == ''
let currentNode = s:GetSelectedNode()
if currentNode != {}
- call currentNode.ClearMarks()
+ call currentNode.ClearBookmarks()
endif
else
- for name in split(a:marks, ' ')
- if count(keys(marks), name)
+ for name in split(a:bookmarks, ' ')
+ if count(keys(bookmarks), name)
let node = {}
try
- let node = s:GetNodeForMark(name, 1)
+ let node = s:GetNodeForBookmark(name, 1)
catch /NERDTree/
endtry
- call remove(marks, name)
+ call remove(bookmarks, name)
if !empty(node)
- call node.path.CacheMarkNames()
+ call node.path.CacheBookmarkNames()
endif
endif
endfor
endif
- call s:WriteMarks()
+ call s:WriteBookmarks()
call s:RenderView()
endfunction
" FUNCTION: s:CloseChildren() {{{2
@@ -2912,37 +2944,21 @@ function! s:JumpToSibling(forward)
endif
endfunction
-" FUNCTION: s:MarkNode(name) {{{2
-" Associate the current node with the given name
-function! s:MarkNode(name)
- if a:name !~ '^[0-9a-zA-Z_]*$'
- call s:Echo("Marks must be named using numbers, letters and underscores only")
- return
- endif
-
- let currentNode = s:GetSelectedNode()
- if currentNode != {}
- let marks = s:GetMarks()
- let marks[a:name] = currentNode.path
- call currentNode.path.CacheMarkNames()
- call s:WriteMarks()
- call s:RenderView()
- else
- call s:Echo("select a node first")
- endif
-endfunction
-" FUNCTION: s:MarkToRoot(name) {{{2
-" Make the node for the given mark the new tree root
-function! s:MarkToRoot(name)
+" FUNCTION: s:OpenBookmark(name) {{{2
+" put the cursor on the given bookmark and, if its a file, open it
+function! s:OpenBookmark(name)
try
- let targetNode = s:GetNodeForMark(a:name, 1)
- catch /NERDTree.MarkNotFound/
- let marks = s:GetMarks()
- let targetNode = s:oTreeFileNode.New(marks[a:name])
+ let targetNode = s:GetNodeForBookmark(a:name, 0)
+ call s:PutCursorOnNode(targetNode, 0, 1)
+ redraw!
+ catch /NERDTree.BookmarkNotFound/
+ call s:Echo("note - target node is not cached")
+ let bookmarks = s:GetBookmarks()
+ let targetNode = s:oTreeFileNode.New(bookmarks[a:name])
endtry
- call targetNode.MakeRoot()
- call s:RenderView()
- call s:PutCursorOnNode(targetNode, 0, 0)
+ if !targetNode.path.isDirectory
+ call s:OpenFileNode(targetNode)
+ endif
endfunction
" FUNCTION: s:OpenEntrySplit() {{{2
" Opens the currently selected file from the explorer in a
@@ -2973,22 +2989,6 @@ function! s:OpenExplorer()
endif
endfunction
-" FUNCTION: s:OpenMark(name) {{{2
-" put the cursor on the given mark and, if its a file, open it
-function! s:OpenMark(name)
- try
- let targetNode = s:GetNodeForMark(a:name, 0)
- call s:PutCursorOnNode(targetNode, 0, 1)
- redraw!
- catch /NERDTree.MarkNotFound/
- call s:Echo("note - target node is not cached")
- let marks = s:GetMarks()
- let targetNode = s:oTreeFileNode.New(marks[a:name])
- endtry
- if !targetNode.path.isDirectory
- call s:OpenFileNode(targetNode)
- endif
-endfunction
" FUNCTION: s:OpenNodeNewTab(stayCurrentTab) {{{2
" Opens the currently selected file from the explorer in a
" new tab
@@ -3041,14 +3041,14 @@ function! s:PreviewNode(openNewWin)
call s:PutCursorInTreeWin()
endfunction
-" FUNCTION: s:RevealMark(name) {{{2
+" FUNCTION: s:RevealBookmark(name) {{{2
" put the cursor on the node associate with the given name
-function! s:RevealMark(name)
+function! s:RevealBookmark(name)
try
- let targetNode = s:GetNodeForMark(a:name, 0)
+ let targetNode = s:GetNodeForBookmark(a:name, 0)
call s:PutCursorOnNode(targetNode, 0, 1)
- catch /NERDTree.MarkDoesntExist/
- call s:Echo("Mark isnt cached under the current root")
+ catch /NERDTree.BookmarkDoesntExist/
+ call s:Echo("Bookmark isnt cached under the current root")
endtry
endfunction
" FUNCTION: s:RefreshRoot() {{{2