diff options
| author | Jez Ng | 2013-01-02 17:05:08 -0500 | 
|---|---|---|
| committer | Jez Ng | 2013-01-02 17:05:31 -0500 | 
| commit | 4dba0638e5872318423bbc9c13f4fbebf3b14ce9 (patch) | |
| tree | 3934b6c2df8c463be375d1198ff3de44a68f04cd | |
| parent | 53354147f366cfe933d31db98bce5c8b1f735ad3 (diff) | |
| download | vimium-4dba0638e5872318423bbc9c13f4fbebf3b14ce9.tar.bz2 | |
Make smartcase locale-aware.
| -rw-r--r-- | background_scripts/completion.coffee | 2 | ||||
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 2 | ||||
| -rw-r--r-- | lib/utils.coffee | 3 | 
3 files changed, 5 insertions, 2 deletions
| diff --git a/background_scripts/completion.coffee b/background_scripts/completion.coffee index 951d0756..fd41cdc8 100644 --- a/background_scripts/completion.coffee +++ b/background_scripts/completion.coffee @@ -356,7 +356,7 @@ RegexpCache =      regexpString = prefix + regexpString if prefix      regexpString = regexpString + suffix if suffix      # Smartcase: Regexp is case insensitive, unless `string` contains a capital letter (testing `string`, not `regexpString`). -    @cache[regexpString] ||= new RegExp regexpString, (if /[A-Z]/.test string then "" else "i") +    @cache[regexpString] ||= new RegExp regexpString, (if Utils.hasUpperCase(string) then "" else "i")  # Provides cached access to Chrome's history. As the user browses to new pages, we add those pages to this  # history cache. diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index a869e0ed..ca7af5ae 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -536,7 +536,7 @@ updateFindModeQuery = ->          return match    # default to 'smartcase' mode, unless noIgnoreCase is explicitly specified -  findModeQuery.ignoreCase = !hasNoIgnoreCaseFlag && !/[A-Z]/.test(findModeQuery.parsedQuery) +  findModeQuery.ignoreCase = !hasNoIgnoreCaseFlag && !Utils.hasUpperCase(findModeQuery.parsedQuery)    # if we are dealing with a regex, grep for all matches in the text, and then call window.find() on them    # sequentially so the browser handles the scrolling / text selection. diff --git a/lib/utils.coffee b/lib/utils.coffee index 6f84d008..9e15dcc0 100644 --- a/lib/utils.coffee +++ b/lib/utils.coffee @@ -133,6 +133,9 @@ Utils =    zip: (arrays) ->      arrays[0].map (_,i) ->        arrays.map( (array) -> array[i] ) + +  # locale-sensitive uppercase detection +  hasUpperCase: (s) -> s.toLowerCase() != s  # This creates a new function out of an existing function, where the new function takes fewer arguments. This  # allows us to pass around functions instead of functions + a partial list of arguments. | 
