Merge branch 'hotfix/1.0.4.1'

* hotfix/1.0.4.1:
  Bump version
  Improve exception handling for get_char()
  Verify that shade_hl_id is set to prevent error message
This commit is contained in:
Kim Silkebækken 2011-03-28 23:36:18 +02:00
commit 6b8de708f1
2 changed files with 38 additions and 9 deletions

View File

@ -1,4 +1,4 @@
*easymotion.txt* Version 1.0.4. Last change: 2011 Mar 28
*easymotion.txt* Version 1.0.4.1. Last change: 2011 Mar 28
______ __ ___ __ _

View File

@ -95,9 +95,14 @@
function! EasyMotionF(visualmode, direction)
call <SID>Prompt('Search for character')
let char = getchar()
let char = <SID>GetChar()
let re = '\C' . escape(nr2char(char), '.$^~')
" Check that we have an input char
if empty(char)
return
endif
let re = '\C' . escape(char, '.$^~')
call <SID>EasyMotion(re, a:direction, a:visualmode ? visualmode() : '')
endfunction
@ -107,12 +112,17 @@
function! EasyMotionT(visualmode, direction)
call <SID>Prompt('Search for character')
let char = getchar()
let char = <SID>GetChar()
" Check that we have an input char
if empty(char)
return
endif
if a:direction == 1
let re = '\C' . escape(nr2char(char), '.$^~') . '\zs.'
let re = '\C' . escape(char, '.$^~') . '\zs.'
else
let re = '\C.' . escape(nr2char(char), '.$^~')
let re = '\C.' . escape(char, '.$^~')
endif
call <SID>EasyMotion(re, a:direction, a:visualmode ? visualmode() : '')
@ -171,6 +181,20 @@
call setline(line_num, line[a:key])
endfor
endfunction " }}}
function! s:GetChar() " {{{
let char = getchar()
if char == 27
" Escape key pressed
redraw
call <SID>Message('Cancelled')
return ''
endif
return nr2char(char)
endfunction " }}}
" }}}
" Core functions {{{
function! s:PromptUser(groups) "{{{
@ -230,7 +254,7 @@
call <SID>Prompt('Group character')
endif
let input_char = nr2char(getchar())
let input_char = <SID>GetChar()
redraw
@ -242,9 +266,14 @@
redraw
" Check that we have an input char
if empty(input_char)
throw 'Cancelled'
endif
" Check if the input char is valid
if ! has_key(s:key_to_index, input_char) || s:key_to_index[input_char] >= targets_len
throw 'Cancelled'
throw 'Invalid target'
endif
if single_group
@ -369,7 +398,7 @@
redraw
" Remove shading
if g:EasyMotion_shade
if g:EasyMotion_shade && exists('shade_hl_id')
call matchdelete(shade_hl_id)
endif