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
12 changes: 6 additions & 6 deletions autoload/nerdtree.vim
Original file line number Diff line number Diff line change
Expand Up @@ -114,24 +114,24 @@ function! nerdtree#compareNodePaths(p1, p2) abort
" integer type is the lesser.
if type(sortKey1[i]) == type(sortKey2[i])
if sortKey1[i] <# sortKey2[i]
return - 1
return g:NERDTreeReverseSort ? 1 : -1
elseif sortKey1[i] ># sortKey2[i]
return 1
return g:NERDTreeReverseSort ? -1 : 1
endif
elseif type(sortKey1[i]) == type(0)
return -1
return g:NERDTreeReverseSort ? 1 : -1
elseif type(sortKey2[i]) == type(0)
return 1
return g:NERDTreeReverseSort ? -1 : 1
endif
let i += 1
endwhile

" Keys are identical upto common length.
" The key which has smaller chunks is the lesser one.
if len(sortKey1) < len(sortKey2)
return -1
return g:NERDTreeReverseSort ? 1 : -1
elseif len(sortKey1) > len(sortKey2)
return 1
return g:NERDTreeReverseSort ? -1 : 1
else
return 0
endif
Expand Down
15 changes: 15 additions & 0 deletions doc/NERDTree.txt
Original file line number Diff line number Diff line change
Expand Up @@ -691,6 +691,9 @@ the NERDTree. These settings should be set in your vimrc, using `:let`.
|NERDTreeNaturalSort| Tells the NERDTree whether to use natural sort
order or not when sorting nodes.

|NERDTreeReverseSort| Tells the NERDTree whether to sort nodes in
reverse alphabetical order.

|NERDTreeSortHiddenFirst| Tells the NERDTree whether to take the dot at
the beginning of the hidden file names into
account when sorting nodes.
Expand Down Expand Up @@ -1159,6 +1162,18 @@ Examples: >
6. Files and directories matching 'foo' first, followed by other directories,
then all other files. Each section of files is sorted by file extension.

------------------------------------------------------------------------------
*NERDTreeReverseSort*
Values: 0 or 1.
Default: 0

If set to 1, the NERDTree will sort nodes in reverse alphabetical order within
each group defined by |NERDTreeSortOrder|. This applies to all levels of the
tree.

Example: >
let NERDTreeReverseSort=1

------------------------------------------------------------------------------
*NERDTreeStatusline*
Values: Any valid `'statusline'` setting.
Expand Down
1 change: 1 addition & 0 deletions plugin/NERD_tree.vim
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ let g:NERDTreeCascadeSingleChildDir = get(g:, 'NERDTreeCascadeSingleChildDir

let g:NERDTreeSortOrder = get(g:, 'NERDTreeSortOrder', ['\/$', '*', '\.swp$', '\.bak$', '\~$'])
let g:NERDTreeOldSortOrder = []
let g:NERDTreeReverseSort = get(g:, 'NERDTreeReverseSort', 0)

let g:NERDTreeGlyphReadOnly = get(g:, 'NERDTreeGlyphReadOnly', 'RO')

Expand Down