From 6980811a21e8e15564aa74f18af5a4b67e59b28d Mon Sep 17 00:00:00 2001 From: Iron-E Date: Mon, 1 Jun 2020 17:59:02 -0400 Subject: [PATCH] Fix names with multiple spaces --- lua/libmodal/src/Mode.lua | 2 ++ lua/libmodal/src/Prompt.lua | 2 ++ lua/libmodal/src/Vars.lua | 32 ++++++++++++++++---------------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/lua/libmodal/src/Mode.lua b/lua/libmodal/src/Mode.lua index 9010f15..1913a36 100644 --- a/lua/libmodal/src/Mode.lua +++ b/lua/libmodal/src/Mode.lua @@ -247,6 +247,8 @@ end ]] ----------------------------------------- function Mode.new(name, instruction, ...) + name = vim.trim(name) + -- Inherit the metatable. local self = setmetatable( { diff --git a/lua/libmodal/src/Prompt.lua b/lua/libmodal/src/Prompt.lua index 9500e45..ecb1411 100644 --- a/lua/libmodal/src/Prompt.lua +++ b/lua/libmodal/src/Prompt.lua @@ -173,6 +173,8 @@ end ]] ------------------------------------------- function Prompt.new(name, instruction, ...) + name = vim.trim(name) + local self = setmetatable( { ['indicator'] = require('libmodal/src/Indicator').prompt(name), diff --git a/lua/libmodal/src/Vars.lua b/lua/libmodal/src/Vars.lua index 6a883ac..2a4e3f7 100644 --- a/lua/libmodal/src/Vars.lua +++ b/lua/libmodal/src/Vars.lua @@ -5,7 +5,6 @@ --]] local api = vim.api -local _stringSplit = require('libmodal/src/collections/ParseTable').stringSplit --[[ /* @@ -37,7 +36,7 @@ local _metaVars = require('libmodal/src/classes').new(Vars.TYPE) ]] --------------------------------- function _metaVars:name() - return string.lower(self._modeName) .. self._varName + return self._modeName .. self._varName end ------------------------------------ @@ -82,27 +81,28 @@ end function Vars.new(keyName, modeName) local self = setmetatable({}, _metaVars) - local function noSpaces(str, firstLetterModifier) - local splitStr = _stringSplit( - string.gsub( - modeName, - vim.pesc('_'), - vim.pesc(' ') - ), ' ' + local function noSpaces(strWithSpaces, firstLetterModifier) + local splitStr = vim.split( + string.gsub(strWithSpaces, vim.pesc('_'), vim.pesc(' ')), + ' ' ) - for i, subStr in ipairs(splitStr) do - splitStr[i] = firstLetterModifier( - string.sub(subStr, 0, 1) - ) .. string.lower( - string.sub(subStr, 2) - ) + local function camelCase(str, func) + return func(string.sub(str, 0, 1) or '') + .. string.lower(string.sub(str, 2) or '') end - return splitStr + splitStr[1] = camelCase(splitStr[1], firstLetterModifier) + + for i = 2, #splitStr do splitStr[i] = + camelCase(splitStr[i], string.upper) + end + + return table.concat(splitStr) end self._modeName = noSpaces(modeName, string.lower) + self._varName = 'Mode' .. noSpaces(keyName, string.upper) return self