Modify should_use_smartcase to should_case_sensitive
Take into account &ignorecase and &smartcase for n key find motion to be consistent with vim default search
This commit is contained in:
parent
9ad2b5b986
commit
525b008695
@ -72,6 +72,7 @@ function! EasyMotion#reset()
|
||||
" backward find motion is exclusive
|
||||
let s:current = {
|
||||
\ 'is_operator' : 0,
|
||||
\ 'is_search' : 0,
|
||||
\ 'dot_repeat_target_cnt' : 0,
|
||||
\ 'dot_prompt_user_cnt' : 0,
|
||||
\ 'changedtick' : 0,
|
||||
@ -386,7 +387,8 @@ function! s:findMotion(num_strokes, direction) "{{{
|
||||
let s:current.is_operator = mode(1) ==# 'no' ? 1: 0
|
||||
" store cursor pos because 'n' key find motion could be jump to offscreen
|
||||
let s:current.original_position = [line('.'), col('.')]
|
||||
let s:flag.regexp = a:num_strokes == -1 ? 1 : 0
|
||||
let s:current.is_search = a:num_strokes == -1 ? 1: 0
|
||||
let s:flag.regexp = a:num_strokes == -1 ? 1 : 0 " TODO: remove?
|
||||
|
||||
if g:EasyMotion_add_search_history && a:num_strokes == -1
|
||||
let s:previous['input'] = @/
|
||||
@ -432,7 +434,8 @@ function! s:convertRegep(input) "{{{
|
||||
let re = s:convertSmartsign(re, a:input)
|
||||
endif
|
||||
|
||||
let case_flag = EasyMotion#helper#should_use_smartcase(a:input) ? '\c' : '\C'
|
||||
let case_flag = EasyMotion#helper#should_case_sensitive(
|
||||
\ a:input, s:current.is_search) ? '\c' : '\C'
|
||||
let re = case_flag . re
|
||||
return re
|
||||
endfunction "}}}
|
||||
|
@ -138,10 +138,13 @@ endfunction "}}}
|
||||
function! s:search.on_char() "{{{
|
||||
if s:num_strokes == -1
|
||||
let re = s:search.getline()
|
||||
if EasyMotion#helper#should_case_sensitive(re, 1)
|
||||
let case_flag = '\c'
|
||||
else
|
||||
let case_flag = '\C'
|
||||
endif
|
||||
let re .= case_flag
|
||||
if g:EasyMotion_inc_highlight
|
||||
let case_flag = EasyMotion#helper#should_use_smartcase(re) ?
|
||||
\ '\c' : '\C'
|
||||
let re .= case_flag
|
||||
call s:inc_highlight(re)
|
||||
endif
|
||||
if g:EasyMotion_off_screen_search
|
||||
|
@ -1,7 +1,7 @@
|
||||
"=============================================================================
|
||||
" FILE: autoload/EasyMotion/helper.vim
|
||||
" AUTHOR: haya14busa
|
||||
" Last Change: 25 Jan 2014.
|
||||
" Last Change: 06 Feb 2014.
|
||||
" License: MIT license {{{
|
||||
" Permission is hereby granted, free of charge, to any person obtaining
|
||||
" a copy of this software and associated documentation files (the
|
||||
@ -62,12 +62,22 @@ function! EasyMotion#helper#is_folded(line) "{{{
|
||||
\ (g:EasyMotion_skipfoldedline == 1 ||
|
||||
\ a:line != foldclosed(a:line))
|
||||
endfunction "}}}
|
||||
function! EasyMotion#helper#should_use_smartcase(input) "{{{
|
||||
if g:EasyMotion_smartcase == 0
|
||||
return 0
|
||||
function! EasyMotion#helper#should_case_sensitive(input, is_search) "{{{
|
||||
if !a:is_search
|
||||
if g:EasyMotion_smartcase == 0
|
||||
return 0
|
||||
else
|
||||
" return 1 if input didn't match uppercase letter
|
||||
return match(a:input, '\u') == -1
|
||||
endif
|
||||
endif
|
||||
" return 1 if input didn't match uppercase letter
|
||||
return match(a:input, '\u') == -1
|
||||
|
||||
if (g:EasyMotion_smartcase == 1 && match(a:input, '\u') == -1) ||
|
||||
\ (&ignorecase && &smartcase && match(a:input, '\u') == -1) ||
|
||||
\ (&ignorecase && !&smartcase)
|
||||
return 1
|
||||
endif
|
||||
return 0
|
||||
endfunction "}}}
|
||||
|
||||
" Migemo {{{
|
||||
|
Loading…
x
Reference in New Issue
Block a user