Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions lib/nerdtree/path.vim
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,11 @@ function! s:Path.cacheDisplayString() abort
endif

if self.isSymLink
let self.cachedDisplayString = self.addDelimiter(self.cachedDisplayString) . ' -> ' . self.symLinkDest
let self.cachedDisplayString = self.addDelimiter(self.cachedDisplayString) . ' -> '
let self.cachedDisplayString = self.addDelimiter(self.cachedDisplayString) . self.symLinkDest
if self.isBroken
let self.cachedDisplayString = self.addDelimiter(self.cachedDisplayString) . g:NERDTreeGlyphBroken
endif
endif

if !self.isDirectory && b:NERDTree.ui.getShowFileLines() != 0
Expand Down Expand Up @@ -607,24 +611,33 @@ function! s:Path.readInfoFromDisk(fullpath)

let fullpath = s:Path.WinToUnixPath(a:fullpath)

if getftype(fullpath) ==# 'fifo'
let ftype = getftype(fullpath)

if ftype ==# 'fifo'
throw 'NERDTree.InvalidFiletypeError: Cant handle FIFO files: ' . a:fullpath
endif

let self.pathSegments = filter(split(fullpath, '/'), '!empty(v:val)')

let self.isReadOnly = 0
if isdirectory(a:fullpath)
let self.isDirectory = 1
let self.isReadOnly = 0
let self.isBroken = 0
elseif filereadable(a:fullpath)
let self.isDirectory = 0
let self.isReadOnly = filewritable(a:fullpath) ==# 0
let self.isBroken = 0
elseif ftype ==# 'link'
let self.isDirectory = 0
let self.isReadOnly = 0
let self.isBroken = 1
else
call nerdtree#echoWarning('invalid ' . a:fullpath . 'file type: ' . ftype)
throw 'NERDTree.InvalidArgumentsError: Invalid path = ' . a:fullpath
endif

let self.isExecutable = 0
if !self.isDirectory
if !self.isDirectory && !self.isBroken
let self.isExecutable = getfperm(a:fullpath) =~# 'x'
endif

Expand Down
2 changes: 1 addition & 1 deletion lib/nerdtree/tree_dir_node.vim
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ function! s:TreeDirNode._glob(pattern, all)
" See ':h version7.txt' and ':h version8.txt' for details on the
" development of the glob() and globpath() functions.
if v:version > 704 || (v:version ==# 704 && has('patch654'))
let l:globList = globpath(l:pathSpec, a:pattern, !g:NERDTreeRespectWildIgnore, 1, 0)
let l:globList = globpath(l:pathSpec, a:pattern, !g:NERDTreeRespectWildIgnore, 1, 1)
elseif v:version ==# 704 && has('patch279')
let l:globList = globpath(l:pathSpec, a:pattern, !g:NERDTreeRespectWildIgnore, 1)
elseif v:version > 702 || (v:version ==# 702 && has('patch051'))
Expand Down
1 change: 1 addition & 0 deletions plugin/NERD_tree.vim
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ let g:NERDTreeSortOrder = get(g:, 'NERDTreeSortOrder', ['\/$', '*', '\.swp$',
let g:NERDTreeOldSortOrder = []

let g:NERDTreeGlyphReadOnly = get(g:, 'NERDTreeGlyphReadOnly', 'RO')
let g:NERDTreeGlyphBroken = get(g:, 'NERDTreeGlyphBroken', ' [*broken]')

if has('conceal')
let g:NERDTreeNodeDelimiter = get(g:, 'NERDTreeNodeDelimiter', "\x07")
Expand Down