mirror of
https://github.com/preservim/nerdtree.git
synced 2025-11-08 19:33:50 -05:00
Merge pull request #696 from lifecrisis/issue361
BUGFIX: Broken "g:NERDTreeBookmarksSort" setting fixed.
This commit is contained in:
@@ -52,11 +52,6 @@ function! nerdtree#completeBookmarks(A,L,P)
|
|||||||
return filter(g:NERDTreeBookmark.BookmarkNames(), 'v:val =~# "^' . a:A . '"')
|
return filter(g:NERDTreeBookmark.BookmarkNames(), 'v:val =~# "^' . a:A . '"')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: nerdtree#compareBookmarks(dir) {{{2
|
|
||||||
function! nerdtree#compareBookmarks(first, second)
|
|
||||||
return a:first.compareTo(a:second)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"FUNCTION: nerdtree#compareNodes(dir) {{{2
|
"FUNCTION: nerdtree#compareNodes(dir) {{{2
|
||||||
function! nerdtree#compareNodes(n1, n2)
|
function! nerdtree#compareNodes(n1, n2)
|
||||||
return a:n1.path.compareTo(a:n2.path)
|
return a:n1.path.compareTo(a:n2.path)
|
||||||
|
|||||||
@@ -835,11 +835,15 @@ This is where bookmarks are saved. See |NERDTreeBookmarkCommands|.
|
|||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*'NERDTreeBookmarksSort'*
|
*'NERDTreeBookmarksSort'*
|
||||||
Values: 0 or 1
|
Values: 0, 1, or 2
|
||||||
Default: 1
|
Default: 1
|
||||||
|
|
||||||
If set to 0 then the bookmarks list is not sorted.
|
This option controls the method by which the list of user bookmarks is
|
||||||
If set to 1 the bookmarks list is sorted.
|
sorted. When sorted, bookmarks will render in alphabetical order by name.
|
||||||
|
|
||||||
|
If set to 0, the bookmarks list is not sorted.
|
||||||
|
If set to 1, the bookmarks list is sorted in a case-insensitive manner.
|
||||||
|
If set to 2, the bookmarks list is sorted in a case-sensitive manner.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*'NERDTreeMouseMode'*
|
*'NERDTreeMouseMode'*
|
||||||
|
|||||||
@@ -19,12 +19,9 @@ function! s:Bookmark.AddBookmark(name, path)
|
|||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
call add(s:Bookmark.Bookmarks(), s:Bookmark.New(a:name, a:path))
|
call add(s:Bookmark.Bookmarks(), s:Bookmark.New(a:name, a:path))
|
||||||
if g:NERDTreeBookmarksSort ==# 1
|
|
||||||
call s:Bookmark.Sort()
|
|
||||||
endif
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.Bookmarks() {{{1
|
" FUNCTION: Bookmark.Bookmarks() {{{1
|
||||||
" Class method to get all bookmarks. Lazily initializes the bookmarks global
|
" Class method to get all bookmarks. Lazily initializes the bookmarks global
|
||||||
" variable
|
" variable
|
||||||
function! s:Bookmark.Bookmarks()
|
function! s:Bookmark.Bookmarks()
|
||||||
@@ -34,7 +31,7 @@ function! s:Bookmark.Bookmarks()
|
|||||||
return g:NERDTreeBookmarks
|
return g:NERDTreeBookmarks
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.BookmarkExistsFor(name) {{{1
|
" FUNCTION: Bookmark.BookmarkExistsFor(name) {{{1
|
||||||
" class method that returns 1 if a bookmark with the given name is found, 0
|
" class method that returns 1 if a bookmark with the given name is found, 0
|
||||||
" otherwise
|
" otherwise
|
||||||
function! s:Bookmark.BookmarkExistsFor(name)
|
function! s:Bookmark.BookmarkExistsFor(name)
|
||||||
@@ -46,7 +43,7 @@ function! s:Bookmark.BookmarkExistsFor(name)
|
|||||||
endtry
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.BookmarkFor(name) {{{1
|
" FUNCTION: Bookmark.BookmarkFor(name) {{{1
|
||||||
" Class method to get the bookmark that has the given name. {} is return if no
|
" Class method to get the bookmark that has the given name. {} is return if no
|
||||||
" bookmark is found
|
" bookmark is found
|
||||||
function! s:Bookmark.BookmarkFor(name)
|
function! s:Bookmark.BookmarkFor(name)
|
||||||
@@ -58,7 +55,7 @@ function! s:Bookmark.BookmarkFor(name)
|
|||||||
throw "NERDTree.BookmarkNotFoundError: no bookmark found for name: \"". a:name .'"'
|
throw "NERDTree.BookmarkNotFoundError: no bookmark found for name: \"". a:name .'"'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.BookmarkNames() {{{1
|
" FUNCTION: Bookmark.BookmarkNames() {{{1
|
||||||
" Class method to return an array of all bookmark names
|
" Class method to return an array of all bookmark names
|
||||||
function! s:Bookmark.BookmarkNames()
|
function! s:Bookmark.BookmarkNames()
|
||||||
let names = []
|
let names = []
|
||||||
@@ -104,17 +101,31 @@ function! s:Bookmark.CacheBookmarks(silent)
|
|||||||
call nerdtree#echo(invalidBookmarksFound . " invalid bookmarks were read. See :help NERDTreeInvalidBookmarks for info.")
|
call nerdtree#echo(invalidBookmarksFound . " invalid bookmarks were read. See :help NERDTreeInvalidBookmarks for info.")
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
if g:NERDTreeBookmarksSort ==# 1
|
|
||||||
call s:Bookmark.Sort()
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.compareTo(otherbookmark) {{{1
|
" FUNCTION: Bookmark.CompareBookmarksByName(firstBookmark, secondBookmark) {{{1
|
||||||
" Compare these two bookmarks for sorting purposes
|
" Class method that indicates the relative position of two bookmarks when
|
||||||
function! s:Bookmark.compareTo(otherbookmark)
|
" placed in alphabetical order by name. Case-sensitivity is determined by an
|
||||||
return a:otherbookmark.name < self.name
|
" option. Supports the "s:Bookmark.SortBookmarksList()" method.
|
||||||
|
function! s:Bookmark.CompareBookmarksByName(firstBookmark, secondBookmark)
|
||||||
|
let l:result = 0
|
||||||
|
if g:NERDTreeBookmarksSort == 1
|
||||||
|
if a:firstBookmark.name <? a:secondBookmark.name
|
||||||
|
let l:result = -1
|
||||||
|
elseif a:firstBookmark.name >? a:secondBookmark.name
|
||||||
|
let l:result = 1
|
||||||
|
endif
|
||||||
|
elseif g:NERDTreeBookmarksSort == 2
|
||||||
|
if a:firstBookmark.name <# a:secondBookmark.name
|
||||||
|
let l:result = -1
|
||||||
|
elseif a:firstBookmark.name ># a:secondBookmark.name
|
||||||
|
let l:result = 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return l:result
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.ClearAll() {{{1
|
" FUNCTION: Bookmark.ClearAll() {{{1
|
||||||
" Class method to delete all bookmarks.
|
" Class method to delete all bookmarks.
|
||||||
function! s:Bookmark.ClearAll()
|
function! s:Bookmark.ClearAll()
|
||||||
@@ -170,7 +181,7 @@ function! s:Bookmark.GetSelected()
|
|||||||
return {}
|
return {}
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.InvalidBookmarks() {{{1
|
" FUNCTION: Bookmark.InvalidBookmarks() {{{1
|
||||||
" Class method to get all invalid bookmark strings read from the bookmarks
|
" Class method to get all invalid bookmark strings read from the bookmarks
|
||||||
" file
|
" file
|
||||||
function! s:Bookmark.InvalidBookmarks()
|
function! s:Bookmark.InvalidBookmarks()
|
||||||
@@ -233,20 +244,20 @@ function! s:Bookmark.openInNewTab(options)
|
|||||||
call self.open(a:options)
|
call self.open(a:options)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.setPath(path) {{{1
|
" FUNCTION: Bookmark.setPath(path) {{{1
|
||||||
" makes this bookmark point to the given path
|
" makes this bookmark point to the given path
|
||||||
function! s:Bookmark.setPath(path)
|
function! s:Bookmark.setPath(path)
|
||||||
let self.path = a:path
|
let self.path = a:path
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.Sort() {{{1
|
" FUNCTION: Bookmark.SortBookmarksList() {{{1
|
||||||
" Class method that sorts all bookmarks
|
" Class method that sorts the global list of bookmarks alphabetically by name.
|
||||||
function! s:Bookmark.Sort()
|
" Note that case-sensitivity is determined by a user option.
|
||||||
let CompareFunc = function("nerdtree#compareBookmarks")
|
function! s:Bookmark.SortBookmarksList()
|
||||||
call sort(s:Bookmark.Bookmarks(), CompareFunc)
|
call sort(s:Bookmark.Bookmarks(), s:Bookmark.CompareBookmarksByName)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.str() {{{1
|
" FUNCTION: Bookmark.str() {{{1
|
||||||
" Get the string that should be rendered in the view for this bookmark
|
" Get the string that should be rendered in the view for this bookmark
|
||||||
function! s:Bookmark.str()
|
function! s:Bookmark.str()
|
||||||
let pathStrMaxLen = winwidth(g:NERDTree.GetWinNum()) - 4 - len(self.name)
|
let pathStrMaxLen = winwidth(g:NERDTree.GetWinNum()) - 4 - len(self.name)
|
||||||
@@ -292,7 +303,7 @@ function! s:Bookmark.validate()
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: Bookmark.Write() {{{1
|
" FUNCTION: Bookmark.Write() {{{1
|
||||||
" Class method to write all bookmarks to the bookmarks file
|
" Class method to write all bookmarks to the bookmarks file
|
||||||
function! s:Bookmark.Write()
|
function! s:Bookmark.Write()
|
||||||
let bookmarkStrings = []
|
let bookmarkStrings = []
|
||||||
|
|||||||
@@ -313,6 +313,10 @@ function! s:UI._renderBookmarks()
|
|||||||
call cursor(line(".")+1, col("."))
|
call cursor(line(".")+1, col("."))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if g:NERDTreeBookmarksSort == 1 || g:NERDTreeBookmarksSort == 2
|
||||||
|
call g:NERDTreeBookmark.SortBookmarksList()
|
||||||
|
endif
|
||||||
|
|
||||||
for i in g:NERDTreeBookmark.Bookmarks()
|
for i in g:NERDTreeBookmark.Bookmarks()
|
||||||
call setline(line(".")+1, i.str())
|
call setline(line(".")+1, i.str())
|
||||||
call cursor(line(".")+1, col("."))
|
call cursor(line(".")+1, col("."))
|
||||||
|
|||||||
Reference in New Issue
Block a user