add s:MarkForNode() and refactor to use it

This commit is contained in:
Martin Grenfell 2008-06-07 12:45:21 +12:00
parent 5a4ef66db2
commit 2ecd6ebd63

View File

@ -1345,6 +1345,21 @@ function! s:BufInWindows(bnum)
return cnt return cnt
endfunction " >>> endfunction " >>>
"FUNCTION: s:GetNodeForMark(name) {{{2
"get the treenode for the mark with the given name
function! s:GetNodeForMark(name)
try
let mark = s:GetMarks()[a:name]
catch /E716/ "key not in dictionary error
throw "NERDTree.MarkDoesntExist no mark found with name: " . a:name
endtry
let targetNode = t:NERDTreeRoot.FindNode(mark)
if empty(targetNode)
throw "NERDTree.MarkNotFound no node was found for mark: " . a:name
endif
call s:PutCursorOnNode(targetNode, 0, 1)
endfunction
"FUNCTION: s:InitNerdTree(dir) {{{2 "FUNCTION: s:InitNerdTree(dir) {{{2
"Initialized the NERD tree, where the root will be initialized with the given "Initialized the NERD tree, where the root will be initialized with the given
"directory "directory
@ -2818,14 +2833,7 @@ endfunction
" FUNCTION: s:OpenMark(name) {{{2 " FUNCTION: s:OpenMark(name) {{{2
" put the cursor on the given mark and, if its a file, open it " put the cursor on the given mark and, if its a file, open it
function! s:OpenMark(name) function! s:OpenMark(name)
try let targetNode = s:GetNodeForMark(a:name)
let mark = s:GetMarks()[a:name]
catch /E716/ "key not in dictionary error
call s:Echo("Mark doesnt exist")
return
endtry
let targetNode = t:NERDTreeRoot.FindNode(mark)
call s:PutCursorOnNode(targetNode, 0, 1) call s:PutCursorOnNode(targetNode, 0, 1)
redraw! redraw!
if !targetNode.path.isDirectory if !targetNode.path.isDirectory
@ -2887,14 +2895,7 @@ endfunction
" FUNCTION: s:RecallMark(name) {{{2 " FUNCTION: s:RecallMark(name) {{{2
" put the cursor on the node associate with the given name " put the cursor on the node associate with the given name
function! s:RecallMark(name) function! s:RecallMark(name)
try let targetNode = s:GetNodeForMark(a:name)
let mark = s:GetMarks()[a:name]
catch /E716/ "key not in dictionary error
call s:Echo("Mark doesnt exist")
return
endtry
let targetNode = t:NERDTreeRoot.FindNode(mark)
call s:PutCursorOnNode(targetNode, 0, 1) call s:PutCursorOnNode(targetNode, 0, 1)
endfunction endfunction
" FUNCTION: s:RefreshRoot() {{{2 " FUNCTION: s:RefreshRoot() {{{2