mirror of
https://github.com/preservim/nerdtree.git
synced 2025-11-09 03:43:50 -05:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f3a4d8eaa8 | ||
|
|
bdf81a086d | ||
|
|
60b5e602e9 | ||
|
|
bc606c43e2 | ||
|
|
6acfc48d80 | ||
|
|
aa29fbe481 | ||
|
|
e5599272a9 | ||
|
|
ff9469a14a | ||
|
|
fefea5d382 | ||
|
|
a954661824 |
11
CHANGELOG.md
11
CHANGELOG.md
@@ -12,6 +12,17 @@
|
|||||||
.
|
.
|
||||||
- Pull Request Title n (PR Author) [PR Number](Link to PR)
|
- Pull Request Title n (PR Author) [PR Number](Link to PR)
|
||||||
-->
|
-->
|
||||||
|
#### 7.1
|
||||||
|
- **.2**:
|
||||||
|
- fix: GetWinNum regex pattern. (rzvxa) [#1409](https://github.com/preservim/nerdtree/pull/1409)
|
||||||
|
- fix: session restore for nerdtree buffers. (rzvxa) [#1405](https://github.com/preservim/nerdtree/pull/1405)
|
||||||
|
- **.1**:
|
||||||
|
- fix: change default binding of filelines to `FL`. (rzvxa) [#1400](https://github.com/preservim/nerdtree/pull/1400)
|
||||||
|
- fix: toggle zoom resizing. (ds2606) [#1395](https://github.com/preservim/nerdtree/pull/1395)
|
||||||
|
- **.0**:
|
||||||
|
- fix: typo in the docs. (bl4kraven) [#1390](https://github.com/preservim/nerdtree/pull/1390)
|
||||||
|
- feat: add NERDTreeExplore command. (msibal6) [#1389](https://github.com/preservim/nerdtree/pull/1389)
|
||||||
|
- fix: mapping description in NERDTree.txt. (roccomao) [#1393](https://github.com/preservim/nerdtree/pull/1393)
|
||||||
#### 7.0
|
#### 7.0
|
||||||
- **.1**:
|
- **.1**:
|
||||||
- Fix NERDTreeFind to handle directory case sensitivity. (dangibson) [#1387](https://github.com/preservim/nerdtree/pull/1387)
|
- Fix NERDTreeFind to handle directory case sensitivity. (dangibson) [#1387](https://github.com/preservim/nerdtree/pull/1387)
|
||||||
|
|||||||
@@ -234,6 +234,38 @@ function! nerdtree#pathEquals(lhs, rhs) abort
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
"FUNCTION: nerdtree#onBufLeave() {{{2
|
||||||
|
" used for handling the nerdtree BufLeave/WinLeave events.
|
||||||
|
function! nerdtree#onBufLeave() abort
|
||||||
|
" detect whether we are in the middle of sourcing a session.
|
||||||
|
" if it is a buffer from the sourced session we need to restore it.
|
||||||
|
if exists('g:SessionLoad') && !exists('b:NERDTree')
|
||||||
|
let bname = bufname('%')
|
||||||
|
" is the buffer for a tab tree?
|
||||||
|
if bname =~# '^' . g:NERDTreeCreator.BufNamePrefix() . 'tab_\d\+$'
|
||||||
|
" rename loaded buffer and mark it as trash to prevent this event
|
||||||
|
" getting fired again
|
||||||
|
exec 'file TRASH_' . bname
|
||||||
|
" delete the trash buffer
|
||||||
|
exec 'bwipeout!'
|
||||||
|
" rescue the tab tree at the current working directory
|
||||||
|
call g:NERDTreeCreator.CreateTabTree(getcwd())
|
||||||
|
" is the buffer for a window tree?
|
||||||
|
elseif bname =~# '^' . g:NERDTreeCreator.BufNamePrefix(). 'win_\d\+$'
|
||||||
|
" rescue the window tree at the current working directory
|
||||||
|
call g:NERDTreeCreator.CreateWindowTree(getcwd())
|
||||||
|
else " unknown buffer type
|
||||||
|
" rename buffer to mark it as broken.
|
||||||
|
exec 'file BROKEN_' . bname
|
||||||
|
call nerdtree#echoError('Failed to restore "' . bname . '" from session. Is this session created with an older version of NERDTree?')
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
if g:NERDTree.IsOpen()
|
||||||
|
call b:NERDTree.ui.saveScreenState()
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
" SECTION: View Functions {{{1
|
" SECTION: View Functions {{{1
|
||||||
"============================================================
|
"============================================================
|
||||||
|
|
||||||
|
|||||||
@@ -642,6 +642,7 @@ endfunction
|
|||||||
function! nerdtree#ui_glue#setupCommands() abort
|
function! nerdtree#ui_glue#setupCommands() abort
|
||||||
command! -n=? -complete=dir -bar NERDTree :call g:NERDTreeCreator.CreateTabTree('<args>')
|
command! -n=? -complete=dir -bar NERDTree :call g:NERDTreeCreator.CreateTabTree('<args>')
|
||||||
command! -n=? -complete=dir -bar NERDTreeToggle :call g:NERDTreeCreator.ToggleTabTree('<args>')
|
command! -n=? -complete=dir -bar NERDTreeToggle :call g:NERDTreeCreator.ToggleTabTree('<args>')
|
||||||
|
command! -n=? -complete=dir -bar NERDTreeExplore :call g:NERDTreeCreator.CreateExploreTree('<args>')
|
||||||
command! -n=0 -bar NERDTreeClose :call g:NERDTree.Close()
|
command! -n=0 -bar NERDTreeClose :call g:NERDTree.Close()
|
||||||
command! -n=1 -complete=customlist,nerdtree#completeBookmarks -bar NERDTreeFromBookmark call g:NERDTreeCreator.CreateTabTree('<args>')
|
command! -n=1 -complete=customlist,nerdtree#completeBookmarks -bar NERDTreeFromBookmark call g:NERDTreeCreator.CreateTabTree('<args>')
|
||||||
command! -n=0 -bar NERDTreeMirror call g:NERDTreeCreator.CreateMirror()
|
command! -n=0 -bar NERDTreeMirror call g:NERDTreeCreator.CreateMirror()
|
||||||
|
|||||||
@@ -287,7 +287,7 @@ I........Toggle whether hidden files displayed......................|NERDTree-I|
|
|||||||
f........Toggle whether the file filters are used...................|NERDTree-f|
|
f........Toggle whether the file filters are used...................|NERDTree-f|
|
||||||
F........Toggle whether files are displayed.........................|NERDTree-F|
|
F........Toggle whether files are displayed.........................|NERDTree-F|
|
||||||
B........Toggle whether the bookmark table is displayed.............|NERDTree-B|
|
B........Toggle whether the bookmark table is displayed.............|NERDTree-B|
|
||||||
L........Toggle whether the bookmark table is displayed.............|NERDTree-L|
|
L........Toggle whether the number of lines in files is displayed..|NERDTree-FL|
|
||||||
|
|
||||||
q........Close the NERDTree window..................................|NERDTree-q|
|
q........Close the NERDTree window..................................|NERDTree-q|
|
||||||
A........Zoom (maximize/minimize) the NERDTree window...............|NERDTree-A|
|
A........Zoom (maximize/minimize) the NERDTree window...............|NERDTree-A|
|
||||||
@@ -603,9 +603,9 @@ Applies to: no restrictions.
|
|||||||
Toggles whether the bookmarks table is displayed.
|
Toggles whether the bookmarks table is displayed.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*NERDTree-L*
|
*NERDTree-FL*
|
||||||
Default key: L
|
Default key: FL
|
||||||
Map setting: *NERDTreeMapToggleFileLiness*
|
Map setting: *NERDTreeMapToggleFileLines*
|
||||||
Applies to: no restrictions.
|
Applies to: no restrictions.
|
||||||
|
|
||||||
Toggles whether the number of lines in files is displayed.
|
Toggles whether the number of lines in files is displayed.
|
||||||
@@ -1080,7 +1080,7 @@ Default: 0.
|
|||||||
If this setting is set to 1 then the NERDTree shows number of lines for each
|
If this setting is set to 1 then the NERDTree shows number of lines for each
|
||||||
file.
|
file.
|
||||||
|
|
||||||
This setting can be toggled dynamically, per tree, with the |NERDTree-L|
|
This setting can be toggled dynamically, per tree, with the |NERDTree-FL|
|
||||||
mapping.
|
mapping.
|
||||||
Use one of the follow lines for this setting: >
|
Use one of the follow lines for this setting: >
|
||||||
let NERDTreeShowFilesLines=0
|
let NERDTreeShowFilesLines=0
|
||||||
|
|||||||
@@ -38,6 +38,29 @@ function! s:Creator.BufNamePrefix()
|
|||||||
return 'NERD_tree_'
|
return 'NERD_tree_'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" FUNCTION: s:Creator.CreateExploreTree(dir) {{{1
|
||||||
|
function! s:Creator.CreateExploreTree(dir)
|
||||||
|
try
|
||||||
|
let path = g:NERDTreePath.New(a:dir)
|
||||||
|
catch /^NERDTree.InvalidArgumentsError/
|
||||||
|
call nerdtree#echo('Invalid directory name:' . a:dir)
|
||||||
|
return
|
||||||
|
endtry
|
||||||
|
|
||||||
|
let creator = s:Creator.New()
|
||||||
|
if getbufinfo('%')[0].changed && !&hidden && !&autowriteall
|
||||||
|
let l:splitLocation = g:NERDTreeWinPos ==# 'left' || g:NERDTreeWinPos ==# 'top' ? 'topleft ' : 'botright '
|
||||||
|
let l:splitDirection = g:NERDTreeWinPos ==# 'left' || g:NERDTreeWinPos ==# 'right' ? 'vertical' : ''
|
||||||
|
silent! execute l:splitLocation . l:splitDirection . ' new'
|
||||||
|
else
|
||||||
|
silent! execute 'enew'
|
||||||
|
endif
|
||||||
|
|
||||||
|
call creator.createWindowTree(a:dir)
|
||||||
|
"we want windowTree buffer to disappear after moving to any other buffer
|
||||||
|
setlocal bufhidden=wipe
|
||||||
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: s:Creator.CreateTabTree(a:name) {{{1
|
" FUNCTION: s:Creator.CreateTabTree(a:name) {{{1
|
||||||
function! s:Creator.CreateTabTree(name)
|
function! s:Creator.CreateTabTree(name)
|
||||||
let creator = s:Creator.New()
|
let creator = s:Creator.New()
|
||||||
@@ -95,7 +118,7 @@ function! s:Creator.createWindowTree(dir)
|
|||||||
|
|
||||||
"we need a unique name for each window tree buffer to ensure they are
|
"we need a unique name for each window tree buffer to ensure they are
|
||||||
"all independent
|
"all independent
|
||||||
exec g:NERDTreeCreatePrefix . ' edit ' . self._nextBufferName()
|
exec g:NERDTreeCreatePrefix . ' edit ' . self._nextBufferName('win')
|
||||||
|
|
||||||
call self._createNERDTree(path, 'window')
|
call self._createNERDTree(path, 'window')
|
||||||
let b:NERDTree._previousBuf = bufnr(previousBuf)
|
let b:NERDTree._previousBuf = bufnr(previousBuf)
|
||||||
@@ -187,7 +210,7 @@ function! s:Creator._createTreeWin()
|
|||||||
let l:splitSize = g:NERDTreeWinSize
|
let l:splitSize = g:NERDTreeWinSize
|
||||||
|
|
||||||
if !g:NERDTree.ExistsForTab()
|
if !g:NERDTree.ExistsForTab()
|
||||||
let t:NERDTreeBufName = self._nextBufferName()
|
let t:NERDTreeBufName = self._nextBufferName('tab')
|
||||||
silent! execute l:splitLocation . l:splitDirection . ' ' . l:splitSize . ' new'
|
silent! execute l:splitLocation . l:splitDirection . ' ' . l:splitSize . ' new'
|
||||||
silent! execute 'edit ' . t:NERDTreeBufName
|
silent! execute 'edit ' . t:NERDTreeBufName
|
||||||
silent! execute l:splitDirection . ' resize '. l:splitSize
|
silent! execute l:splitDirection . ' resize '. l:splitSize
|
||||||
@@ -221,10 +244,22 @@ function! s:Creator.New()
|
|||||||
return newCreator
|
return newCreator
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: s:Creator._nextBufferName() {{{1
|
" FUNCTION: s:Creator._nextBufferName(type='') {{{1
|
||||||
" returns the buffer name for the next nerd tree
|
" gets an optional buffer type of either 'tab' or 'win'.
|
||||||
function! s:Creator._nextBufferName()
|
" returns the buffer name for the next nerd tree of such type.
|
||||||
let name = s:Creator.BufNamePrefix() . self._nextBufferNumber()
|
function! s:Creator._nextBufferName(...)
|
||||||
|
if a:0 > 0
|
||||||
|
let type = a:1
|
||||||
|
else
|
||||||
|
let type = ''
|
||||||
|
end
|
||||||
|
let name = s:Creator.BufNamePrefix()
|
||||||
|
if type ==# 'tab'
|
||||||
|
let name = name . 'tab_'
|
||||||
|
elseif type ==# 'win'
|
||||||
|
let name = name . 'win_'
|
||||||
|
endif
|
||||||
|
let name = name . self._nextBufferNumber()
|
||||||
return name
|
return name
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ function! s:NERDTree.GetWinNum()
|
|||||||
|
|
||||||
" If WindowTree, there is no t:NERDTreeBufName variable. Search all windows.
|
" If WindowTree, there is no t:NERDTreeBufName variable. Search all windows.
|
||||||
for w in range(1,winnr('$'))
|
for w in range(1,winnr('$'))
|
||||||
if bufname(winbufnr(w)) =~# '^' . g:NERDTreeCreator.BufNamePrefix() . '\d\+$'
|
if bufname(winbufnr(w)) =~# '^' . g:NERDTreeCreator.BufNamePrefix() . 'win_\d\+$'
|
||||||
return w
|
return w
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|||||||
@@ -532,6 +532,9 @@ endfunction
|
|||||||
" zoom (maximize/minimize) the NERDTree window
|
" zoom (maximize/minimize) the NERDTree window
|
||||||
function! s:UI.toggleZoom()
|
function! s:UI.toggleZoom()
|
||||||
if exists('b:NERDTreeZoomed') && b:NERDTreeZoomed
|
if exists('b:NERDTreeZoomed') && b:NERDTreeZoomed
|
||||||
|
setlocal nowinfixwidth
|
||||||
|
wincmd =
|
||||||
|
setlocal winfixwidth
|
||||||
call nerdtree#exec('silent vertical resize '. g:NERDTreeWinSize, 1)
|
call nerdtree#exec('silent vertical resize '. g:NERDTreeWinSize, 1)
|
||||||
let b:NERDTreeZoomed = 0
|
let b:NERDTreeZoomed = 0
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ let g:NERDTreeMapToggleBookmarks = get(g:, 'NERDTreeMapToggleBookmarks', 'B')
|
|||||||
let g:NERDTreeMapToggleFiles = get(g:, 'NERDTreeMapToggleFiles', 'F')
|
let g:NERDTreeMapToggleFiles = get(g:, 'NERDTreeMapToggleFiles', 'F')
|
||||||
let g:NERDTreeMapToggleFilters = get(g:, 'NERDTreeMapToggleFilters', 'f')
|
let g:NERDTreeMapToggleFilters = get(g:, 'NERDTreeMapToggleFilters', 'f')
|
||||||
let g:NERDTreeMapToggleHidden = get(g:, 'NERDTreeMapToggleHidden', 'I')
|
let g:NERDTreeMapToggleHidden = get(g:, 'NERDTreeMapToggleHidden', 'I')
|
||||||
let g:NERDTreeMapToggleFileLines = get(g:, 'NERDTreeMapToggleFileLines', 'L')
|
let g:NERDTreeMapToggleFileLines = get(g:, 'NERDTreeMapToggleFileLines', 'FL')
|
||||||
let g:NERDTreeMapToggleZoom = get(g:, 'NERDTreeMapToggleZoom', 'A')
|
let g:NERDTreeMapToggleZoom = get(g:, 'NERDTreeMapToggleZoom', 'A')
|
||||||
let g:NERDTreeMapUpdir = get(g:, 'NERDTreeMapUpdir', 'u')
|
let g:NERDTreeMapUpdir = get(g:, 'NERDTreeMapUpdir', 'u')
|
||||||
let g:NERDTreeMapUpdirKeepOpen = get(g:, 'NERDTreeMapUpdirKeepOpen', 'U')
|
let g:NERDTreeMapUpdirKeepOpen = get(g:, 'NERDTreeMapUpdirKeepOpen', 'U')
|
||||||
@@ -151,7 +151,7 @@ call nerdtree#ui_glue#setupCommands()
|
|||||||
"============================================================
|
"============================================================
|
||||||
augroup NERDTree
|
augroup NERDTree
|
||||||
"Save the cursor position whenever we close the nerd tree
|
"Save the cursor position whenever we close the nerd tree
|
||||||
exec 'autocmd BufLeave,WinLeave '. g:NERDTreeCreator.BufNamePrefix() .'* if g:NERDTree.IsOpen() | call b:NERDTree.ui.saveScreenState() | endif'
|
exec 'autocmd BufLeave,WinLeave '. g:NERDTreeCreator.BufNamePrefix() .'* call nerdtree#onBufLeave()'
|
||||||
|
|
||||||
"disallow insert mode in the NERDTree
|
"disallow insert mode in the NERDTree
|
||||||
exec 'autocmd BufEnter,WinEnter '. g:NERDTreeCreator.BufNamePrefix() .'* stopinsert'
|
exec 'autocmd BufEnter,WinEnter '. g:NERDTreeCreator.BufNamePrefix() .'* stopinsert'
|
||||||
|
|||||||
Reference in New Issue
Block a user