move the openFileNode() code into TreeFileNode
This commit is contained in:
parent
99afbe9ec8
commit
7874b3c60e
@ -685,6 +685,45 @@ function! s:TreeFileNode.New(path)
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
"FUNCTION: TreeFileNode.open() {{{3
|
||||||
|
"Open the file represented by the given node in the current window, splitting
|
||||||
|
"the window if needed
|
||||||
|
"
|
||||||
|
"ARGS:
|
||||||
|
"treenode: file node to open
|
||||||
|
function! s:TreeFileNode.open()
|
||||||
|
if b:NERDTreeType == "secondary"
|
||||||
|
exec 'edit ' . self.path.strForEditCmd()
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
call s:putCursorInTreeWin()
|
||||||
|
|
||||||
|
"if the file is already open in this tab then just stick the cursor in it
|
||||||
|
let winnr = bufwinnr('^' . self.path.strForOS(0) . '$')
|
||||||
|
if winnr != -1
|
||||||
|
call s:exec(winnr . "wincmd w")
|
||||||
|
|
||||||
|
else
|
||||||
|
if !s:isWindowUsable(winnr("#")) && s:firstNormalWindow() == -1
|
||||||
|
call self.openSplit()
|
||||||
|
else
|
||||||
|
try
|
||||||
|
if !s:isWindowUsable(winnr("#"))
|
||||||
|
call s:exec(s:firstNormalWindow() . "wincmd w")
|
||||||
|
else
|
||||||
|
call s:exec('wincmd p')
|
||||||
|
endif
|
||||||
|
exec ("edit " . self.path.strForEditCmd())
|
||||||
|
catch /^Vim\%((\a\+)\)\=:E37/
|
||||||
|
call s:putCursorInTreeWin()
|
||||||
|
throw "NERDTree.FileAlreadyOpenAndModifiedError: ". self.path.str(0) ." is already open and modified."
|
||||||
|
catch /^Vim\%((\a\+)\)\=:/
|
||||||
|
echo v:exception
|
||||||
|
endtry
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
"FUNCTION: TreeFileNode.openSplit() {{{3
|
"FUNCTION: TreeFileNode.openSplit() {{{3
|
||||||
"Open this node in a new window
|
"Open this node in a new window
|
||||||
function! s:TreeFileNode.openSplit()
|
function! s:TreeFileNode.openSplit()
|
||||||
@ -2579,51 +2618,12 @@ function! s:jumpToChild(direction)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call s:putCursorOnNode(targetNode, 1, 0)
|
call targetNode.putCursorHere(1, 0)
|
||||||
|
|
||||||
call s:centerView()
|
call s:centerView()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
"FUNCTION: s:openFileNode(treenode) {{{2
|
|
||||||
"Open the file represented by the given node in the current window, splitting
|
|
||||||
"the window if needed
|
|
||||||
"
|
|
||||||
"ARGS:
|
|
||||||
"treenode: file node to open
|
|
||||||
function! s:openFileNode(treenode)
|
|
||||||
if b:NERDTreeType == "secondary"
|
|
||||||
exec 'edit ' . a:treenode.path.strForEditCmd()
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
call s:putCursorInTreeWin()
|
|
||||||
|
|
||||||
"if the file is already open in this tab then just stick the cursor in it
|
|
||||||
let winnr = bufwinnr('^' . a:treenode.path.strForOS(0) . '$')
|
|
||||||
if winnr != -1
|
|
||||||
call s:exec(winnr . "wincmd w")
|
|
||||||
|
|
||||||
else
|
|
||||||
if !s:isWindowUsable(winnr("#")) && s:firstNormalWindow() == -1
|
|
||||||
call a:treenode.openSplit()
|
|
||||||
else
|
|
||||||
try
|
|
||||||
if !s:isWindowUsable(winnr("#"))
|
|
||||||
call s:exec(s:firstNormalWindow() . "wincmd w")
|
|
||||||
else
|
|
||||||
call s:exec('wincmd p')
|
|
||||||
endif
|
|
||||||
exec ("edit " . a:treenode.path.strForEditCmd())
|
|
||||||
catch /^Vim\%((\a\+)\)\=:E37/
|
|
||||||
call s:putCursorInTreeWin()
|
|
||||||
call s:echo("Cannot open file, it is already open and modified")
|
|
||||||
catch /^Vim\%((\a\+)\)\=:/
|
|
||||||
echo v:exception
|
|
||||||
endtry
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
"FUNCTION: s:promptToDelBuffer(bufnum, msg){{{2
|
"FUNCTION: s:promptToDelBuffer(bufnum, msg){{{2
|
||||||
"prints out the given msg and, if the user responds by pushing 'y' then the
|
"prints out the given msg and, if the user responds by pushing 'y' then the
|
||||||
"buffer with the given bufnum is deleted
|
"buffer with the given bufnum is deleted
|
||||||
@ -2954,7 +2954,7 @@ function! s:activateNode(forceKeepWindowOpen)
|
|||||||
call s:renderView()
|
call s:renderView()
|
||||||
call treenode.putCursorHere(0, 0)
|
call treenode.putCursorHere(0, 0)
|
||||||
else
|
else
|
||||||
call s:openFileNode(treenode)
|
call treenode.open()
|
||||||
if !a:forceKeepWindowOpen
|
if !a:forceKeepWindowOpen
|
||||||
call s:closeTreeIfQuitOnOpen()
|
call s:closeTreeIfQuitOnOpen()
|
||||||
end
|
end
|
||||||
@ -2966,7 +2966,7 @@ function! s:activateNode(forceKeepWindowOpen)
|
|||||||
call bookmark.toRoot()
|
call bookmark.toRoot()
|
||||||
else
|
else
|
||||||
if bookmark.validate()
|
if bookmark.validate()
|
||||||
call s:openFileNode(s:TreeFileNode.New(bookmark.path))
|
call (s:TreeFileNode.New(bookmark.path)).open()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@ -3419,7 +3419,7 @@ function! s:openBookmark(name)
|
|||||||
if targetNode.path.isDirectory
|
if targetNode.path.isDirectory
|
||||||
call targetNode.openExplorer()
|
call targetNode.openExplorer()
|
||||||
else
|
else
|
||||||
call s:openFileNode(targetNode)
|
call targetNode.open()
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
" FUNCTION: s:openEntrySplit(forceKeepWindowOpen) {{{2
|
" FUNCTION: s:openEntrySplit(forceKeepWindowOpen) {{{2
|
||||||
|
Loading…
Reference in New Issue
Block a user