commit abf200397fbbb7271eafa59d90df60c933426065
parent b45f2c27ea95bd9eea756061a37b518f9925b332
Author: bravestarr <bravestarr@users.noreply.github.com>
Date: Thu, 26 Apr 2018 21:20:33 +0800
Merge branch 'master' into fix-multibyte-path
Diffstat:
3 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/lib/nerdtree/bookmark.vim b/lib/nerdtree/bookmark.vim
@@ -288,7 +288,7 @@ function! s:Bookmark.str()
let pathStr = self.path.str({'format': 'UI'})
if strdisplaywidth(pathStr) > pathStrMaxLen
while strdisplaywidth(pathStr) > pathStrMaxLen && strchars(pathStr) > 0
- let pathStr = substitute(pathStr, '.\{1}', '', '')
+ let pathStr = substitute(pathStr, '^.', '', '')
endwhile
let pathStr = '<' . pathStr
endif
diff --git a/lib/nerdtree/menu_controller.vim b/lib/nerdtree/menu_controller.vim
@@ -15,29 +15,35 @@ function! s:MenuController.New(menuItems)
return newMenuController
endfunction
-"FUNCTION: MenuController.showMenu() {{{1
-"start the main loop of the menu and get the user to choose/execute a menu
-"item
+" FUNCTION: MenuController.showMenu() {{{1
+" Enter the main loop of the NERDTree menu, prompting the user to select
+" a menu item.
function! s:MenuController.showMenu()
call self._saveOptions()
try
let self.selection = 0
+ let l:done = 0
- let done = 0
- while !done
+ while !l:done
redraw!
call self._echoPrompt()
- let key = nr2char(getchar())
- let done = self._handleKeypress(key)
+
+ let l:key = nr2char(getchar())
+ let l:done = self._handleKeypress(l:key)
endwhile
finally
call self._restoreOptions()
+
+ " Redraw when "Ctrl-C" or "Esc" is received.
+ if !l:done || self.selection == -1
+ redraw!
+ endif
endtry
if self.selection != -1
- let m = self._current()
- call m.execute()
+ let l:m = self._current()
+ call l:m.execute()
endif
endfunction
diff --git a/lib/nerdtree/path.vim b/lib/nerdtree/path.vim
@@ -721,7 +721,7 @@ function! s:Path.str(...)
let limit = options['truncateTo']
if strdisplaywidth(toReturn) > limit-1
while strdisplaywidth(toReturn) > limit-1 && strchars(toReturn) > 0
- let toReturn = substitute(toReturn, '.\{1}', '', '')
+ let toReturn = substitute(toReturn, '^.', '', '')
endwhile
if len(split(toReturn, '/')) > 1
let toReturn = '</' . join(split(toReturn, '/')[1:], '/') . '/'