nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit 38d91b66b0ee0069d7219bcac5e6be3033446d7e
parent 65ebd30334fceedced72d2a2b956777f9814dabe
Author: Martin Grenfell <martin_grenfell@msn.com>
Date:   Tue,  1 Jul 2008 14:23:13 +1200

cache display string

Diffstat:
Mplugin/NERD_tree.vim | 30+++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim
@@ -1310,6 +1310,8 @@ function! s:oPath.New(fullpath) dict
 
     call newPath.ReadInfoFromDisk(a:fullpath)
 
+    let newPath.cachedDisplayString = ""
+
     return newPath
 endfunction
 
@@ -1433,25 +1435,27 @@ endfunction
 "Return:
 "a string that can be used in the view to represent this path
 function! s:oPath.StrDisplay() dict
-    let toReturn = self.GetLastPathComponent(1)
+    if self.cachedDisplayString == ""
+        let self.cachedDisplayString = self.GetLastPathComponent(1)
 
-    if self.isExecutable
-        let toReturn = toReturn . '*'
-    endif
+        if self.isExecutable
+            let self.cachedDisplayString = self.cachedDisplayString . '*'
+        endif
 
-    if !empty(self.BookmarkNames())
-        let toReturn .= ' {' . join(self.BookmarkNames(), ',') . '}'
-    endif
+        if !empty(self.BookmarkNames())
+            let self.cachedDisplayString .= ' {' . join(self.BookmarkNames(), ',') . '}'
+        endif
 
-    if self.isSymLink
-        let toReturn .=  ' -> ' . self.symLinkDest
-    endif
+        if self.isSymLink
+            let self.cachedDisplayString .=  ' -> ' . self.symLinkDest
+        endif
 
-    if self.isReadOnly
-        let toReturn .=  ' [RO]'
+        if self.isReadOnly
+            let self.cachedDisplayString .=  ' [RO]'
+        endif
     endif
 
-    return toReturn
+    return self.cachedDisplayString
 endfunction
 
 "FUNCTION: oPath.StrForEditCmd() {{{3