mirror of
https://github.com/preservim/nerdtree.git
synced 2025-11-09 03:43:50 -05:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c48845d11 | ||
|
|
b16553ac54 | ||
|
|
e48b5728f9 | ||
|
|
f7b09634ba | ||
|
|
c2c4a6564f | ||
|
|
881c265438 | ||
|
|
26740d1157 | ||
|
|
6d5e185cef | ||
|
|
3a3636b7cb | ||
|
|
5fbf0d7dba | ||
|
|
901aba632b | ||
|
|
a046ba5c5b | ||
|
|
97e4b47aa3 | ||
|
|
ee79ecfb67 | ||
|
|
b579c7751d |
@@ -7,7 +7,13 @@
|
|||||||
in an unordered list. The format is:
|
in an unordered list. The format is:
|
||||||
- **.PATCH**: Pull Request Title (PR Author) [PR Number](Link to PR)
|
- **.PATCH**: Pull Request Title (PR Author) [PR Number](Link to PR)
|
||||||
-->
|
-->
|
||||||
|
#### 6.5
|
||||||
|
- **.0**: `NERDTreeToggle <start-directory>` always sets NERDTree root. (PhilRunninger) [#1083](https://github.com/preservim/nerdtree/pull/1083)
|
||||||
#### 6.4
|
#### 6.4
|
||||||
|
- **.6**: NERDTreeFind shows expected message if file doesn't exist e.g. with vim-startify (andys8). [#1081](https://github.com/preservim/nerdtree/pull/1081)
|
||||||
|
- **.5**: Ensure events are (or aren't) being ignored correctly. (PhilRunninger) [#1080](https://github.com/preservim/nerdtree/pull/1080)
|
||||||
|
- **.4**: Prevent overwriting existing files/dirs on node move. (PhilRunninger) [#1079](https://github.com/preservim/nerdtree/pull/1079)
|
||||||
|
- **.3**: Fix regex that finds keyword for minimal menu. (PhilRunninger) [#1075](https://github.com/preservim/nerdtree/pull/1075)
|
||||||
- **.2**: Lint vimscript, fix errors and warnings, add CI job to review PRs (Caleb Maclennan) [#1071](https://github.com/preservim/nerdtree/pull/1071)
|
- **.2**: Lint vimscript, fix errors and warnings, add CI job to review PRs (Caleb Maclennan) [#1071](https://github.com/preservim/nerdtree/pull/1071)
|
||||||
- **.1**: Ensure backward compatibility. v:t_func is not available before Vim 8.0 (Phil Runninger)
|
- **.1**: Ensure backward compatibility. v:t_func is not available before Vim 8.0 (Phil Runninger)
|
||||||
- **.0**: Allow use of function references as callbacks (HiPhish) [#1067](https://github.com/preservim/nerdtree/pull/1067)
|
- **.0**: Allow use of function references as callbacks (HiPhish) [#1067](https://github.com/preservim/nerdtree/pull/1067)
|
||||||
|
|||||||
@@ -169,8 +169,11 @@ function! nerdtree#exec(cmd, ignoreAll) abort
|
|||||||
if a:ignoreAll
|
if a:ignoreAll
|
||||||
set eventignore=all
|
set eventignore=all
|
||||||
endif
|
endif
|
||||||
|
try
|
||||||
exec a:cmd
|
exec a:cmd
|
||||||
|
finally
|
||||||
let &eventignore = old_ei
|
let &eventignore = old_ei
|
||||||
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: nerdtree#has_opt(options, name) {{{2
|
" FUNCTION: nerdtree#has_opt(options, name) {{{2
|
||||||
|
|||||||
@@ -284,15 +284,16 @@ endfunction
|
|||||||
" FUNCTION: s:findAndRevealPath(pathStr) {{{1
|
" FUNCTION: s:findAndRevealPath(pathStr) {{{1
|
||||||
function! s:findAndRevealPath(pathStr) abort
|
function! s:findAndRevealPath(pathStr) abort
|
||||||
let l:pathStr = !empty(a:pathStr) ? a:pathStr : expand('%:p')
|
let l:pathStr = !empty(a:pathStr) ? a:pathStr : expand('%:p')
|
||||||
if !filereadable(l:pathStr)
|
|
||||||
let l:pathStr = fnamemodify(l:pathStr, ':h')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if empty(l:pathStr)
|
if empty(l:pathStr)
|
||||||
call nerdtree#echoWarning('no file for the current buffer')
|
call nerdtree#echoWarning('no file for the current buffer')
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if !filereadable(l:pathStr)
|
||||||
|
let l:pathStr = fnamemodify(l:pathStr, ':h')
|
||||||
|
endif
|
||||||
|
|
||||||
try
|
try
|
||||||
let l:pathStr = g:NERDTreePath.Resolve(l:pathStr)
|
let l:pathStr = g:NERDTreePath.Resolve(l:pathStr)
|
||||||
let l:pathObj = g:NERDTreePath.New(l:pathStr)
|
let l:pathObj = g:NERDTreePath.New(l:pathStr)
|
||||||
|
|||||||
@@ -122,8 +122,9 @@ The following features and functionality are provided by the NERDTree:
|
|||||||
|
|
||||||
:NERDTreeToggle [<start-directory> | <bookmark>] *:NERDTreeToggle*
|
:NERDTreeToggle [<start-directory> | <bookmark>] *:NERDTreeToggle*
|
||||||
If a NERDTree already exists for this tab, it is reopened and rendered
|
If a NERDTree already exists for this tab, it is reopened and rendered
|
||||||
again. If no NERDTree exists for this tab then this command acts the
|
again. If <start-directory> or <bookmark> is given, the root of NERDTree
|
||||||
same as the |:NERDTree| command.
|
is set to that path. If no NERDTree exists for this tab then this command
|
||||||
|
acts the same as the |:NERDTree| command.
|
||||||
|
|
||||||
:NERDTreeToggleVCS [<start-directory> | <bookmark>] *:NERDTreeToggleVCS*
|
:NERDTreeToggleVCS [<start-directory> | <bookmark>] *:NERDTreeToggleVCS*
|
||||||
Like |:NERDTreeToggle|, but searches up the directory tree to find the top of
|
Like |:NERDTreeToggle|, but searches up the directory tree to find the top of
|
||||||
|
|||||||
@@ -333,6 +333,7 @@ function! s:Creator._tabpagevar(tabnr, var)
|
|||||||
let old_ei = &eventignore
|
let old_ei = &eventignore
|
||||||
set eventignore=all
|
set eventignore=all
|
||||||
|
|
||||||
|
try
|
||||||
exec 'tabnext ' . a:tabnr
|
exec 'tabnext ' . a:tabnr
|
||||||
let v = -1
|
let v = -1
|
||||||
if exists('t:' . a:var)
|
if exists('t:' . a:var)
|
||||||
@@ -340,7 +341,9 @@ function! s:Creator._tabpagevar(tabnr, var)
|
|||||||
endif
|
endif
|
||||||
exec 'tabnext ' . currentTab
|
exec 'tabnext ' . currentTab
|
||||||
|
|
||||||
|
finally
|
||||||
let &eventignore = old_ei
|
let &eventignore = old_ei
|
||||||
|
endtry
|
||||||
|
|
||||||
return v
|
return v
|
||||||
endfunction
|
endfunction
|
||||||
@@ -352,17 +355,20 @@ function! s:Creator.ToggleTabTree(dir)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: s:Creator.toggleTabTree(dir) {{{1
|
" FUNCTION: s:Creator.toggleTabTree(dir) {{{1
|
||||||
" Toggles the NERD tree. I.e the NERD tree is open, it is closed, if it is
|
" Toggles the NERD tree. I.e if the NERD tree is open, it is closed. If it is
|
||||||
" closed it is restored or initialized (if it doesnt exist)
|
" closed, it is restored or initialized. If dir is not empty, it will be set
|
||||||
|
" as the new root.
|
||||||
"
|
"
|
||||||
" Args:
|
" Args:
|
||||||
" dir: the full path for the root node (is only used if the NERD tree is being
|
" dir: the full path for the root node (is used if the NERD tree is being
|
||||||
" initialized.
|
" initialized, or to change the root to a new dir.)
|
||||||
function! s:Creator.toggleTabTree(dir)
|
function! s:Creator.toggleTabTree(dir)
|
||||||
if g:NERDTree.ExistsForTab()
|
if g:NERDTree.ExistsForTab()
|
||||||
if !g:NERDTree.IsOpen()
|
if !g:NERDTree.IsOpen()
|
||||||
call self._createTreeWin()
|
call self._createTreeWin()
|
||||||
if !&hidden
|
if !empty(a:dir)
|
||||||
|
call self.createTabTree(a:dir)
|
||||||
|
elseif !&hidden
|
||||||
call b:NERDTree.render()
|
call b:NERDTree.render()
|
||||||
endif
|
endif
|
||||||
call b:NERDTree.ui.restoreScreenState()
|
call b:NERDTree.ui.restoreScreenState()
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ function! s:MenuController._echoPrompt()
|
|||||||
|
|
||||||
if self.isMinimal()
|
if self.isMinimal()
|
||||||
let selection = self.menuItems[self.selection].text
|
let selection = self.menuItems[self.selection].text
|
||||||
let keyword = matchstr(selection, '\([^ ]*')
|
let keyword = matchstr(selection, '[^ ]*([^ ]*')
|
||||||
|
|
||||||
let shortcuts = map(copy(self.menuItems), "v:val['shortcut']")
|
let shortcuts = map(copy(self.menuItems), "v:val['shortcut']")
|
||||||
let shortcuts[self.selection] = ' ' . keyword . ' '
|
let shortcuts[self.selection] = ' ' . keyword . ' '
|
||||||
|
|||||||
@@ -141,12 +141,12 @@ function! s:renameBuffer(bufNum, newNodeName, isDirectory)
|
|||||||
let editStr = g:NERDTreePath.New(a:newNodeName).str({'format': 'Edit'})
|
let editStr = g:NERDTreePath.New(a:newNodeName).str({'format': 'Edit'})
|
||||||
endif
|
endif
|
||||||
" 1. ensure that a new buffer is loaded
|
" 1. ensure that a new buffer is loaded
|
||||||
call nerdtree#exec('badd ' . quotedFileName, 1)
|
call nerdtree#exec('badd ' . quotedFileName, 0)
|
||||||
" 2. ensure that all windows which display the just deleted filename
|
" 2. ensure that all windows which display the just deleted filename
|
||||||
" display a buffer for a new filename.
|
" display a buffer for a new filename.
|
||||||
let s:originalTabNumber = tabpagenr()
|
let s:originalTabNumber = tabpagenr()
|
||||||
let s:originalWindowNumber = winnr()
|
let s:originalWindowNumber = winnr()
|
||||||
call nerdtree#exec('tabdo windo if winbufnr(0) ==# ' . a:bufNum . " | exec ':e! " . editStr . "' | endif", 1)
|
call nerdtree#exec('tabdo windo if winbufnr(0) ==# ' . a:bufNum . " | exec ':e! " . editStr . "' | endif", 0)
|
||||||
call nerdtree#exec('tabnext ' . s:originalTabNumber, 1)
|
call nerdtree#exec('tabnext ' . s:originalTabNumber, 1)
|
||||||
call nerdtree#exec(s:originalWindowNumber . 'wincmd w', 1)
|
call nerdtree#exec(s:originalWindowNumber . 'wincmd w', 1)
|
||||||
" 3. We don't need a previous buffer anymore
|
" 3. We don't need a previous buffer anymore
|
||||||
@@ -196,6 +196,11 @@ function! NERDTreeMoveNode()
|
|||||||
let curNode = g:NERDTreeFileNode.GetSelected()
|
let curNode = g:NERDTreeFileNode.GetSelected()
|
||||||
let prompt = s:inputPrompt('move')
|
let prompt = s:inputPrompt('move')
|
||||||
let newNodePath = input(prompt, curNode.path.str(), 'file')
|
let newNodePath = input(prompt, curNode.path.str(), 'file')
|
||||||
|
while filereadable(newNodePath)
|
||||||
|
call nerdtree#echoWarning('This destination already exists. Try again.')
|
||||||
|
let newNodePath = input(prompt, curNode.path.str(), 'file')
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
|
||||||
if newNodePath ==# ''
|
if newNodePath ==# ''
|
||||||
call nerdtree#echo('Node Renaming Aborted.')
|
call nerdtree#echo('Node Renaming Aborted.')
|
||||||
|
|||||||
Reference in New Issue
Block a user