nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit 2a7a375729dc04bfcbb0411d00839e5349f59193
parent 0b650891222918011ae7d4f823943a1fa45d5854
Author: Jason Franklin <j_fra@fastmail.us>
Date:   Fri, 26 May 2017 13:46:09 -0400

Remove code duplication from sorting bookmarks

It makes the most sense to sort the global bookmarks list just before
rendering them in the NERDTree window. Since Vim's sort function is fast
and stable, and since users are very unlikely to have a number of
bookmarks that is too large, we can sort before rendering without
concern for the negligible performance penalty.

This has two benefits:
  1. Users can change their sort settings and have them take effect
     on the next render or refresh.
  2. As mentioned, code duplication is avoided.

Diffstat:
Mlib/nerdtree/bookmark.vim | 6------
Mlib/nerdtree/ui.vim | 4++++
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/lib/nerdtree/bookmark.vim b/lib/nerdtree/bookmark.vim
@@ -19,9 +19,6 @@ function! s:Bookmark.AddBookmark(name, path)
         endif
     endfor
     call add(s:Bookmark.Bookmarks(), s:Bookmark.New(a:name, a:path))
-    if g:NERDTreeBookmarksSort == 1 || g:NERDTreeBookmarksSort == 2
-        call s:Bookmark.SortBookmarksList()
-    endif
 endfunction
 
 " FUNCTION: Bookmark.Bookmarks() {{{1
@@ -104,9 +101,6 @@ function! s:Bookmark.CacheBookmarks(silent)
                 call nerdtree#echo(invalidBookmarksFound . " invalid bookmarks were read. See :help NERDTreeInvalidBookmarks for info.")
             endif
         endif
-        if g:NERDTreeBookmarksSort == 1 || g:NERDTreeBookmarksSort == 2
-            call s:Bookmark.SortBookmarksList()
-        endif
     endif
 endfunction
 
diff --git a/lib/nerdtree/ui.vim b/lib/nerdtree/ui.vim
@@ -313,6 +313,10 @@ function! s:UI._renderBookmarks()
         call cursor(line(".")+1, col("."))
     endif
 
+    if g:NERDTreeBookmarksSort == 1 || g:NERDTreeBookmarksSort == 2
+        call g:NERDTreeBookmark.SortBookmarksList()
+    endif
+
     for i in g:NERDTreeBookmark.Bookmarks()
         call setline(line(".")+1, i.str())
         call cursor(line(".")+1, col("."))