diff options
Diffstat (limited to 'lua/clever_f')
| -rw-r--r-- | lua/clever_f/direct_preview_planner.lua | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lua/clever_f/direct_preview_planner.lua b/lua/clever_f/direct_preview_planner.lua index a034c3c..16808af 100644 --- a/lua/clever_f/direct_preview_planner.lua +++ b/lua/clever_f/direct_preview_planner.lua @@ -102,10 +102,26 @@ local function increment_counter(counters, character) return value end +local function is_upper_ascii(character) + if type(character) ~= "string" or #character ~= 1 then + return false + end + local code = character:byte(1) + return code >= string.byte("A") and code <= string.byte("Z") +end + local function increment_smart_counters(counters, character) - return increment_counter(counters, character) + local exact_count = increment_counter(counters, character) + local lowercase_count + if is_upper_ascii(character) then + local lowercase = string.char(character:byte(1) + 32) + lowercase_count = increment_counter(counters, lowercase) + end + return exact_count, lowercase_count end +M.is_upper_ascii = is_upper_ascii + local function require_case_setting(settings, name) local value = settings[name] if value == nil then |
